UNPKG

okai

Version:

AI-powered code generation tool for ServiceStack Apps. Generate TypeScript data models, C# APIs, migrations, and UI components from natural language prompts using LLMs.

110 lines 3.37 kB
export interface ParsedConfig { prompt?: string; api?: string; migration?: string; uiMjs?: string; [key: string]: any; } export interface ParsedDefaultExport { [key: string]: any; } export interface ParsedProperty { modifier?: string; name: string; type: string; union?: string[]; optional?: boolean; comment?: string; annotations?: ParsedAnnotation[]; } export interface ParsedInterface { name: string; extends?: string; comment?: string; properties: ParsedProperty[]; annotations?: ParsedAnnotation[]; } export interface ParsedClass { name: string; extends?: string; implements?: string[]; comment?: string; properties: ParsedProperty[]; annotations?: ParsedAnnotation[]; } export interface ParsedEnumMember { name: string; value?: string | number; comment?: string; } export interface ParsedEnum { name: string; comment?: string; members: ParsedEnumMember[]; } export interface ParsedAnnotation { name: string; constructorArgs?: any[]; args?: Record<string, any>; } export interface ParsedReference { path: string; } export interface ParseResult { config?: ParsedConfig; defaultExport?: ParsedDefaultExport; classes: ParsedClass[]; interfaces: ParsedInterface[]; enums: ParsedEnum[]; references: ParsedReference[]; } export declare class TypeScriptParser { private static readonly CONFIG_TYPE_PATTERN; private static readonly CONFIG_PROPERTY_PATTERN; private static readonly DEFAULT_EXPORT_PATTERN; private static readonly CLASS_PATTERN; private static readonly INTERFACE_PATTERN; private static readonly ENUM_PATTERN; private static readonly PROPERTY_PATTERN; private static readonly ENUM_MEMBER_PATTERN; static readonly ANNOTATION_PATTERN: RegExp; static readonly ANNOTATION_COMMENT: RegExp; private static readonly REFERENCE_PATTERN; private config?; private defaultExport?; private classes; private interfaces; private enums; private references; private getLineComment; private getPreviousLine; private parseConfigType; private parseDefaultExport; parseMetadata(body: string, line: string): { comment: string; annotations: ParsedAnnotation[]; }; private parseClassProperties; getBlockBody(content: string, startIndex: number): string; private parseInterfaces; private parseClasses; private parseReferences; private parseEnumMembers; isAnnotation(s?: string): boolean; isComment(s?: string): boolean; private parseEnums; private cleanBody; parse(sourceCode: string): ParseResult; } export declare function parseAnnotation(annotation: string): ParsedAnnotation; export declare function splitTypes(input: string): string[]; export type ExtractUnionType<T> = T extends any ? [T] extends [UnionToIntersection<T>] ? never : T : never; type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never; export declare function extractTypeComponents(typeStr: string): { baseType: string; unionTypes: string[]; }; export declare function removeMultilineComments(src: string): string; export declare function convertJsDocComments(src: string): string; export {}; //# sourceMappingURL=ts-parser.d.ts.map