esprima.js 987 B

123456789101112131415161718192021222324252627282930
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.parse = void 0;
  4. // This module is suitable for passing as options.parser when calling
  5. // recast.parse to process ECMAScript code with Esprima:
  6. //
  7. // const ast = recast.parse(source, {
  8. // parser: require("recast/parsers/esprima")
  9. // });
  10. //
  11. var util_1 = require("../lib/util");
  12. function parse(source, options) {
  13. var comments = [];
  14. var ast = require("esprima").parse(source, {
  15. loc: true,
  16. locations: true,
  17. comment: true,
  18. onComment: comments,
  19. range: (0, util_1.getOption)(options, "range", false),
  20. tolerant: (0, util_1.getOption)(options, "tolerant", true),
  21. tokens: true,
  22. jsx: (0, util_1.getOption)(options, "jsx", false),
  23. sourceType: (0, util_1.getOption)(options, "sourceType", "module"),
  24. });
  25. if (!Array.isArray(ast.comments)) {
  26. ast.comments = comments;
  27. }
  28. return ast;
  29. }
  30. exports.parse = parse;