12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- const babel = require("./babel-core.cjs");
- const convert = require("../convert/index.cjs");
- const {
- getVisitorKeys,
- getTokLabels
- } = require("./ast-info.cjs");
- const extractParserOptionsPlugin = require("./extract-parser-options-plugin.cjs");
- const ref = {};
- let extractParserOptionsConfigItem;
- const MULTIPLE_OVERRIDES = /More than one plugin attempted to override parsing/;
- module.exports = function maybeParse(code, options) {
- if (!extractParserOptionsConfigItem) {
- extractParserOptionsConfigItem = babel.createConfigItem([extractParserOptionsPlugin, ref], {
- dirname: __dirname,
- type: "plugin"
- });
- }
- const {
- plugins
- } = options;
- options.plugins = plugins.concat(extractParserOptionsConfigItem);
- try {
- return {
- parserOptions: babel.parseSync(code, options),
- ast: null
- };
- } catch (err) {
- if (!MULTIPLE_OVERRIDES.test(err.message)) {
- throw err;
- }
- }
- options.plugins = plugins;
- let ast;
- try {
- ast = babel.parseSync(code, options);
- } catch (err) {
- throw convert.error(err);
- }
- return {
- ast: convert.ast(ast, code, getTokLabels(), getVisitorKeys()),
- parserOptions: null
- };
- };
- //# sourceMappingURL=maybeParse.cjs.map
|