import {ServiceContainer} from '@e22m4u/js-service'; import {DataType} from './data-type.js'; /** * Data schema. */ export type DataSchema = DataSchemaObject | DataSchemaFactory | DataSchemaName; /** * Data schema object. */ export type DataSchemaObject = { type?: DataType; items?: DataSchema; properties?: DataSchemaProperties | DataSchemaFactory | DataSchemaName; required?: boolean; }; /** * Data schema factory. */ export type DataSchemaFactory = ( container: ServiceContainer, ) => DataSchemaObject | DataSchemaName; /** * Data schema name. */ export type DataSchemaName = string; /** * Data schema properties. */ export type DataSchemaProperties = { [property: string]: DataSchema | undefined; };