You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
"use strict";
exports.__esModule = true; exports.validateIncludeExclude = validateIncludeExclude; exports.applyMissingDependenciesDefaults = applyMissingDependenciesDefaults;
var _utils = require("./utils");
function patternToRegExp(pattern) { if (pattern instanceof RegExp) return pattern;
try { return new RegExp(`^${pattern}$`); } catch (_unused) { return null; } }
function buildUnusedError(label, unused) { if (!unused.length) return ""; return ` - The following "${label}" patterns didn't match any polyfill:\n` + unused.map(original => ` ${String(original)}\n`).join(""); }
function buldDuplicatesError(duplicates) { if (!duplicates.size) return ""; return ` - The following polyfills were matched both by "include" and "exclude" patterns:\n` + Array.from(duplicates, name => ` ${name}\n`).join(""); }
function validateIncludeExclude(provider, polyfills, includePatterns, excludePatterns) { let current;
const filter = pattern => { const regexp = patternToRegExp(pattern); if (!regexp) return false; let matched = false;
for (const polyfill of polyfills) { if (regexp.test(polyfill)) { matched = true; current.add(polyfill); } }
return !matched; }; // prettier-ignore
const include = current = new Set(); const unusedInclude = Array.from(includePatterns).filter(filter); // prettier-ignore
const exclude = current = new Set(); const unusedExclude = Array.from(excludePatterns).filter(filter); const duplicates = (0, _utils.intersection)(include, exclude);
if (duplicates.size > 0 || unusedInclude.length > 0 || unusedExclude.length > 0) { throw new Error(`Error while validating the "${provider}" provider options:\n` + buildUnusedError("include", unusedInclude) + buildUnusedError("exclude", unusedExclude) + buldDuplicatesError(duplicates)); }
return { include, exclude }; }
function applyMissingDependenciesDefaults(options, babelApi) { const { missingDependencies = {} } = options; if (missingDependencies === false) return false; const caller = babelApi.caller(caller => caller == null ? void 0 : caller.name); const { log = "deferred", inject = caller === "rollup-plugin-babel" ? "throw" : "import", all = false } = missingDependencies; return { log, inject, all }; }
|