UNPKG

@aliceplex/core

Version:

[![License][license_badge]][license] [![Pipelines][pipelines_badge]][pipelines] [![Coverage][coverage_badge]][pipelines] [![NPM][npm_badge]][npm] [![semantic-release][semantic_release_badge]][semantic_release]

57 lines 2.1 kB
"use strict"; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; Object.defineProperty(exports, "__esModule", { value: true }); const yaml = __importStar(require("yaml")); const types_1 = require("yaml/types"); types_1.strOptions.fold.lineWidth = 9999999999; types_1.nullOptions.nullStr = ""; const model_1 = require("../model"); const validate_1 = require("../validate"); const utils_1 = require("./utils"); exports.serializeYaml = (model, options = {}) => { const { removeTrailingSpace = true } = options; const serializedValues = model_1.serializeModel(model_1.normalizeModel(model)); if ("season_summary" in serializedValues) { // eslint-disable-next-line @typescript-eslint/camelcase serializedValues.season_summary = utils_1.convertSeasonSummary(serializedValues.season_summary); } const str = yaml.stringify(serializedValues); const doc = yaml.parseDocument(str); doc.contents.items.forEach((i) => { switch (i.key.value) { case "summary": if (i.value) { i.value.type = "BLOCK_LITERAL"; } break; case "season_summary": i.value.items.forEach((summary) => { summary.value.type = "BLOCK_LITERAL"; }); break; case "rating": if (i.value) { i.value.minFractionDigits = 1; } break; } }); let yml = String(doc); if (removeTrailingSpace) { yml = yml.replace(/[^\S\n]+\n/g, "\n"); } return yml; }; exports.deserializeYaml = (str) => { const data = yaml.parse(str); const ajv = validate_1.createAjv(); const model = validate_1.toSerializedModel(data, { ajv }); return model_1.deserializeModel(model); }; //# sourceMappingURL=yml.js.map