UNPKG

k8ts

Version:

Powerful framework for building Kubernetes manifests in TypeScript.

50 lines 1.73 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ManifestSaver = void 0; const emittery_1 = __importDefault(require("emittery")); const promises_1 = require("fs/promises"); const path_1 = require("path"); class ManifestSaver extends emittery_1.default { _options; _encoder = new TextEncoder(); constructor(_options) { super(); this._options = _options; } _splat(manifests) { return manifests.join("\n---\n"); } async prepareOnce() { await this.emit("purge", { outdir: this._options.outdir }); await (0, promises_1.rm)(this._options.outdir, { force: true, maxRetries: 2, retryDelay: 500, recursive: true }); await (0, promises_1.mkdir)(this._options.outdir, { recursive: true }); } async save(origin, manifests) { const content = this._splat(manifests); const filename = `${origin.name}`; const encoded = this._encoder.encode(content); const outPath = (0, path_1.resolve)(this._options.outdir, filename); const e = { filename, path: outPath, content: content, bytes: encoded.byteLength }; await this.emit("save", e); await (0, promises_1.mkdir)(this._options.outdir, { recursive: true }); await (0, promises_1.writeFile)((0, path_1.join)(this._options.outdir, filename), encoded); return e; } } exports.ManifestSaver = ManifestSaver; //# sourceMappingURL=saver.js.map