pnpm
Version:
Fast, disk space efficient package manager
47 lines • 1.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const default_fetcher_1 = require("@pnpm/default-fetcher");
const default_resolver_1 = require("@pnpm/default-resolver");
const logger_1 = require("@pnpm/logger");
const package_store_1 = require("@pnpm/package-store");
const dir_is_case_sensitive_1 = require("dir-is-case-sensitive");
const LRU = require("lru-cache");
const mkdirp = require("mkdirp-promise");
const path = require("path");
exports.default = async (opts) => {
// TODO: either print a warning or just log if --no-lock is used
const sopts = Object.assign(opts, {
locks: opts.lock ? path.join(opts.store, '_locks') : undefined,
registry: opts.registry || 'https://registry.npmjs.org/',
});
const resolve = default_resolver_1.default(Object.assign(sopts, {
fullMetadata: false,
metaCache: new LRU({
max: 10000,
maxAge: 120 * 1000,
}),
}));
await mkdirp(sopts.store);
const fsIsCaseSensitive = await dir_is_case_sensitive_1.default(sopts.store);
logger_1.default.debug({
// An undefined field would cause a crash of the logger
// so converting it to null
isCaseSensitive: typeof fsIsCaseSensitive === 'boolean'
? fsIsCaseSensitive : null,
store: sopts.store,
});
const fetchers = default_fetcher_1.default(Object.assign({}, sopts, { fsIsCaseSensitive }));
return {
ctrl: await package_store_1.default(resolve, fetchers, {
locks: sopts.locks,
lockStaleDuration: sopts.lockStaleDuration,
networkConcurrency: sopts.networkConcurrency,
packageImportMethod: sopts.packageImportMethod,
store: sopts.store,
verifyStoreIntegrity: typeof sopts.verifyStoreIntegrity === 'boolean' ?
sopts.verifyStoreIntegrity : true,
}),
path: sopts.store,
};
};
//# sourceMappingURL=createStore.js.map