UNPKG

@gati-framework/cli

Version:

CLI tool for Gati framework - create, develop, build and deploy cloud-native applications

83 lines 2.35 kB
/** * @module cli/codegen/bundle-generator * @description Generate deployment bundles containing all manifests and schemas */ import type { HandlerManifest, ModuleManifest } from '../analyzer/manifest-generator.js'; import type { GType } from '@gati-framework/runtime'; export interface ManifestBundle { version: string; generated: string; checksum: string; handlers: HandlerManifest[]; modules: ModuleManifest[]; schemas: Record<string, GType>; versionGraph: VersionGraph; transformers: TransformerMetadata[]; metadata: BundleMetadata; } export interface VersionGraph { nodes: VersionNode[]; edges: VersionEdge[]; } export interface VersionNode { version: string; handlerId: string; timestamp: number; } export interface VersionEdge { from: string; to: string; breaking: boolean; } export interface TransformerMetadata { fromVersion: string; toVersion: string; path: string; } export interface BundleMetadata { projectName?: string; environment?: string; buildNumber?: string; gitCommit?: string; [key: string]: unknown; } export interface BundleGeneratorOptions { version?: string; projectName?: string; environment?: string; includeMetadata?: boolean; } /** * Generate deployment bundle from manifests and schemas */ export declare class BundleGenerator { generate(handlers: HandlerManifest[], modules: ModuleManifest[], schemas: Record<string, GType>, options?: BundleGeneratorOptions): ManifestBundle; private validateManifests; private buildVersionGraph; private extractTimestamp; private collectTransformers; private buildMetadata; private calculateChecksum; /** * Create manifest index for fast lookup */ createIndex(bundle: ManifestBundle): ManifestIndex; /** * Validate bundle integrity */ validateBundle(bundle: ManifestBundle): ValidationResult; } export interface ManifestIndex { handlers: Map<string, HandlerManifest>; modules: Map<string, ModuleManifest>; paths: Map<string, HandlerManifest[]>; } export interface ValidationResult { valid: boolean; errors: string[]; } /** * Create bundle generator instance */ export declare function createBundleGenerator(): BundleGenerator; //# sourceMappingURL=bundle-generator.d.ts.map