schema.js 892 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import {Service} from '@e22m4u/js-service';
  2. import {Repository} from './repository/index.js';
  3. import {DefinitionRegistry} from './definition/index.js';
  4. import {RepositoryRegistry} from './repository/index.js';
  5. /**
  6. * Schema.
  7. */
  8. export class Schema extends Service {
  9. /**
  10. * Define datasource.
  11. *
  12. * @param {object} datasourceDef
  13. * @returns {this}
  14. */
  15. defineDatasource(datasourceDef) {
  16. this.getService(DefinitionRegistry).addDatasource(datasourceDef);
  17. return this;
  18. }
  19. /**
  20. * Define model.
  21. *
  22. * @param {object} modelDef
  23. * @returns {this}
  24. */
  25. defineModel(modelDef) {
  26. this.getService(DefinitionRegistry).addModel(modelDef);
  27. return this;
  28. }
  29. /**
  30. * Get repository.
  31. *
  32. * @param {string} modelName
  33. * @returns {Repository}
  34. */
  35. getRepository(modelName) {
  36. return this.getService(RepositoryRegistry).getRepository(modelName);
  37. }
  38. }