UNPKG

k8ts

Version:

Powerful framework for building Kubernetes manifests in TypeScript.

51 lines 1.8 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.YamlSerializer = void 0; const instruments_1 = require("@k8ts/instruments"); const emittery_1 = __importDefault(require("emittery")); const js_yaml_1 = require("js-yaml"); const _imports_1 = require("../../_imports"); const error_1 = require("../../error"); class YamlSerializer extends emittery_1.default { _options; constructor(_options) { super(); this._options = _options; } async serialize(input) { await this.emit("serialize", { manifest: input, resource: instruments_1.ManifestSourceEmbedder.get(input).node }); try { const result = (0, js_yaml_1.dump)(input, { lineWidth: 800, noArrayIndent: true, indent: 2, replacer(key, value) { if (value instanceof _imports_1.CDK.IntOrString) { return value.value; } if (value instanceof _imports_1.CDK.Quantity) { return value.value; } return value; }, ...this._options.jsYamlOptions, noRefs: true }); return result; } catch (err) { const resource = instruments_1.ManifestSourceEmbedder.get(input); throw new error_1.MakeError(`Failed to serialize manifest ${resource}`, { cause: err }); } } } exports.YamlSerializer = YamlSerializer; //# sourceMappingURL=serializer.js.map