UNPKG

@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

75 lines (74 loc) 2.7 kB
import { WorkspaceDefinition, WorkspaceEntry, WorkspaceTypeConfig } from './workspace-schema'; export interface WorkspaceTemplate { name: string; description?: string; version: string; extends?: string; variables?: TemplateVariable[]; workspaceDefaults?: Partial<WorkspaceEntry>; typeDefaults?: Record<string, Partial<WorkspaceTypeConfig>>; patterns?: string[]; dependencies?: Record<string, any>; scripts?: Record<string, any>; metadata?: Record<string, any>; } export interface TemplateVariable { name: string; description?: string; type: 'string' | 'number' | 'boolean' | 'array' | 'object'; default?: any; required?: boolean; enum?: any[]; pattern?: string; } export interface TemplateContext { variables: Record<string, any>; workspace?: WorkspaceEntry; definition?: WorkspaceDefinition; } export interface InheritanceChain { templates: WorkspaceTemplate[]; variables: Record<string, TemplateVariable>; merged: WorkspaceTemplate; } export interface TemplateRegistry { version: string; templates: Record<string, WorkspaceTemplate>; metadata: { created: string; modified: string; count: number; }; } export declare class WorkspaceTemplateManager { private templatesPath; private registry; private templateCache; constructor(rootPath?: string); init(): Promise<void>; loadRegistry(): Promise<void>; saveRegistry(): Promise<void>; createTemplate(template: WorkspaceTemplate): Promise<void>; getTemplate(name: string): Promise<WorkspaceTemplate | null>; listTemplates(): Promise<WorkspaceTemplate[]>; deleteTemplate(name: string): Promise<void>; applyTemplate(templateName: string, context: TemplateContext): Promise<Partial<WorkspaceDefinition>>; resolveInheritanceChain(templateName: string): Promise<InheritanceChain>; private mergeTemplates; private applyTemplateWithInheritance; private validateTemplate; private validateVariableDefinition; private validateVariables; private isValidType; private substituteVariables; private substituteString; private findDependentTemplates; private loadBuiltInTemplates; private createMicrofrontendTemplate; private createLibraryTemplate; private createServiceTemplate; private createMonorepoTemplate; private createDefaultRegistry; } export declare function createWorkspaceTemplateManager(rootPath?: string): Promise<WorkspaceTemplateManager>; export declare function exportWorkspaceAsTemplate(definition: WorkspaceDefinition, templateName: string, variables?: TemplateVariable[]): Promise<WorkspaceTemplate>;