syncpack
Version:
Manage multiple package.json files, such as in Lerna Monorepos and Yarn/Pnpm Workspaces
26 lines (25 loc) • 965 B
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
exports.__esModule = true;
exports.writeIfChanged = void 0;
var chalk_1 = __importDefault(require("chalk"));
var fs_extra_1 = require("fs-extra");
var os_1 = require("os");
var path_1 = require("path");
var log_1 = require("./log");
exports.writeIfChanged = function (indent, wrapper, mutateContents) {
var toJson = function () { return "" + JSON.stringify(wrapper.contents, null, indent) + os_1.EOL; };
var shortPath = path_1.relative(process.cwd(), wrapper.filePath);
var before = toJson();
mutateContents();
var after = toJson();
if (before !== after) {
fs_extra_1.writeFileSync(wrapper.filePath, after);
log_1.log(chalk_1["default"].green('✓'), shortPath);
}
else {
log_1.log(chalk_1["default"].dim('-'), chalk_1["default"].dim(shortPath));
}
};
;