@re-shell/cli
Version:
Full-stack development platform uniting microservices and microfrontends. Build complete applications with .NET (ASP.NET Core Web API, Minimal API), Java (Spring Boot, Quarkus, Micronaut, Vert.x), Rust (Actix-Web, Warp, Rocket, Axum), Python (FastAPI, Dja
79 lines (78 loc) • 2.46 kB
TypeScript
export interface TemplateVariable {
name: string;
type: 'string' | 'number' | 'boolean' | 'array' | 'object';
description: string;
default?: any;
required?: boolean;
validation?: {
pattern?: string;
min?: number;
max?: number;
options?: any[];
};
}
export interface ConfigTemplate {
name: string;
version: string;
description: string;
author?: string;
tags: string[];
variables: TemplateVariable[];
template: any;
examples?: Record<string, any>;
createdAt: string;
updatedAt: string;
}
export interface TemplateContext {
variables: Record<string, any>;
environment?: Record<string, string>;
projectInfo?: {
name?: string;
type?: string;
version?: string;
framework?: string;
packageManager?: string;
};
userInfo?: {
name?: string;
email?: string;
organization?: string;
};
timestamp?: {
iso: string;
unix: number;
formatted: string;
};
}
export declare class ConfigTemplateEngine {
private templates;
private templatesDir;
constructor(templatesDir?: string);
loadTemplate(templatePath: string): Promise<ConfigTemplate>;
saveTemplate(template: ConfigTemplate, templatePath?: string): Promise<string>;
listTemplates(): Promise<ConfigTemplate[]>;
getTemplate(name: string): Promise<ConfigTemplate | null>;
renderTemplate(templateName: string, variables: Record<string, any>, context?: Partial<TemplateContext>): Promise<any>;
createTemplate(name: string, config: any, variables: TemplateVariable[], options?: {
description?: string;
author?: string;
tags?: string[];
version?: string;
}): Promise<ConfigTemplate>;
deleteTemplate(name: string): Promise<void>;
private substituteVariables;
private substituteString;
private getVariableValue;
private evaluateExpression;
private buildContext;
private validateTemplate;
private validateVariable;
private validateVariables;
private validateVariableType;
private validateVariableRules;
}
export declare const TemplateHelpers: {
createProjectTemplate(projectName: string, framework: string, packageManager: string): ConfigTemplate;
createWorkspaceTemplate(type: "app" | "package" | "lib" | "tool"): ConfigTemplate;
};
export declare const templateEngine: ConfigTemplateEngine;