UNPKG

@typed/content-hash

Version:

Content hash a directory of HTML/JS/CSS files and other static assets

54 lines 1.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolvePackage = void 0; const tslib_1 = require("tslib"); const enhanced_resolve_1 = (0, tslib_1.__importDefault)(require("enhanced-resolve")); const resolve_1 = (0, tslib_1.__importDefault)(require("resolve")); const getFileExtension_1 = require("./getFileExtension"); const moduleDirectory = ['node_modules', '@types']; const enhancedResolveOptions = { fileSystem: require('fs'), useSyncFileSystemCalls: true, enforceExtension: false, modules: moduleDirectory, }; function resolvePackage(options) { const { moduleSpecifier, directory, extensions, mainFields } = options; try { return resolve_1.default.sync(moduleSpecifier, { basedir: directory, moduleDirectory, extensions, packageIterator, }); } catch (err) { console.log('falling back to enhanced-resolve', moduleSpecifier); const resolver = enhanced_resolve_1.default.ResolverFactory.createResolver({ ...enhancedResolveOptions, mainFields: mainFields ? Array.from(mainFields) : void 0, extensions: Array.from(extensions), }); const pkg = resolver.resolveSync({}, directory, moduleSpecifier); if (!pkg) { throw err; } return pkg; } } exports.resolvePackage = resolvePackage; const packageIterator = (request, _, defaultCanditates) => { try { const defaults = defaultCanditates(); const ext = (0, getFileExtension_1.getFileExtension)(request); if (defaults.includes(ext)) { return defaults; } // Attempt to add the current extension to those being looked up return [...defaultCanditates(), ext]; } catch { return defaultCanditates(); } }; //# sourceMappingURL=resolvePackage.js.map