k8ts
Version:
Powerful framework for building Kubernetes manifests in TypeScript.
53 lines • 1.84 kB
TypeScript
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