@pnpm/lockfile.settings-checker
Version:
Utilities to check if lockfile settings are out-of-date
39 lines • 2.12 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getOutdatedLockfileSetting = getOutdatedLockfileSetting;
const equals_1 = __importDefault(require("ramda/src/equals"));
function getOutdatedLockfileSetting(lockfile, { overrides, packageExtensionsChecksum, ignoredOptionalDependencies, patchedDependencies, autoInstallPeers, excludeLinksFromLockfile, peersSuffixMaxLength, pnpmfileChecksum, injectWorkspacePackages, }) {
if (!(0, equals_1.default)(lockfile.overrides ?? {}, overrides ?? {})) {
return 'overrides';
}
if (lockfile.packageExtensionsChecksum !== packageExtensionsChecksum) {
return 'packageExtensionsChecksum';
}
if (!(0, equals_1.default)(lockfile.ignoredOptionalDependencies?.sort() ?? [], ignoredOptionalDependencies?.sort() ?? [])) {
return 'ignoredOptionalDependencies';
}
if (!(0, equals_1.default)(lockfile.patchedDependencies ?? {}, patchedDependencies ?? {})) {
return 'patchedDependencies';
}
if ((lockfile.settings?.autoInstallPeers != null && lockfile.settings.autoInstallPeers !== autoInstallPeers)) {
return 'settings.autoInstallPeers';
}
if (lockfile.settings?.excludeLinksFromLockfile != null && lockfile.settings.excludeLinksFromLockfile !== excludeLinksFromLockfile) {
return 'settings.excludeLinksFromLockfile';
}
if (lockfile.settings?.peersSuffixMaxLength != null && lockfile.settings.peersSuffixMaxLength !== peersSuffixMaxLength ||
lockfile.settings?.peersSuffixMaxLength == null && peersSuffixMaxLength !== 1000) {
return 'settings.peersSuffixMaxLength';
}
if (lockfile.pnpmfileChecksum !== pnpmfileChecksum) {
return 'pnpmfileChecksum';
}
if (Boolean(lockfile.settings?.injectWorkspacePackages) !== Boolean(injectWorkspacePackages)) {
return 'settings.injectWorkspacePackages';
}
return null;
}
//# sourceMappingURL=getOutdatedLockfileSetting.js.map