data-schema.d.ts 731 B

123456789101112131415161718192021222324252627282930313233343536
  1. import {ServiceContainer} from '@e22m4u/js-service';
  2. import {DataType} from './data-type.js';
  3. /**
  4. * Data schema.
  5. */
  6. export type DataSchema = DataSchemaObject | DataSchemaFactory | DataSchemaName;
  7. /**
  8. * Data schema object.
  9. */
  10. export type DataSchemaObject = {
  11. type?: DataType;
  12. items?: DataSchema;
  13. properties?: DataSchemaProperties | DataSchemaFactory | DataSchemaName;
  14. required?: boolean;
  15. };
  16. /**
  17. * Data schema factory.
  18. */
  19. export type DataSchemaFactory = (
  20. container: ServiceContainer,
  21. ) => DataSchemaObject | DataSchemaName;
  22. /**
  23. * Data schema name.
  24. */
  25. export type DataSchemaName = string;
  26. /**
  27. * Data schema properties.
  28. */
  29. export type DataSchemaProperties = {
  30. [property: string]: DataSchema | undefined;
  31. };