From 9bdb95c9e34cef640534e5e5a1e2225a80442000 Mon Sep 17 00:00:00 2001 From: HelenHuang <LinHuang@pollex.com.tw> Date: 星期四, 09 六月 2022 15:48:15 +0800 Subject: [PATCH] TODO#139894 [ footer -最下方說明與保經代合作 ] 文案修改 --- PAMapp/node_modules/core-js-compat/compat.js | 58 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 40 insertions(+), 18 deletions(-) diff --git a/PAMapp/node_modules/core-js-compat/compat.js b/PAMapp/node_modules/core-js-compat/compat.js index 5e5b003..cf68691 100644 --- a/PAMapp/node_modules/core-js-compat/compat.js +++ b/PAMapp/node_modules/core-js-compat/compat.js @@ -1,18 +1,33 @@ 'use strict'; -const { compare, has, intersection } = require('./helpers'); +const { compare, filterOutStabilizedProposals, has, intersection } = require('./helpers'); const data = require('./data'); +const entries = require('./entries'); const getModulesListForTargetVersion = require('./get-modules-list-for-target-version'); -const modules = require('./modules'); +const allModules = require('./modules'); const targetsParser = require('./targets-parser'); -function checkModule(name, targets) { - if (!has(data, name)) throw new TypeError(`Incorrect module: ${ name }`); +function getModules(filter) { + if (typeof filter == 'string') { + if (has(entries, filter)) return entries[filter]; + return allModules.filter(it => it.startsWith(filter)); + } else if (filter instanceof RegExp) return allModules.filter(it => filter.test(it)); + throw TypeError('Wrong filter!'); +} - const requirements = data[name]; +function normalizeModules(option) { + // TODO: use `.flatMap` in core-js@4 + return new Set(Array.isArray(option) ? [].concat.apply([], option.map(getModules)) : getModules(option)); +} + +function checkModule(name, targets) { const result = { - required: false, + required: !targets, targets: {}, }; + + if (!targets) return result; + + const requirements = data[name]; for (const [engine, version] of targets) { if (!has(requirements, engine) || compare(version, '<', requirements[engine])) { @@ -24,28 +39,35 @@ return result; } -module.exports = function ({ targets, filter, version }) { - const parsedTargets = targetsParser(targets); +module.exports = function ({ + filter = null, // TODO: Obsolete, remove from `core-js@4` + modules = null, + exclude = [], + targets = null, + version = null, +} = {}) { + if (modules == null) modules = filter; + + const parsedTargets = targets ? targetsParser(targets) : null; const result = { list: [], targets: {}, }; - let $modules = Array.isArray(filter) ? filter : modules; + exclude = normalizeModules(exclude); - if (filter instanceof RegExp) { - $modules = $modules.filter(it => filter.test(it)); - } else if (typeof filter == 'string') { - $modules = $modules.filter(it => it.startsWith(filter)); - } + modules = modules ? [...normalizeModules(modules)] : allModules; - if (version) { - $modules = intersection($modules, getModulesListForTargetVersion(version)); - } + if (exclude.size) modules = modules.filter(it => !exclude.has(it)); - for (const key of $modules) { + modules = intersection(modules, version ? getModulesListForTargetVersion(version) : allModules); + + modules = filterOutStabilizedProposals(modules); + + for (const key of modules) { const check = checkModule(key, parsedTargets); + if (check.required) { result.list.push(key); result.targets[key] = check.targets; -- Gitblit v1.8.0