| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.assumptionsNames = void 0;
- exports.checkNoUnwrappedItemOptionPairs = checkNoUnwrappedItemOptionPairs;
- exports.validate = validate;
- var _removed = require("./removed.js");
- var _optionAssertions = require("./option-assertions.js");
- var _configError = require("../../errors/config-error.js");
- const ROOT_VALIDATORS = {
- cwd: _optionAssertions.assertString,
- root: _optionAssertions.assertString,
- rootMode: _optionAssertions.assertRootMode,
- configFile: _optionAssertions.assertConfigFileSearch,
- caller: _optionAssertions.assertCallerMetadata,
- filename: _optionAssertions.assertString,
- filenameRelative: _optionAssertions.assertString,
- code: _optionAssertions.assertBoolean,
- ast: _optionAssertions.assertBoolean,
- cloneInputAst: _optionAssertions.assertBoolean,
- envName: _optionAssertions.assertString
- };
- const BABELRC_VALIDATORS = {
- babelrc: _optionAssertions.assertBoolean,
- babelrcRoots: _optionAssertions.assertBabelrcSearch
- };
- const NONPRESET_VALIDATORS = {
- extends: _optionAssertions.assertString,
- ignore: _optionAssertions.assertIgnoreList,
- only: _optionAssertions.assertIgnoreList,
- targets: _optionAssertions.assertTargets,
- browserslistConfigFile: _optionAssertions.assertConfigFileSearch,
- browserslistEnv: _optionAssertions.assertString
- };
- const COMMON_VALIDATORS = {
- inputSourceMap: _optionAssertions.assertInputSourceMap,
- presets: _optionAssertions.assertPluginList,
- plugins: _optionAssertions.assertPluginList,
- passPerPreset: _optionAssertions.assertBoolean,
- assumptions: _optionAssertions.assertAssumptions,
- env: assertEnvSet,
- overrides: assertOverridesList,
- test: _optionAssertions.assertConfigApplicableTest,
- include: _optionAssertions.assertConfigApplicableTest,
- exclude: _optionAssertions.assertConfigApplicableTest,
- retainLines: _optionAssertions.assertBoolean,
- comments: _optionAssertions.assertBoolean,
- shouldPrintComment: _optionAssertions.assertFunction,
- compact: _optionAssertions.assertCompact,
- minified: _optionAssertions.assertBoolean,
- auxiliaryCommentBefore: _optionAssertions.assertString,
- auxiliaryCommentAfter: _optionAssertions.assertString,
- sourceType: _optionAssertions.assertSourceType,
- wrapPluginVisitorMethod: _optionAssertions.assertFunction,
- highlightCode: _optionAssertions.assertBoolean,
- sourceMaps: _optionAssertions.assertSourceMaps,
- sourceMap: _optionAssertions.assertSourceMaps,
- sourceFileName: _optionAssertions.assertString,
- sourceRoot: _optionAssertions.assertString,
- parserOpts: _optionAssertions.assertObject,
- generatorOpts: _optionAssertions.assertObject
- };
- {
- Object.assign(COMMON_VALIDATORS, {
- getModuleId: _optionAssertions.assertFunction,
- moduleRoot: _optionAssertions.assertString,
- moduleIds: _optionAssertions.assertBoolean,
- moduleId: _optionAssertions.assertString
- });
- }
- const knownAssumptions = ["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitiveHint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noIncompleteNsImportDetection", "noNewArrows", "noUninitializedPrivateFieldAccess", "objectRestNoSymbols", "privateFieldsAsSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods", "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"];
- const assumptionsNames = exports.assumptionsNames = new Set(knownAssumptions);
- function getSource(loc) {
- return loc.type === "root" ? loc.source : getSource(loc.parent);
- }
- function validate(type, opts, filename) {
- try {
- return validateNested({
- type: "root",
- source: type
- }, opts);
- } catch (error) {
- const configError = new _configError.default(error.message, filename);
- if (error.code) configError.code = error.code;
- throw configError;
- }
- }
- function validateNested(loc, opts) {
- const type = getSource(loc);
- assertNoDuplicateSourcemap(opts);
- Object.keys(opts).forEach(key => {
- const optLoc = {
- type: "option",
- name: key,
- parent: loc
- };
- if (type === "preset" && NONPRESET_VALIDATORS[key]) {
- throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in preset options`);
- }
- if (type !== "arguments" && ROOT_VALIDATORS[key]) {
- throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options`);
- }
- if (type !== "arguments" && type !== "configfile" && BABELRC_VALIDATORS[key]) {
- if (type === "babelrcfile" || type === "extendsfile") {
- throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in .babelrc or "extends"ed files, only in root programmatic options, ` + `or babel.config.js/config file options`);
- }
- throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options, or babel.config.js/config file options`);
- }
- const validator = COMMON_VALIDATORS[key] || NONPRESET_VALIDATORS[key] || BABELRC_VALIDATORS[key] || ROOT_VALIDATORS[key] || throwUnknownError;
- validator(optLoc, opts[key]);
- });
- return opts;
- }
- function throwUnknownError(loc) {
- const key = loc.name;
- if (_removed.default[key]) {
- const {
- message,
- version = 5
- } = _removed.default[key];
- throw new Error(`Using removed Babel ${version} option: ${(0, _optionAssertions.msg)(loc)} - ${message}`);
- } else {
- const unknownOptErr = new Error(`Unknown option: ${(0, _optionAssertions.msg)(loc)}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`);
- unknownOptErr.code = "BABEL_UNKNOWN_OPTION";
- throw unknownOptErr;
- }
- }
- function assertNoDuplicateSourcemap(opts) {
- if (hasOwnProperty.call(opts, "sourceMap") && hasOwnProperty.call(opts, "sourceMaps")) {
- throw new Error(".sourceMap is an alias for .sourceMaps, cannot use both");
- }
- }
- function assertEnvSet(loc, value) {
- if (loc.parent.type === "env") {
- throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside of another .env block`);
- }
- const parent = loc.parent;
- const obj = (0, _optionAssertions.assertObject)(loc, value);
- if (obj) {
- for (const envName of Object.keys(obj)) {
- const env = (0, _optionAssertions.assertObject)((0, _optionAssertions.access)(loc, envName), obj[envName]);
- if (!env) continue;
- const envLoc = {
- type: "env",
- name: envName,
- parent
- };
- validateNested(envLoc, env);
- }
- }
- return obj;
- }
- function assertOverridesList(loc, value) {
- if (loc.parent.type === "env") {
- throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .env block`);
- }
- if (loc.parent.type === "overrides") {
- throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .overrides block`);
- }
- const parent = loc.parent;
- const arr = (0, _optionAssertions.assertArray)(loc, value);
- if (arr) {
- for (const [index, item] of arr.entries()) {
- const objLoc = (0, _optionAssertions.access)(loc, index);
- const env = (0, _optionAssertions.assertObject)(objLoc, item);
- if (!env) throw new Error(`${(0, _optionAssertions.msg)(objLoc)} must be an object`);
- const overridesLoc = {
- type: "overrides",
- index,
- parent
- };
- validateNested(overridesLoc, env);
- }
- }
- return arr;
- }
- function checkNoUnwrappedItemOptionPairs(items, index, type, e) {
- if (index === 0) return;
- const lastItem = items[index - 1];
- const thisItem = items[index];
- if (lastItem.file && lastItem.options === undefined && typeof thisItem.value === "object") {
- e.message += `\n- Maybe you meant to use\n` + `"${type}s": [\n ["${lastItem.file.request}", ${JSON.stringify(thisItem.value, undefined, 2)}]\n]\n` + `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`;
- }
- }
- 0 && 0;
- //# sourceMappingURL=options.js.map
|