@lerna/publish
Version:
Publish packages in the current project
119 lines (118 loc) • 4.73 kB
JavaScript
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var git_exports = {};
__export(git_exports, {
commitChangeToPackage: () => commitChangeToPackage,
getCommitMessage: () => getCommitMessage,
gitAdd: () => gitAdd,
gitCheckout: () => gitCheckout,
gitCommit: () => gitCommit,
gitInit: () => gitInit,
gitMerge: () => gitMerge,
gitStatus: () => gitStatus,
gitTag: () => gitTag,
showCommit: () => showCommit
});
module.exports = __toCommonJS(git_exports);
var import_core = require("@lerna/core");
var import_child_process = __toESM(require("child_process"));
var import_execa = __toESM(require("execa"));
var import_load_json_file = __toESM(require("load-json-file"));
var import_os = __toESM(require("os"));
var import_path = __toESM(require("path"));
var import_devkit = require("@nrwl/devkit");
const gitSHA = require("../serializers/serialize-git-sha");
const TEMPLATE = import_path.default.resolve(__dirname, "template");
function getCommitMessage(cwd, format = "%B") {
return (0, import_execa.default)("git", ["log", "-1", `--pretty=format:${format}`], { cwd }).then((result) => result.stdout);
}
function gitAdd(cwd, ...files) {
return (0, import_execa.default)("git", ["add", ...files], { cwd });
}
function gitCheckout(cwd, args) {
return (0, import_execa.default)("git", ["checkout", ...args], { cwd });
}
function gitCommit(cwd, message) {
if (message.indexOf(import_os.default.EOL) > -1) {
return (0, import_core.tempWrite)(message).then((fp) => (0, import_execa.default)("git", ["commit", "-F", fp], { cwd }));
}
return (0, import_execa.default)("git", ["commit", "-m", message], { cwd });
}
function gitInit(cwd, ...args) {
return (0, import_execa.default)("git", ["init", "--template", TEMPLATE, ...args], { cwd }).then(
() => (0, import_execa.default)("git", ["checkout", "-B", "main"], { cwd })
);
}
function gitMerge(cwd, args) {
return (0, import_execa.default)("git", ["merge", ...args], { cwd });
}
function gitStatus(cwd) {
return import_child_process.default.spawnSync("git", ["status", "--porcelain"], { cwd, encoding: "utf8" });
}
function gitTag(cwd, tagName) {
return (0, import_execa.default)("git", ["tag", tagName, "-m", tagName], { cwd });
}
function showCommit(cwd, ...args) {
return (0, import_execa.default)(
"git",
[
"show",
"--unified=0",
"--ignore-space-at-eol",
"--pretty=%B%+D",
// make absolutely certain that no OS localization
// changes the expected value of the path prefixes
"--src-prefix=a/",
"--dst-prefix=b/",
...args
],
{ cwd }
).then((result) => gitSHA.serialize(result.stdout));
}
function commitChangeToPackage(cwd, packageName, commitMsg, data) {
const packageJSONPath = import_path.default.join(cwd, "packages", packageName, "package.json");
let chain = Promise.resolve();
chain = chain.then(() => (0, import_load_json_file.default)(packageJSONPath));
chain = chain.then((pkg) => (0, import_devkit.writeJsonFile)(packageJSONPath, Object.assign(pkg, data)));
chain = chain.then(() => gitAdd(cwd, packageJSONPath));
chain = chain.then(() => gitCommit(cwd, commitMsg));
return chain;
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
commitChangeToPackage,
getCommitMessage,
gitAdd,
gitCheckout,
gitCommit,
gitInit,
gitMerge,
gitStatus,
gitTag,
showCommit
});