in app/src/app/services/json-parser.service.ts [105:139]
parse(text: string, reportError: boolean = true) {
let tree;
const error = (err?) => {
if (reportError) {
this.reportError(`Error while parsing: ${text}`);
console.log(err, tree);
return null;
}
throw err;
}
try {
tree = parseScript(`var __JSON__ = ${text};`, {
tolerant: true
});
if (tree.type !== "Program") {
return error();
}
const varDeclaration = tree.body[0];
if (varDeclaration.type !== 'VariableDeclaration') {
return error();
}
const objExpression = varDeclaration.declarations[0].init;
if (objExpression.type !== 'ObjectExpression') {
return error();
}
return this.buildObject(objExpression);
} catch (err) {
return error(err);
}
}