123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 'use strict';
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
- exports.default = extractRequires;
- /**
- * Copyright (c) 2014-present, Facebook, Inc. 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.
- *
- *
- */
- const blockCommentRe = /\/\*[^]*?\*\//g;
- const lineCommentRe = /\/\/.*/g;
- const replacePatterns = {
- DYNAMIC_IMPORT_RE: /(?:^|[^.]\s*)(\bimport\s*?\(\s*?)([`'"])([^`'"]+)(\2\s*?\))/g,
- EXPORT_RE: /(\bexport\s+(?!type )(?:[^'"]+\s+from\s+)??)(['"])([^'"]+)(\2)/g,
- IMPORT_RE: /(\bimport\s+(?!type )(?:[^'"]+\s+from\s+)??)(['"])([^'"]+)(\2)/g,
- REQUIRE_EXTENSIONS_PATTERN: /(?:^|[^.]\s*)(\b(?:require\s*?\.\s*?(?:requireActual|requireMock)|jest\s*?\.\s*?(?:requireActual|requireMock|genMockFromModule))\s*?\(\s*?)([`'"])([^`'"]+)(\2\s*?\))/g,
- REQUIRE_RE: /(?:^|[^.]\s*)(\brequire\s*?\(\s*?)([`'"])([^`'"]+)(\2\s*?\))/g
- };
- function extractRequires(code) {
- const dependencies = new Set();
- const addDependency = (match, pre, quot, dep, post) => {
- dependencies.add(dep);
- return match;
- };
- code
- .replace(blockCommentRe, '')
- .replace(lineCommentRe, '')
- .replace(replacePatterns.EXPORT_RE, addDependency)
- .replace(replacePatterns.IMPORT_RE, addDependency)
- .replace(replacePatterns.REQUIRE_EXTENSIONS_PATTERN, addDependency)
- .replace(replacePatterns.REQUIRE_RE, addDependency)
- .replace(replacePatterns.DYNAMIC_IMPORT_RE, addDependency);
- return Array.from(dependencies);
- }
|