ness
Version:
✪ No-effort static sites deployed to your AWS account.
94 lines • 7.9 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.deserialize = exports.serialize = void 0;
const yaml = __importStar(require("yaml"));
const yaml_types = __importStar(require("yaml/types"));
/**
* Serializes the given data structure into valid YAML.
*
* @param obj the data structure to serialize
* @returns a string containing the YAML representation of {@param obj}
*/
function serialize(obj) {
const oldFold = yaml_types.strOptions.fold.lineWidth;
try {
yaml_types.strOptions.fold.lineWidth = 0;
return yaml.stringify(obj, { schema: 'yaml-1.1' });
}
finally {
yaml_types.strOptions.fold.lineWidth = oldFold;
}
}
exports.serialize = serialize;
/**
* Deserialize the YAML into the appropriate data structure.
*
* @param str the string containing YAML
* @returns the data structure the YAML represents
* (most often in case of CloudFormation, an object)
*/
function deserialize(str) {
return parseYamlStrWithCfnTags(str);
}
exports.deserialize = deserialize;
function makeTagForCfnIntrinsic(intrinsicName, addFnPrefix) {
return {
identify(value) {
return typeof value === 'string';
},
tag: `!${intrinsicName}`,
resolve: (_doc, cstNode) => {
const ret = {};
ret[addFnPrefix ? `Fn::${intrinsicName}` : intrinsicName] =
// the +1 is to account for the ! the short form begins with
parseYamlStrWithCfnTags(cstNode.toString().substring(intrinsicName.length + 1));
return ret;
},
};
}
const shortForms = [
'Base64',
'Cidr',
'FindInMap',
'GetAZs',
'ImportValue',
'Join',
'Sub',
'Select',
'Split',
'Transform',
'And',
'Equals',
'If',
'Not',
'Or',
'GetAtt',
]
.map((name) => makeTagForCfnIntrinsic(name, true))
.concat(makeTagForCfnIntrinsic('Ref', false), makeTagForCfnIntrinsic('Condition', false));
function parseYamlStrWithCfnTags(text) {
return yaml.parse(text, {
customTags: shortForms,
schema: 'yaml-1.1',
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWFtbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvYXdzL3lhbWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE0QjtBQUU1Qix1REFBd0M7QUFFeEM7Ozs7O0dBS0c7QUFDSCxTQUFnQixTQUFTLENBQUMsR0FBUTtJQUNoQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUE7SUFDcEQsSUFBSTtRQUNGLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUE7UUFDeEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFBO0tBQ2pEO1lBQVM7UUFDUixVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFBO0tBQy9DO0FBQ0gsQ0FBQztBQVJELDhCQVFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLEdBQVc7SUFDckMsT0FBTyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNyQyxDQUFDO0FBRkQsa0NBRUM7QUFFRCxTQUFTLHNCQUFzQixDQUM3QixhQUFxQixFQUNyQixXQUFvQjtJQUVwQixPQUFPO1FBQ0wsUUFBUSxDQUFDLEtBQVU7WUFDakIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUE7UUFDbEMsQ0FBQztRQUNELEdBQUcsRUFBRSxJQUFJLGFBQWEsRUFBRTtRQUN4QixPQUFPLEVBQUUsQ0FBQyxJQUFtQixFQUFFLE9BQTBCLEVBQUUsRUFBRTtZQUMzRCxNQUFNLEdBQUcsR0FBUSxFQUFFLENBQUE7WUFDbkIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO2dCQUN2RCw0REFBNEQ7Z0JBQzVELHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2pGLE9BQU8sR0FBRyxDQUFBO1FBQ1osQ0FBQztLQUNGLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLEdBQWtDO0lBQ2hELFFBQVE7SUFDUixNQUFNO0lBQ04sV0FBVztJQUNYLFFBQVE7SUFDUixhQUFhO0lBQ2IsTUFBTTtJQUNOLEtBQUs7SUFDTCxRQUFRO0lBQ1IsT0FBTztJQUNQLFdBQVc7SUFDWCxLQUFLO0lBQ0wsUUFBUTtJQUNSLElBQUk7SUFDSixLQUFLO0lBQ0wsSUFBSTtJQUNKLFFBQVE7Q0FDVDtLQUNFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ2pELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsc0JBQXNCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFFM0YsU0FBUyx1QkFBdUIsQ0FBQyxJQUFZO0lBQzNDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7UUFDdEIsVUFBVSxFQUFFLFVBQVU7UUFDdEIsTUFBTSxFQUFFLFVBQVU7S0FDbkIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHlhbWwgZnJvbSAneWFtbCdcbmltcG9ydCAqIGFzIHlhbWxfY3N0IGZyb20gJ3lhbWwvcGFyc2UtY3N0J1xuaW1wb3J0ICogYXMgeWFtbF90eXBlcyBmcm9tICd5YW1sL3R5cGVzJ1xuXG4vKipcbiAqIFNlcmlhbGl6ZXMgdGhlIGdpdmVuIGRhdGEgc3RydWN0dXJlIGludG8gdmFsaWQgWUFNTC5cbiAqXG4gKiBAcGFyYW0gb2JqIHRoZSBkYXRhIHN0cnVjdHVyZSB0byBzZXJpYWxpemVcbiAqIEByZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIFlBTUwgcmVwcmVzZW50YXRpb24gb2Yge0BwYXJhbSBvYmp9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemUob2JqOiBhbnkpOiBzdHJpbmcge1xuICBjb25zdCBvbGRGb2xkID0geWFtbF90eXBlcy5zdHJPcHRpb25zLmZvbGQubGluZVdpZHRoXG4gIHRyeSB7XG4gICAgeWFtbF90eXBlcy5zdHJPcHRpb25zLmZvbGQubGluZVdpZHRoID0gMFxuICAgIHJldHVybiB5YW1sLnN0cmluZ2lmeShvYmosIHtzY2hlbWE6ICd5YW1sLTEuMSd9KVxuICB9IGZpbmFsbHkge1xuICAgIHlhbWxfdHlwZXMuc3RyT3B0aW9ucy5mb2xkLmxpbmVXaWR0aCA9IG9sZEZvbGRcbiAgfVxufVxuXG4vKipcbiAqIERlc2VyaWFsaXplIHRoZSBZQU1MIGludG8gdGhlIGFwcHJvcHJpYXRlIGRhdGEgc3RydWN0dXJlLlxuICpcbiAqIEBwYXJhbSBzdHIgdGhlIHN0cmluZyBjb250YWluaW5nIFlBTUxcbiAqIEByZXR1cm5zIHRoZSBkYXRhIHN0cnVjdHVyZSB0aGUgWUFNTCByZXByZXNlbnRzXG4gKiAgIChtb3N0IG9mdGVuIGluIGNhc2Ugb2YgQ2xvdWRGb3JtYXRpb24sIGFuIG9iamVjdClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplKHN0cjogc3RyaW5nKTogYW55IHtcbiAgcmV0dXJuIHBhcnNlWWFtbFN0cldpdGhDZm5UYWdzKHN0cilcbn1cblxuZnVuY3Rpb24gbWFrZVRhZ0ZvckNmbkludHJpbnNpYyhcbiAgaW50cmluc2ljTmFtZTogc3RyaW5nLFxuICBhZGRGblByZWZpeDogYm9vbGVhbixcbik6IHlhbWxfdHlwZXMuU2NoZW1hLkN1c3RvbVRhZyB7XG4gIHJldHVybiB7XG4gICAgaWRlbnRpZnkodmFsdWU6IGFueSkge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICB9LFxuICAgIHRhZzogYCEke2ludHJpbnNpY05hbWV9YCxcbiAgICByZXNvbHZlOiAoX2RvYzogeWFtbC5Eb2N1bWVudCwgY3N0Tm9kZTogeWFtbF9jc3QuQ1NULk5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHJldDogYW55ID0ge31cbiAgICAgIHJldFthZGRGblByZWZpeCA/IGBGbjo6JHtpbnRyaW5zaWNOYW1lfWAgOiBpbnRyaW5zaWNOYW1lXSA9XG4gICAgICAgIC8vIHRoZSArMSBpcyB0byBhY2NvdW50IGZvciB0aGUgISB0aGUgc2hvcnQgZm9ybSBiZWdpbnMgd2l0aFxuICAgICAgICBwYXJzZVlhbWxTdHJXaXRoQ2ZuVGFncyhjc3ROb2RlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKGludHJpbnNpY05hbWUubGVuZ3RoICsgMSkpXG4gICAgICByZXR1cm4gcmV0XG4gICAgfSxcbiAgfVxufVxuXG5jb25zdCBzaG9ydEZvcm1zOiB5YW1sX3R5cGVzLlNjaGVtYS5DdXN0b21UYWdbXSA9IFtcbiAgJ0Jhc2U2NCcsXG4gICdDaWRyJyxcbiAgJ0ZpbmRJbk1hcCcsXG4gICdHZXRBWnMnLFxuICAnSW1wb3J0VmFsdWUnLFxuICAnSm9pbicsXG4gICdTdWInLFxuICAnU2VsZWN0JyxcbiAgJ1NwbGl0JyxcbiAgJ1RyYW5zZm9ybScsXG4gICdBbmQnLFxuICAnRXF1YWxzJyxcbiAgJ0lmJyxcbiAgJ05vdCcsXG4gICdPcicsXG4gICdHZXRBdHQnLFxuXVxuICAubWFwKChuYW1lKSA9PiBtYWtlVGFnRm9yQ2ZuSW50cmluc2ljKG5hbWUsIHRydWUpKVxuICAuY29uY2F0KG1ha2VUYWdGb3JDZm5JbnRyaW5zaWMoJ1JlZicsIGZhbHNlKSwgbWFrZVRhZ0ZvckNmbkludHJpbnNpYygnQ29uZGl0aW9uJywgZmFsc2UpKVxuXG5mdW5jdGlvbiBwYXJzZVlhbWxTdHJXaXRoQ2ZuVGFncyh0ZXh0OiBzdHJpbmcpOiBhbnkge1xuICByZXR1cm4geWFtbC5wYXJzZSh0ZXh0LCB7XG4gICAgY3VzdG9tVGFnczogc2hvcnRGb3JtcyxcbiAgICBzY2hlbWE6ICd5YW1sLTEuMScsXG4gIH0pXG59XG4iXX0=