UNPKG

cs-element

Version:

Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support

121 lines 3.98 kB
/** * Генератор TypeScript типов из JSON Schema * Создает TypeScript интерфейсы и типы на основе JSON Schema 7 */ import { JSONSchema7 } from 'json-schema'; export interface TypeGenerationOptions { /** Префикс для генерируемых типов */ typePrefix?: string; /** Суффикс для генерируемых типов */ typeSuffix?: string; /** Использовать опциональные поля для необязательных свойств */ optionalFields?: boolean; /** Генерировать readonly поля */ readonly?: boolean; /** Генерировать JSDoc комментарии */ includeJSDoc?: boolean; /** Экспортировать типы */ exportTypes?: boolean; /** Использовать строгие типы */ strict?: boolean; /** Генерировать enum'ы как union типы */ enumAsUnion?: boolean; } export interface GeneratedType { /** Имя типа */ name: string; /** Сгенерированный TypeScript код */ code: string; /** Зависимости от других типов */ dependencies: string[]; /** Исходная JSON Schema */ schema: JSONSchema7; } export interface TypeGenerationResult { /** Сгенерированные типы */ types: GeneratedType[]; /** Полный TypeScript код */ code: string; /** Ошибки генерации */ errors: string[]; /** Предупреждения */ warnings: string[]; } /** * Генератор TypeScript типов из JSON Schema */ export declare class TypeScriptGenerator { private options; private generatedTypes; private typeNames; private errors; private warnings; constructor(options?: TypeGenerationOptions); /** * Генерация TypeScript типов из JSON Schema */ generateTypes(schemas: { [name: string]: JSONSchema7; }): TypeGenerationResult; /** * Генерация одного типа */ private generateType; /** * Генерация определения типа */ private generateTypeDefinition; /** * Генерация свойств объекта */ private generateObjectProperties; /** * Преобразование JSON Schema типа в TypeScript тип */ private jsonSchemaTypeToTypeScript; /** * Преобразование примитивного типа */ private primitiveTypeToTypeScript; /** * Генерация JSDoc комментария */ private generateJSDoc; /** * Форматирование имени типа */ private formatTypeName; /** * Форматирование ключа enum */ private formatEnumKey; /** * Извлечение имени из $ref */ private extractRefName; /** * Сборка финального кода */ private buildFinalCode; /** * Сброс состояния генератора */ private reset; /** * Генерация типов из ValidationPlugin */ static generateFromValidationPlugin(validationPlugin: any, options?: TypeGenerationOptions): TypeGenerationResult; } /** * Утилитарная функция для быстрой генерации типов */ export declare function generateTypesFromSchemas(schemas: { [name: string]: JSONSchema7; }, options?: TypeGenerationOptions): TypeGenerationResult; /** * Утилитарная функция для генерации типов в файл */ export declare function generateTypesToFile(schemas: { [name: string]: JSONSchema7; }, outputPath: string, options?: TypeGenerationOptions): Promise<void>; //# sourceMappingURL=TypeScriptGenerator.d.ts.map