UNPKG

enhanced-resolve-jest

Version:

Resolver for Jest which uses the enhanced-resolve module

46 lines 1.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var fs_1 = tslib_1.__importDefault(require("fs")); var enhanced_resolve_1 = require("enhanced-resolve"); var EMPTY_FILE = require.resolve("./empty"); var cachedInputFileSystem = new enhanced_resolve_1.CachedInputFileSystem(fs_1.default, 60000); var queuedPurge = false; exports.default = module.exports = exports = create(getDefaultConfig); function create(getConfig) { var resolverCache = Object.create(null); return function (modulePath, jestOpts) { if (!queuedPurge) { queuedPurge = true; setImmediate(function () { cachedInputFileSystem.purge(); queuedPurge = false; }); } var configOpts = { browser: jestOpts.browser, extensions: jestOpts.extensions, moduleDirectory: jestOpts.moduleDirectory }; var userConfig = getConfig(configOpts); var cacheKey = configOpts.browser + "\0" + jestOpts.extensions + "\0" + configOpts.moduleDirectory; var resolver = resolverCache[cacheKey] || (resolverCache[cacheKey] = enhanced_resolve_1.ResolverFactory.createResolver(tslib_1.__assign({ fileSystem: cachedInputFileSystem }, userConfig, { useSyncFileSystemCalls: true }))); var resolved = resolver.resolveSync({}, jestOpts.basedir, modulePath); if (resolved === false) { return EMPTY_FILE; } return resolved; }; } exports.create = create; function getDefaultConfig(opts) { return tslib_1.__assign({ symlinks: true, extensions: opts.extensions, modules: opts.moduleDirectory, fileSystem: fs_1.default }, (opts.browser ? { aliasFields: ["browser"], mainFields: ["browser", "main"] } : {})); } exports.getDefaultConfig = getDefaultConfig; //# sourceMappingURL=index.js.map