Files

1 line
7.3 KiB
Plaintext
Raw Permalink Normal View History

{"version":3,"names":["babel","require","ESLINT_VERSION","getParserPlugins","babelOptions","_babelOptions$parserO","_babelOptions$parserO2","babelParserPlugins","parserOpts","plugins","estreeOptions","classFeatures","plugin","Array","isArray","Object","assign","normalizeParserOptions","options","_options$allowImportE","_options$ecmaFeatures","_options$ecmaFeatures2","sourceType","filename","filePath","allowImportExportEverywhere","allowSuperOutsideMethod","allowReturnOutsideFunction","ecmaFeatures","globalReturn","attachComment","ranges","tokens","caller","name","validateResolvedConfig","config","parseOptions","requireConfigFile","hasFilesystemConfig","error","includes","Error","getDefaultParserOptions","babelrc","configFile","browserslistConfigFile","ignore","only","normalizeBabelParseConfig","_x","_normalizeBabelParseConfig","apply","arguments","_asyncToGenerator","loadPartialConfigAsync","normalizeBabelParseConfigSync","loadPartialConfigSync"],"sources":["../../src/worker/configuration.cts"],"sourcesContent":["import babel = require(\"./babel-core.cts\");\nimport ESLINT_VERSION = require(\"../utils/eslint-version.cts\");\nimport type { InputOptions } from \"@babel/core\";\nimport type { Options } from \"../types.cts\";\nimport type { PartialConfig } from \"../../../../packages/babel-core/src/config\";\n\n/**\n * Merge user supplied estree plugin options to default estree plugin options\n *\n * @returns {Array} Merged parser plugin descriptors\n */\nfunction getParserPlugins(\n babelOptions: InputOptions,\n): InputOptions[\"parserOpts\"][\"plugins\"] {\n const babelParserPlugins = babelOptions.parserOpts?.plugins ?? [];\n const estreeOptions = { classFeatures: ESLINT_VERSION >= 8 };\n for (const plugin of babelParserPlugins) {\n if (Array.isArray(plugin) && plugin[0] === \"estree\") {\n Object.assign(estreeOptions, plugin[1]);\n break;\n }\n }\n // estree must be the first parser plugin to work with other parser plugins\n return [[\"estree\", estreeOptions], ...babelParserPlugins];\n}\n\nfunction normalizeParserOptions(options: Options): InputOptions & {\n showIgnoredFiles?: boolean;\n} {\n return {\n // https://github.com/eslint/js/issues/519\n sourceType: options.sourceType as \"module\" | \"script\",\n filename: options.filePath,\n ...options.babelOptions,\n parserOpts: {\n ...(process.env.BABEL_8_BREAKING\n ? {}\n : {\n allowImportExportEverywhere:\n options.allowImportExportEverywhere ?? false,\n allowSuperOutsideMethod: true,\n }),\n allowReturnOutsideFunction:\n options.ecmaFeatures?.globalReturn ??\n (process.env.BABEL_8_BREAKING ? false : true),\n ...options.babelOptions.parserOpts,\n plugins: getParserPlugins(options.babelOptions),\n // skip comment attaching for parsing performance\n attachComment: false,\n ranges: true,\n tokens: true,\n },\n caller: {\n name: \"@babel/eslint-parser\",\n ...options.babelOptions.caller,\n },\n };\n}\n\nfunction validateResolvedConfig(\n config: PartialConfig,\n options: Options,\n parseOptions: InputOptions,\n) {\n if (config !== null) {\n if (options.requireConfigFile !== false) {\n if (!config.hasFilesystemConfig()) {\n let error = `No Babel config file detected for ${config.options.filename}. Either disable config file checking with requireConfigFile: false, or configure Babel so that it can find the config files.`;\n\n if (config.options.filename.includes(\"node_modules\")) {\n error += `\\nIf you have a .babelrc.js file or use package.json#babel, keep in mind that it's not used when parsing dependencies. If you want your config to be applied to your whole app, consider using babel.config.js or babel.config.json instead.`;\n }\n\n throw new Error(error);\n }\n }\n if (config.options) return config.options;\n }\n\n return getDefaultParserOptions(parseOptions);\n}\n\nfunction getDefaultParserOptions(options: InputOptions): InputOptions {\n r