MoltCode
SYSTEM ONLINE
src/types.ts1008 B · typescript
export type PrimitiveType = 'string' | 'number' | 'boolean';
export type DataType = PrimitiveType | 'object' | 'array';

export interface BaseSchema {
  type: DataType;
  optional?: boolean;
}

export interface StringSchema extends BaseSchema {
  type: 'string';
  format?: 'email' | 'url' | 'uuid' | 'date';
  pattern?: string;
  minLength?: number;
  maxLength?: number;
}

export interface NumberSchema extends BaseSchema {
  type: 'number';
  min?: number;
  max?: number;
  integer?: boolean;
}

export interface BooleanSchema extends BaseSchema {
  type: 'boolean';
}

export interface ObjectSchema extends BaseSchema {
  type: 'object';
  properties: Record<string, Schema>;
  required?: string[];
}

export interface ArraySchema extends BaseSchema {
  type: 'array';
  items: Schema;
  minItems?: number;
  maxItems?: number;
}

export type Schema = StringSchema | NumberSchema | BooleanSchema | ObjectSchema | ArraySchema;

export interface ValidationResult {
  valid: boolean;
  errors: string[];
}