yoastseo
Version:
Yoast client-side content analysis
44 lines (42 loc) • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = parse;
var _lodash = require("lodash");
var _AssessmentResult = _interopRequireDefault(require("../../values/AssessmentResult"));
var _Mark = _interopRequireDefault(require("../../values/Mark"));
var _Paper = _interopRequireDefault(require("../../values/Paper"));
var _Sentence = _interopRequireDefault(require("../../languageProcessing/values/Sentence"));
var _Clause = _interopRequireDefault(require("../../languageProcessing/values/Clause"));
var _ProminentWord = _interopRequireDefault(require("../../languageProcessing/values/ProminentWord"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const PARSE_CLASSES = {
AssessmentResult: _AssessmentResult.default,
Mark: _Mark.default,
Paper: _Paper.default,
Sentence: _Sentence.default,
Clause: _Clause.default,
ProminentWord: _ProminentWord.default
};
/**
* Parses a data structure that has previously been serialized.
*
* @param {*} thing The data structure to parse.
*
* @returns {*} The parsed data structure.
*/
function parse(thing) {
if ((0, _lodash.isArray)(thing)) {
return thing.map(parse);
}
const thingIsObject = (0, _lodash.isObject)(thing);
if (thingIsObject && thing._parseClass && PARSE_CLASSES[thing._parseClass]) {
return PARSE_CLASSES[thing._parseClass].parse(thing);
}
if (thingIsObject) {
return (0, _lodash.mapValues)(thing, value => parse(value));
}
return thing;
}
//# sourceMappingURL=parse.js.map