jest-snapshot-parser
Version:
parse jest snapshot content (*.snap file)
34 lines (33 loc) • 1.19 kB
JavaScript
;
exports.__esModule = true;
var tslib_1 = require("tslib");
exports.parse_v1 = function (content) {
var data = get_data(content);
return Object.keys(data).reduce(function (parsed, key) {
return (tslib_1.__assign({}, parsed, (_a = {}, _a[key] = parse(data[key]), _a)));
var _a;
}, {});
};
function parse(value) {
var reverted_value = revert_extra_line_breaks(value).replace(/\n/g, '\\n');
try {
return reverted_value === 'undefined'
? undefined
: JSON.parse(reverted_value);
}
catch (error) {
// istanbul ignore next
throw new Error("Unexpected error while parsing:\n\n>>> start >>>\n" + reverted_value + "\n<<< end <<<\n\n" + error.message);
}
}
// https://github.com/facebook/jest/blob/v20.0.4/packages/jest-snapshot/src/utils.js#L128
function revert_extra_line_breaks(str) {
return str.includes('\n') ? str.slice(1, -1) : str;
}
// https://github.com/facebook/jest/blob/v20.0.4/packages/jest-snapshot/src/utils.js#L98
function get_data(content) {
var data = Object.create(null);
var populate = new Function('exports', content);
populate(data);
return data;
}