UNPKG

lerna

Version:

Lerna is a fast, modern build system for managing and publishing multiple JavaScript/TypeScript packages from the same repository

44 lines (41 loc) 1.37 kB
import { npmlog_default } from "./chunk-WC2B4V4E.js"; // libs/commands/version/src/lib/update-lockfile-version.ts import { writeJsonFile } from "@nx/devkit"; import loadJsonFile from "load-json-file"; import path from "path"; async function updateLockfileVersion(pkg) { const lockfilePath = path.join(pkg.location, "package-lock.json"); const obj = await loadJsonFile(lockfilePath).catch(() => { npmlog_default.verbose("version", `${pkg.name} has no lockfile. Skipping lockfile update.`); }); if (!obj) { return; } obj.version = pkg.version; if (obj.packages && obj.packages[""]) { obj.packages[""].version = pkg.version; if (obj.packages[""].dependencies) { const updatedPkgDependencies = Object.keys(obj.packages[""].dependencies).reduce( (prev, next) => ({ ...prev, [next]: pkg.dependencies?.[next] }), {} ); obj.packages[""].dependencies = updatedPkgDependencies; } if (obj.packages[""].devDependencies) { const updatedPkgDevDependencies = Object.keys(obj.packages[""].devDependencies).reduce( (prev, next) => ({ ...prev, [next]: pkg.devDependencies?.[next] }), {} ); obj.packages[""].devDependencies = updatedPkgDevDependencies; } } writeJsonFile(lockfilePath, obj, { spaces: 2 }); return lockfilePath; } export { updateLockfileVersion };