@typed/content-hash
Version:
Content hash a directory of HTML/JS/CSS files and other static assets
54 lines • 1.91 kB
JavaScript
;
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