'a'
mh-two-thousand-and-two
2024-04-12 44d2c92345cd156a59fc327b3060292a282d2893
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.parse = exports.parser = void 0;
var tslib_1 = require("tslib");
var _babel_options_1 = tslib_1.__importDefault(require("./_babel_options"));
// Prefer the new @babel/parser package, but fall back to babylon if
// that's what's available.
exports.parser = (function () {
    try {
        return require("@babel/parser");
    }
    catch (_a) {
        try {
            return require("babylon");
        }
        catch (_b) {
            throw new Error("Install @babel/parser to use the `typescript`, `flow`, or `babel` parsers");
        }
    }
})();
// This module is suitable for passing as options.parser when calling
// recast.parse to process JavaScript code with Babel:
//
//   const ast = recast.parse(source, {
//     parser: require("recast/parsers/babel")
//   });
//
function parse(source, options) {
    var babelOptions = (0, _babel_options_1.default)(options);
    babelOptions.plugins.push("jsx", "flow", "decoratorAutoAccessors");
    return exports.parser.parse(source, babelOptions);
}
exports.parse = parse;