veendor
Version:
a tool for stroing your npm dependencies in arbitraty storage
36 lines (35 loc) • 1.45 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const util_1 = __importDefault(require("util"));
const fs_extra_1 = __importDefault(require("fs-extra"));
const path_1 = __importDefault(require("path"));
const logger_1 = require("./util/logger");
// add yarn.lock one day
const LOCKFILE_TYPES = ['npm-shrinkwrap.json', 'package-lock.json'];
function resolveLockfile() {
const logger = logger_1.getLogger();
logger.trace(`Looking for lockfiles: ${LOCKFILE_TYPES.join(', ')}`);
const statPromises = LOCKFILE_TYPES.map(filename => fs_extra_1.default
.stat(path_1.default.resolve(process.cwd(), filename))
.catch(error => error)); // not letting Promise.all to reject early
return Promise.all(statPromises).then(getLockfile);
}
exports.default = resolveLockfile;
function getLockfile(results) {
const logger = logger_1.getLogger();
for (let i = 0; i < LOCKFILE_TYPES.length; i++) {
if (util_1.default.isError(results[i])) {
const err = (results[i]);
if (err.code && err.code === 'ENOENT') {
continue;
}
throw err;
}
logger.info(`Found '${LOCKFILE_TYPES[i]}'. Using it to calculate bundle hashes.`);
return LOCKFILE_TYPES[i];
}
return null;
}