aboutsummaryrefslogtreecommitdiff
path: root/node_modules/jest-haste-map/build/lib/dependencyExtractor.js
diff options
context:
space:
mode:
authorJoel Kronqvist <work.joelkronqvist@pm.me>2022-03-11 20:46:06 +0200
committerJoel Kronqvist <work.joelkronqvist@pm.me>2022-03-11 20:46:06 +0200
commit080c5819d87b933816d724a83f3bf4f1686770a7 (patch)
tree4a2ccc68b27edf7d4cbc586c932cc7542b655e19 /node_modules/jest-haste-map/build/lib/dependencyExtractor.js
parent5ac7049a9d30733165cc212dee308163c2a14644 (diff)
parentd003b82235a9329f912522a2f70aa950dfce4998 (diff)
downloadLYLLRuoka-080c5819d87b933816d724a83f3bf4f1686770a7.tar.gz
LYLLRuoka-080c5819d87b933816d724a83f3bf4f1686770a7.zip
Merge branch 'master' of https://github.com/JoelHMikael/FoodJS
Updating remote changes
Diffstat (limited to 'node_modules/jest-haste-map/build/lib/dependencyExtractor.js')
-rw-r--r--node_modules/jest-haste-map/build/lib/dependencyExtractor.js99
1 files changed, 99 insertions, 0 deletions
diff --git a/node_modules/jest-haste-map/build/lib/dependencyExtractor.js b/node_modules/jest-haste-map/build/lib/dependencyExtractor.js
new file mode 100644
index 0000000..6d34b23
--- /dev/null
+++ b/node_modules/jest-haste-map/build/lib/dependencyExtractor.js
@@ -0,0 +1,99 @@
+'use strict';
+
+Object.defineProperty(exports, '__esModule', {
+ value: true
+});
+exports.extract = extract;
+
+var _isRegExpSupported = _interopRequireDefault(require('./isRegExpSupported'));
+
+function _interopRequireDefault(obj) {
+ return obj && obj.__esModule ? obj : {default: obj};
+}
+
+/**
+ * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+// Negative look behind is only supported in Node 9+
+const NOT_A_DOT = (0, _isRegExpSupported.default)('(?<!\\.\\s*)')
+ ? '(?<!\\.\\s*)'
+ : '(?:^|[^.]\\s*)';
+
+const CAPTURE_STRING_LITERAL = pos => `([\`'"])([^'"\`]*?)(?:\\${pos})`;
+
+const WORD_SEPARATOR = '\\b';
+const LEFT_PARENTHESIS = '\\(';
+const RIGHT_PARENTHESIS = '\\)';
+const WHITESPACE = '\\s*';
+const OPTIONAL_COMMA = '(:?,\\s*)?';
+
+function createRegExp(parts, flags) {
+ return new RegExp(parts.join(''), flags);
+}
+
+function alternatives(...parts) {
+ return `(?:${parts.join('|')})`;
+}
+
+function functionCallStart(...names) {
+ return [
+ NOT_A_DOT,
+ WORD_SEPARATOR,
+ alternatives(...names),
+ WHITESPACE,
+ LEFT_PARENTHESIS,
+ WHITESPACE
+ ];
+}
+
+const BLOCK_COMMENT_RE = /\/\*[^]*?\*\//g;
+const LINE_COMMENT_RE = /\/\/.*/g;
+const REQUIRE_OR_DYNAMIC_IMPORT_RE = createRegExp(
+ [
+ ...functionCallStart('require', 'import'),
+ CAPTURE_STRING_LITERAL(1),
+ WHITESPACE,
+ OPTIONAL_COMMA,
+ RIGHT_PARENTHESIS
+ ],
+ 'g'
+);
+const IMPORT_OR_EXPORT_RE = createRegExp(
+ [
+ '\\b(?:import|export)\\s+(?!type(?:of)?\\s+)(?:[^\'"]+\\s+from\\s+)?',
+ CAPTURE_STRING_LITERAL(1)
+ ],
+ 'g'
+);
+const JEST_EXTENSIONS_RE = createRegExp(
+ [
+ ...functionCallStart(
+ 'jest\\s*\\.\\s*(?:requireActual|requireMock|genMockFromModule|createMockFromModule)'
+ ),
+ CAPTURE_STRING_LITERAL(1),
+ WHITESPACE,
+ OPTIONAL_COMMA,
+ RIGHT_PARENTHESIS
+ ],
+ 'g'
+);
+
+function extract(code) {
+ const dependencies = new Set();
+
+ const addDependency = (match, _, dep) => {
+ dependencies.add(dep);
+ return match;
+ };
+
+ code
+ .replace(BLOCK_COMMENT_RE, '')
+ .replace(LINE_COMMENT_RE, '')
+ .replace(IMPORT_OR_EXPORT_RE, addDependency)
+ .replace(REQUIRE_OR_DYNAMIC_IMPORT_RE, addDependency)
+ .replace(JEST_EXTENSIONS_RE, addDependency);
+ return dependencies;
+}