declare type integer = number; export interface BaseSchema { type?: string; format?: string; name?: string; description?: string; required?: boolean; nullable?: boolean; } export interface BooleanSchema extends BaseSchema { type: 'boolean'; defaultValue?: boolean; } export interface IntegerSchema extends BaseSchema { type: 'integer'; format?: 'byte' | 'short' | 'int' | 'long'; defaultValue?: integer; minimum?: integer; maximum?: integer; } export interface NumberSchema extends BaseSchema { type: 'number'; format?: 'float' | 'double' | 'decimal'; defaultValue?: number; minimum?: number; maximum?: number; } export interface StringSchema extends BaseSchema { type: 'string'; format?: 'byte' | 'binary' | 'blob' | 'uuid' | 'date' | 'time' | 'date-time' | 'enum' | 'password' | 'phone-number' | 'email'; defaultValue?: string; minLength?: number; maxLength?: number; } export interface ArraySchema extends BaseSchema { type: 'array'; items: Schema; } export interface SetSchema extends BaseSchema { type: 'set'; items: Schema; } export interface MapSchema extends BaseSchema { type: 'map'; key: Schema; value: Schema; } export interface ObjectSchema extends BaseSchema { type: 'object'; propertyList: Array; } export interface EnumItemSchema { label: string; value: string; } export interface EnumSchema extends BaseSchema { type: 'enum'; enumItemList: Array; } /** * 明确一下:有 $ref 时,没有 type;有 type 时,没有 $ref。两者互斥! */ export interface RefSchema extends BaseSchema { $ref: string; /** * 当前这一版先用 isArray 来处理数组类型 */ isArray?: boolean; } export interface BasicSchema extends BaseSchema { type: 'boolean' | 'integer' | 'number' | 'string'; format?: string; defaultValue?: any; minimum?: integer; maximum?: integer; } export interface BasicRefSchema extends BaseSchema { type?: 'boolean' | 'integer' | 'number' | 'string' | 'array' | 'set' | 'map' | 'object' | 'enum' | string; format?: string; defaultValue?: any; minimum?: integer; maximum?: integer; $ref?: string; isArray?: boolean; } export interface Schema extends BaseSchema { id?: string; type?: 'boolean' | 'integer' | 'number' | 'string' | 'array' | 'set' | 'map' | 'object' | 'enum' | string; format?: string; defaultValue?: any; minimum?: integer; maximum?: integer; items?: Schema; propertyList?: Array; typeKey?: string; typeName?: string; typeParamValue?: Schema; typeParams?: Array; typeInstantiation?: Schema; typeParamName?: string; /** * @deprecated * 在后续的迭代中去掉它 */ properties?: { [name: string]: Schema; }; enumItemList?: Array; relationship?: string; /** * @deprecated * 在后续的迭代中去掉它 */ enumItems?: { [name: string]: string; }; $ref?: string; isArray?: boolean; isLeaf?: boolean; } export default Schema;