serialize.js
1 "use strict"; 2 Object.defineProperty(exports, "__esModule", { value: true }); 3 exports.loadStructuredFile = exports.serializeStructure = exports.deserializeStructure = exports.toYAML = void 0; 4 const fs = require("fs-extra"); 5 const yaml_cfn = require("./util/yaml-cfn"); 6 /** 7 * Stringify to YAML 8 */ 9 function toYAML(obj) { 10 return yaml_cfn.serialize(obj); 11 } 12 exports.toYAML = toYAML; 13 /** 14 * Parse either YAML or JSON 15 */ 16 function deserializeStructure(str) { 17 try { 18 return yaml_cfn.deserialize(str); 19 } 20 catch (e) { 21 // This shouldn't really ever happen I think, but it's the code we had so I'm leaving it. 22 return JSON.parse(str); 23 } 24 } 25 exports.deserializeStructure = deserializeStructure; 26 /** 27 * Serialize to either YAML or JSON 28 */ 29 function serializeStructure(object, json) { 30 if (json) { 31 return JSON.stringify(object, undefined, 2); 32 } 33 else { 34 return toYAML(object); 35 } 36 } 37 exports.serializeStructure = serializeStructure; 38 /** 39 * Load a YAML or JSON file from disk 40 */ 41 async function loadStructuredFile(fileName) { 42 const contents = await fs.readFile(fileName, { encoding: 'utf-8' }); 43 return deserializeStructure(contents); 44 } 45 exports.loadStructuredFile = loadStructuredFile; 46 //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VyaWFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUMvQiw0Q0FBNEM7QUFFNUM7O0dBRUc7QUFDSCxTQUFnQixNQUFNLENBQUMsR0FBUTtJQUM3QixPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUZELHdCQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxHQUFXO0lBQzlDLElBQUk7UUFDRixPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbEM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLHlGQUF5RjtRQUN6RixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDeEI7QUFDSCxDQUFDO0FBUEQsb0RBT0M7QUFFRDs7R0FFRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLE1BQVcsRUFBRSxJQUFhO0lBQzNELElBQUksSUFBSSxFQUFFO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDN0M7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3ZCO0FBQ0gsQ0FBQztBQU5ELGdEQU1DO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsUUFBZ0I7SUFDdkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLE9BQU8sb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUhELGdEQUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgeWFtbF9jZm4gZnJvbSAnLi91dGlsL3lhbWwtY2ZuJztcblxuLyoqXG4gKiBTdHJpbmdpZnkgdG8gWUFNTFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9ZQU1MKG9iajogYW55KTogc3RyaW5nIHtcbiAgcmV0dXJuIHlhbWxfY2ZuLnNlcmlhbGl6ZShvYmopO1xufVxuXG4vKipcbiAqIFBhcnNlIGVpdGhlciBZQU1MIG9yIEpTT05cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplU3RydWN0dXJlKHN0cjogc3RyaW5nKTogYW55IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4geWFtbF9jZm4uZGVzZXJpYWxpemUoc3RyKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIFRoaXMgc2hvdWxkbid0IHJlYWxseSBldmVyIGhhcHBlbiBJIHRoaW5rLCBidXQgaXQncyB0aGUgY29kZSB3ZSBoYWQgc28gSSdtIGxlYXZpbmcgaXQuXG4gICAgcmV0dXJuIEpTT04ucGFyc2Uoc3RyKTtcbiAgfVxufVxuXG4vKipcbiAqIFNlcmlhbGl6ZSB0byBlaXRoZXIgWUFNTCBvciBKU09OXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVTdHJ1Y3R1cmUob2JqZWN0OiBhbnksIGpzb246IGJvb2xlYW4pIHtcbiAgaWYgKGpzb24pIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqZWN0LCB1bmRlZmluZWQsIDIpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0b1lBTUwob2JqZWN0KTtcbiAgfVxufVxuXG4vKipcbiAqIExvYWQgYSBZQU1MIG9yIEpTT04gZmlsZSBmcm9tIGRpc2tcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRTdHJ1Y3R1cmVkRmlsZShmaWxlTmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IGNvbnRlbnRzID0gYXdhaXQgZnMucmVhZEZpbGUoZmlsZU5hbWUsIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG4gIHJldHVybiBkZXNlcmlhbGl6ZVN0cnVjdHVyZShjb250ZW50cyk7XG59XG4iXX0=