| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 | "use strict";exports.__esModule = true;exports.default = void 0;var _fs = _interopRequireDefault(require("fs"));var _path = _interopRequireDefault(require("path"));var _reselect = require("reselect");var _findBabelConfig = _interopRequireDefault(require("find-babel-config"));var _glob = _interopRequireDefault(require("glob"));var _pkgUp = _interopRequireDefault(require("pkg-up"));var _utils = require("./utils");var _resolvePath = _interopRequireDefault(require("./resolvePath"));function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }const defaultExtensions = ['.js', '.jsx', '.es', '.es6', '.mjs'];const defaultTransformedFunctions = ['require', 'require.resolve', 'System.import', // Jest methods'jest.genMockFromModule', 'jest.mock', 'jest.unmock', 'jest.doMock', 'jest.dontMock', 'jest.setMock', 'require.requireActual', 'require.requireMock'];function isRegExp(string) {  return string.startsWith('^') || string.endsWith('$');}const specialCwd = {  babelrc: startPath => _findBabelConfig.default.sync(startPath).file,  packagejson: startPath => _pkgUp.default.sync(startPath)};function normalizeCwd(optsCwd, currentFile) {  let cwd;  if (optsCwd in specialCwd) {    const startPath = currentFile === 'unknown' ? './' : currentFile;    const computedCwd = specialCwd[optsCwd](startPath);    cwd = computedCwd ? _path.default.dirname(computedCwd) : null;  } else {    cwd = optsCwd;  }  return cwd || process.cwd();}function normalizeRoot(optsRoot, cwd) {  if (!optsRoot) {    return [];  }  const rootArray = Array.isArray(optsRoot) ? optsRoot : [optsRoot];  return rootArray.map(dirPath => _path.default.resolve(cwd, dirPath)).reduce((resolvedDirs, absDirPath) => {    if (_glob.default.hasMagic(absDirPath)) {      const roots = _glob.default.sync(absDirPath).filter(resolvedPath => _fs.default.lstatSync(resolvedPath).isDirectory());      return [...resolvedDirs, ...roots];    }    return [...resolvedDirs, absDirPath];  }, []);}function getAliasTarget(key, isKeyRegExp) {  const regExpPattern = isKeyRegExp ? key : `^${(0, _utils.escapeRegExp)(key)}(/.*|)$`;  return new RegExp(regExpPattern);}function getAliasSubstitute(value, isKeyRegExp) {  if (typeof value === 'function') {    return value;  }  if (!isKeyRegExp) {    return ([, match]) => `${value}${match}`;  }  const parts = value.split('\\\\');  return execResult => parts.map(part => part.replace(/\\\d+/g, number => execResult[number.slice(1)] || '')).join('\\');}function normalizeAlias(optsAlias) {  if (!optsAlias) {    return [];  }  const aliasArray = Array.isArray(optsAlias) ? optsAlias : [optsAlias];  return aliasArray.reduce((aliasPairs, alias) => {    const aliasKeys = Object.keys(alias);    aliasKeys.forEach(key => {      const isKeyRegExp = isRegExp(key);      aliasPairs.push([getAliasTarget(key, isKeyRegExp), getAliasSubstitute(alias[key], isKeyRegExp)]);    });    return aliasPairs;  }, []);}function normalizeTransformedFunctions(optsTransformFunctions) {  if (!optsTransformFunctions) {    return defaultTransformedFunctions;  }  return [...defaultTransformedFunctions, ...optsTransformFunctions];}function normalizeLoglevel(optsLoglevel) {  return optsLoglevel || 'warn';}var _default = (0, _reselect.createSelector)( // The currentFile should have an extension; otherwise it's considered a special valuecurrentFile => currentFile.includes('.') ? _path.default.dirname(currentFile) : currentFile, (_, opts) => opts, (currentFile, opts) => {  const cwd = normalizeCwd(opts.cwd, currentFile);  const root = normalizeRoot(opts.root, cwd);  const alias = normalizeAlias(opts.alias);  const loglevel = normalizeLoglevel(opts.loglevel);  const transformFunctions = normalizeTransformedFunctions(opts.transformFunctions);  const extensions = opts.extensions || defaultExtensions;  const stripExtensions = opts.stripExtensions || extensions;  const resolvePath = opts.resolvePath || _resolvePath.default;  return {    cwd,    root,    alias,    loglevel,    transformFunctions,    extensions,    stripExtensions,    resolvePath  };});exports.default = _default;
 |