UNPKG

@eljs/release

Version:
115 lines (113 loc) 4.14 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; 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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/internal/plugins/npm.ts var npm_exports = {}; __export(npm_exports, { default: () => npm_default }); module.exports = __toCommonJS(npm_exports); var import_utils = require("../../utils"); var import_utils2 = require("@eljs/utils"); var import_node_os = require("node:os"); var npm_default = (api) => { api.onCheck(async () => { const { requireOwner } = api.config.npm; if (requireOwner) { api.step("Checking npm owner ..."); const user = await (0, import_utils2.getNpmUser)({ cwd: api.cwd }); for (const pkgName of api.appData.validPkgNames) { try { const owners = (await (0, import_utils2.run)("npm", ["owner", "ls", pkgName], { cwd: api.cwd })).stdout.trim().split(import_node_os.EOL).map((line) => { var _a; return (_a = line.split(" ")) == null ? void 0 : _a[0]; }); if (!(owners == null ? void 0 : owners.includes(user))) { throw new import_utils.AppError( `User ${import_utils2.chalk.cyan(user)} is not the owner of \`${pkgName}\`.` ); } } catch (error) { const err = error; if (err.message.indexOf("Not Found") > -1) { continue; } throw err; } } } }); api.onRelease(async ({ version, prereleaseId }) => { var _a; const { registry, branch, validPkgNames, validPkgRootPaths, packageManager } = api.appData; api.step("Publishing package ..."); const promiseArr = []; const errors = []; for (let i = 0; i < validPkgRootPaths.length; i++) { const pkgRootPath = validPkgRootPaths[i]; const pkgName = validPkgNames[i]; try { promiseArr.push(publishPackage(pkgRootPath, pkgName, version)); } catch (error) { errors.push(pkgName); } } const settledResults = await Promise.allSettled(promiseArr); for (let i = 0; i < settledResults.length; i++) { const settledResult = settledResults[i]; if (settledResult.status === "rejected") { console.log(); import_utils2.logger.error( `Published ${import_utils2.chalk.cyan(`${validPkgNames[i]}@${version}`)} failed.` ); const errorMessage = ((_a = settledResult.reason) == null ? void 0 : _a.message) ?? settledResult.reason; console.log(`Error: ${errorMessage}`); } } async function publishPackage(pkgRootPath, pkgName, version2) { const tagArg = prereleaseId ? ["--tag", prereleaseId] : ""; const registryArg = registry ? ["--registry", registry] : ""; const { requireBranch } = api.config.git; const gitCheckArg = requireBranch ? ["--publish-branch", requireBranch] : ["master", "main"].includes(branch) ? [] : ["--no-git-checks"]; const cliArgs = [ "publish", ...tagArg, ...registryArg, ...gitCheckArg, ...(0, import_utils2.normalizeArgs)(api.config.npm.publishArgs) ].filter(Boolean); await (0, import_utils2.run)(packageManager, cliArgs, { cwd: pkgRootPath, verbose: true, stdin: "inherit" }); import_utils2.logger.ready( `Published ${import_utils2.chalk.bold.cyan(`${pkgName}@${version2}`)} successfully.` ); } }); };