ts-variant-gen
Version:
Small utility to generate F#/Kotlin-style discriminated unions (variant types) for TypeScript projects
29 lines (28 loc) • 806 B
TypeScript
declare class VariantBuilder {
fields: {
name: string;
type: string;
}[];
constructor();
withField(name: string, type: string): void;
}
declare type Variant = {
name: string;
fields: {
name: string;
type: string;
}[];
};
declare class TypeBuilder {
variants: Variant[];
constructor();
withVariant(name: string, variantConfig?: (variant: VariantBuilder) => void): void;
}
declare class FileBuilder {
types: string[];
constructor();
withType(name: string, typeConfig: (type: TypeBuilder) => void): void;
}
export declare const generateType: (typeName: string, typeConfig: (type: TypeBuilder) => void) => string;
export declare const generateFile: (filePath: string, fileConfig: (b: FileBuilder) => void) => void;
export {};