Sha256: c747ba1d700ea929778a2bcbeb2a0528f8acf5a5db84dd8b36b13168e2621ec2
Contents?: true
Size: 1.25 KB
Versions: 7
Compression:
Stored size: 1.25 KB
Contents
"use strict"; const babel = require("./babel-core.cjs"); const convert = require("../convert/index.cjs"); const astInfo = require("./ast-info.cjs"); const extractParserOptionsPlugin = require("./extract-parser-options-plugin.cjs"); const { getVisitorKeys, getTokLabels } = astInfo; 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.createConfigItemSync([extractParserOptionsPlugin, ref], { dirname: __dirname, type: "plugin" }); } const { plugins } = options; options.plugins = plugins.concat(extractParserOptionsConfigItem); let ast; try { return { parserOptions: babel.parseSync(code, options), ast: null }; } catch (err) { if (!MULTIPLE_OVERRIDES.test(err.message)) { throw err; } } options.plugins = plugins; try { ast = babel.parseSync(code, options); } catch (err) { throw convert.convertError(err); } return { ast: convert.convertFile(ast, code, getTokLabels(), getVisitorKeys()), parserOptions: null }; }; //# sourceMappingURL=maybeParse.cjs.map
Version data entries
7 entries across 7 versions & 1 rubygems