database-schema.d.ts 958 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import {ModelId} from './types.js';
  2. import {ModelData} from './types.js';
  3. import {Service} from '@e22m4u/js-service';
  4. import {Repository} from './repository/index.js';
  5. import {ModelDefinition} from './definition/index.js';
  6. import {DatasourceDefinition} from './definition/index.js';
  7. import {DEFAULT_PRIMARY_KEY_PROPERTY_NAME} from './definition/index.js';
  8. /**
  9. * Database schema.
  10. */
  11. export declare class DatabaseSchema extends Service {
  12. /**
  13. * Define datasource.
  14. *
  15. * @param datasourceDef
  16. */
  17. defineDatasource(datasourceDef: DatasourceDefinition): this;
  18. /**
  19. * Define model.
  20. *
  21. * @param modelDef
  22. */
  23. defineModel(modelDef: ModelDefinition): this;
  24. /**
  25. * Get repository.
  26. *
  27. * @param modelName
  28. */
  29. getRepository<
  30. Data extends object = ModelData,
  31. IdType extends ModelId = ModelId,
  32. IdName extends string = typeof DEFAULT_PRIMARY_KEY_PROPERTY_NAME,
  33. >(modelName: string): Repository<Data, IdType, IdName>;
  34. }