@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
TypeScript
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>;