diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:10:59 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:41:44 +0800 |
| commit | fc87c009806dcc98867f6b58efe29b042aa01dee (patch) | |
| tree | 8f59b3f4a5b66e9dfef2d40c8d318e258a521228 /node_modules/babel-plugin-minify-simplify/lib/pattern-match.js | |
| parent | 3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff) | |
node: updatemain
Diffstat (limited to 'node_modules/babel-plugin-minify-simplify/lib/pattern-match.js')
| -rw-r--r-- | node_modules/babel-plugin-minify-simplify/lib/pattern-match.js | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/node_modules/babel-plugin-minify-simplify/lib/pattern-match.js b/node_modules/babel-plugin-minify-simplify/lib/pattern-match.js deleted file mode 100644 index e5c34f6d..00000000 --- a/node_modules/babel-plugin-minify-simplify/lib/pattern-match.js +++ /dev/null @@ -1,156 +0,0 @@ -"use strict"; - -function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -const LEAF_NODE = Symbol("LEAF_NODE"); -module.exports = class PatternMatch { - constructor(patterns) { - this.decisionTree = this.makeDecisionTree(patterns); - } - - handle(input, isMatch) { - const result = this.match(input, isMatch); - - if (!result.match) { - throw new Error("No Match Found for " + input.toString()); - } - - if (typeof result.value !== "function") { - throw new Error("Expecting a function. Instead got - " + result.value.toString()); - } - - result.value.call(null, input, result.keys); - } - - match(input, isMatch = (a, b) => a === b) { - let current = this.decisionTree; - const result = { - match: false, - value: void 0, - keys: [] - }; // to handle falsy keys - - const NO_MATCH = Symbol("NO_MATCH"); - - for (let i = 0; i < input.length; i++) { - let matchedKey = NO_MATCH; // because map doesn't support custom key equal function - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = current.keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - const key = _step.value; - - if (isMatch(key, input[i])) { - matchedKey = key; - result.keys.push(matchedKey); - break; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - if (matchedKey !== NO_MATCH) { - current = current.get(matchedKey); - - if (i === input.length - 1) { - if (current.has(LEAF_NODE)) { - result.match = true; - result.value = current.get(LEAF_NODE); - } - - break; - } - } else { - break; - } - } - - return result; - } - - makeDecisionTree(patterns) { - // order of keys in a Map is the order of insertion - const root = new Map(); - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = patterns[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - const pattern = _step2.value; - make(root, pattern); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return != null) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - return root; - - function make(parent, pattern) { - if (pattern.length < 2) { - throw new Error("at least 2 elements required in a pattern"); - } - - if (pattern.length === 2) { - if (parent.has(pattern[0])) { - const pattern0 = parent.get(pattern[0]); - - if (!pattern0.has(LEAF_NODE)) { - pattern0.set(LEAF_NODE, pattern[1]); - } // here we don't handle duplicates - // this pattern would have already been matched - - } else { - parent.set(pattern[0], new Map([[LEAF_NODE, pattern[1]]])); - } - - return parent; - } - - const _pattern = _toArray(pattern), - current = _pattern[0], - rest = _pattern.slice(1); - - if (parent.has(current)) { - make(parent.get(current), rest); - } else { - parent.set(current, make(new Map(), rest)); - } - - return parent; - } - } - -};
\ No newline at end of file |
