UNPKG

@meta-system/object-definition

Version:

Standard Object Definition For Meta-System

29 lines (28 loc) 1.07 kB
export type AcceptedTypes = TypeDefinitionFlat["type"] | TypeDefinitionDeep["type"]; export type TypeDefinition<T = {}> = TypeDefinitionFlat & T | TypeDefinitionDeep & T | TypeDefinitionEnum & T | TypeDefinitionEspecial & T | TypeDefinitionExecutable & T; export type ObjectDefinition<T = {}> = Record<string, TypeDefinition<T> | TypeDefinitionUnion<T>>; export type TypeDefinitionUnion<T = {}> = Array<TypeDefinition<T>>; export interface TypeDefinitionFlat { type: "string" | "number" | "boolean" | "date" | "cloudedObject" | string; required?: boolean; } export interface TypeDefinitionEspecial { type: "any"; required?: boolean; } export interface TypeDefinitionExecutable { type: "function"; input: ObjectDefinition; output: ObjectDefinition; required?: boolean; } export interface TypeDefinitionDeep { type: "object" | "array"; required?: boolean; subtype: ObjectDefinition | TypeDefinitionFlat["type"]; } export interface TypeDefinitionEnum { type: "enum"; required?: boolean; subtype: Array<string | number>; }