UNPKG

k8ts

Version:

Powerful framework for building Kubernetes manifests in TypeScript.

53 lines 1.84 kB
import { Origin } from "@k8ts/instruments"; import { Meta } from "@k8ts/metadata"; import Emittery from "emittery"; import type { File } from "../../file"; import { type ResourceLoaderEventsTable } from "./loader"; import { NodeManifest, type ManifesterEventsTable } from "./manifester"; import { type ManifestSaverEventsTable } from "./saver"; import { type SerializerEventsTable } from "./serializer"; import { ValidatorEventsTable } from "./validator"; export declare class Assembler extends Emittery<AssemblerEventsTable> { private readonly _options; constructor(_options: AssemblerOptions); assemble(inFiles: Iterable<File.Input>): Promise<AssembledResult>; } export interface FileNodes { file: Origin; resources: NodeManifest[]; } export interface Artifact extends NodeManifest { yaml: string; } export interface AssembledFile { file: Origin; path: string; filename: string; bytes: number; artifacts: Artifact[]; } export interface AssembledResult { files: AssembledFile[]; options: AssemblerOptions; } export interface AssemblerOptions { cwd?: string; printOptions?: boolean; outdir: string; meta?: Omit<Meta.Input, "name" | "namespace"> | Meta; } export type AssemblyStage = "loading" | "validating" | "manifesting" | "serializing" | "saving" | "start" | "reporting" | "done" | "gathering"; export interface AssemblerEventsTable extends ManifestSaverEventsTable, SerializerEventsTable, ManifesterEventsTable, ResourceLoaderEventsTable, ValidatorEventsTable { ["received-file"]: { file: Origin; }; ["stage"]: { stage: AssemblyStage; }; } export type AnyAssemblerEvent = { [K in keyof AssemblerEventsTable]: AssemblerEventsTable[K] & { type: K; }; }[keyof AssemblerEventsTable]; //# sourceMappingURL=assembler.d.ts.map