parse()

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);
    }
  }