UNPKG

@nlabs/lex

Version:
105 lines (104 loc) 12.6 kB
import { execa } from "execa"; import semver from "semver"; import { LexConfig } from "../../LexConfig.js"; import { createSpinner, getPackageJson, setPackageJson } from "../../utils/app.js"; import { log } from "../../utils/log.js"; const publish = async (cmd, callback = process.exit) => { const { bump, cliName = "Lex", newVersion, otp, packageManager: cmdPackageManager, private: accessPrivate, tag, quiet } = cmd; log(`${cliName} publishing npm module...`, "info", quiet); const spinner = createSpinner(quiet); await LexConfig.parseConfig(cmd); const { packageManager: configPackageManager } = LexConfig.config; const packageManager = cmdPackageManager || configPackageManager; const publishOptions = ["publish"]; if (accessPrivate) { publishOptions.push("--access", "restricted"); } if (otp) { publishOptions.push("--otp", otp); } if (tag) { publishOptions.push("--tag", tag); } let nextVersion; const packagePath = `${process.cwd()}/package.json`; let packageJson; let packageName; let prevVersion; try { packageJson = getPackageJson(packagePath); packageName = packageJson.name; prevVersion = packageJson.version; } catch (error) { log(` ${cliName} Error: The file, ${packagePath}, was not found or is malformed. `, "error", quiet); log(error.message, "error"); callback(1); return 1; } if (newVersion) { nextVersion = newVersion; } else if (bump) { const formatBump = bump.toString().trim().toLowerCase(); if (formatBump) { const validReleases = ["major", "minor", "patch"]; const validPreReleases = ["alpha", "beta", "rc"]; const packageVersion = semver.coerce(prevVersion); if (!semver.valid(packageVersion)) { log(` ${cliName} Error: Version is invalid in package.json`, "error", quiet); callback(1); return 1; } if (validReleases.includes(formatBump)) { nextVersion = semver.inc(packageVersion, formatBump); } else if (validPreReleases.includes(formatBump)) { nextVersion = semver.inc(packageVersion, "prerelease", formatBump); } else { log(` ${cliName} Error: Bump type is invalid. please make sure it is one of the following: ${validReleases.join(", ")}, ${validPreReleases.join(", ")}`, "error", quiet); callback(1); return 1; } } else { log(` ${cliName} Error: Bump type is missing.`, "error", quiet); callback(1); return 1; } } if (nextVersion && packageManager === "yarn") { publishOptions.push("--new-version", nextVersion); } else if (nextVersion && packageJson) { try { setPackageJson({ ...packageJson, version: nextVersion }, packagePath); } catch (error) { log(` ${cliName} Error: The file, ${packagePath}, was not found or is malformed. ${error.message}`, "error", quiet); callback(1); return 1; } } else { nextVersion = prevVersion; } try { await execa(packageManager, publishOptions, { encoding: "utf8", stdio: "inherit" }); spinner.succeed(`Successfully published npm package: ${packageName}!`); callback(0); return 0; } catch (error) { log(` ${cliName} Error: ${error.message}`, "error", quiet); spinner.fail("Publishing to npm has failed."); callback(1); return 1; } }; export { publish }; //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3B1Ymxpc2gvcHVibGlzaC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7ZXhlY2F9IGZyb20gJ2V4ZWNhJztcbmltcG9ydCBzZW12ZXIsIHtSZWxlYXNlVHlwZX0gZnJvbSAnc2VtdmVyJztcblxuaW1wb3J0IHtMZXhDb25maWd9IGZyb20gJy4uLy4uL0xleENvbmZpZy5qcyc7XG5pbXBvcnQge2NyZWF0ZVNwaW5uZXIsIGdldFBhY2thZ2VKc29uLCBzZXRQYWNrYWdlSnNvbn0gZnJvbSAnLi4vLi4vdXRpbHMvYXBwLmpzJztcbmltcG9ydCB7bG9nfSBmcm9tICcuLi8uLi91dGlscy9sb2cuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFB1Ymxpc2hPcHRpb25zIHtcbiAgcmVhZG9ubHkgYnVtcD86IHN0cmluZztcbiAgcmVhZG9ubHkgY2xpTmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbmV3VmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgb3RwPzogc3RyaW5nO1xuICByZWFkb25seSBwYWNrYWdlTWFuYWdlcj86IHN0cmluZztcbiAgcmVhZG9ubHkgcHJpdmF0ZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHF1aWV0PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdGFnPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBQdWJsaXNoQ2FsbGJhY2sgPSB0eXBlb2YgcHJvY2Vzcy5leGl0O1xuXG5leHBvcnQgY29uc3QgcHVibGlzaCA9IGFzeW5jIChjbWQ6IFB1Ymxpc2hPcHRpb25zLCBjYWxsYmFjazogUHVibGlzaENhbGxiYWNrID0gcHJvY2Vzcy5leGl0KTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgY29uc3Qge2J1bXAsIGNsaU5hbWUgPSAnTGV4JywgbmV3VmVyc2lvbiwgb3RwLCBwYWNrYWdlTWFuYWdlcjogY21kUGFja2FnZU1hbmFnZXIsIHByaXZhdGU6IGFjY2Vzc1ByaXZhdGUsIHRhZywgcXVpZXR9ID0gY21kO1xuICBsb2coYCR7Y2xpTmFtZX0gcHVibGlzaGluZyBucG0gbW9kdWxlLi4uYCwgJ2luZm8nLCBxdWlldCk7XG5cbiAgLy8gU3Bpbm5lclxuICBjb25zdCBzcGlubmVyID0gY3JlYXRlU3Bpbm5lcihxdWlldCk7XG5cbiAgLy8gR2V0IGN1c3RvbSBjb25maWd1cmF0aW9uXG4gIGF3YWl0IExleENvbmZpZy5wYXJzZUNvbmZpZyhjbWQpO1xuXG4gIGNvbnN0IHtwYWNrYWdlTWFuYWdlcjogY29uZmlnUGFja2FnZU1hbmFnZXJ9ID0gTGV4Q29uZmlnLmNvbmZpZztcbiAgY29uc3QgcGFja2FnZU1hbmFnZXI6IHN0cmluZyA9IGNtZFBhY2thZ2VNYW5hZ2VyIHx8IGNvbmZpZ1BhY2thZ2VNYW5hZ2VyO1xuICBjb25zdCBwdWJsaXNoT3B0aW9uczogc3RyaW5nW10gPSBbJ3B1Ymxpc2gnXTtcblxuICBpZihhY2Nlc3NQcml2YXRlKSB7XG4gICAgcHVibGlzaE9wdGlvbnMucHVzaCgnLS1hY2Nlc3MnLCAncmVzdHJpY3RlZCcpO1xuICB9XG5cbiAgaWYob3RwKSB7XG4gICAgcHVibGlzaE9wdGlvbnMucHVzaCgnLS1vdHAnLCBvdHApO1xuICB9XG5cbiAgaWYodGFnKSB7XG4gICAgcHVibGlzaE9wdGlvbnMucHVzaCgnLS10YWcnLCB0YWcpO1xuICB9XG5cbiAgLy8gR2V0IG5leHQgdmVyc2lvbiBudW1iZXJcbiAgbGV0IG5leHRWZXJzaW9uOiBzdHJpbmc7XG4gIGNvbnN0IHBhY2thZ2VQYXRoOiBzdHJpbmcgPSBgJHtwcm9jZXNzLmN3ZCgpfS9wYWNrYWdlLmpzb25gO1xuICBsZXQgcGFja2FnZUpzb247XG4gIGxldCBwYWNrYWdlTmFtZTogc3RyaW5nO1xuICBsZXQgcHJldlZlcnNpb246IHN0cmluZztcblxuICAvLyBJZiBub3QgdXNpbmcgeWFybiwgd2UnbGwgdXNlIG5wbSBhbmQgbWFudWFsbHkgdXBkYXRlIHRoZSB2ZXJzaW9uIG51bWJlclxuICB0cnkge1xuICAgIHBhY2thZ2VKc29uID0gZ2V0UGFja2FnZUpzb24ocGFja2FnZVBhdGgpO1xuICAgIHBhY2thZ2VOYW1lID0gcGFja2FnZUpzb24ubmFtZTtcbiAgICBwcmV2VmVyc2lvbiA9IHBhY2thZ2VKc29uLnZlcnNpb247XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBUaGUgZmlsZSwgJHtwYWNrYWdlUGF0aH0sIHdhcyBub3QgZm91bmQgb3IgaXMgbWFsZm9ybWVkLlxcbmAsICdlcnJvcicsIHF1aWV0KTtcbiAgICBsb2coZXJyb3IubWVzc2FnZSwgJ2Vycm9yJyk7XG4gICAgY2FsbGJhY2soMSk7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICAvLyBVcGRhdGUgcGFja2FnZS5qc29uIHdpdGggdGhlIGxhdGVzdCB2ZXJzaW9uXG4gIGlmKG5ld1ZlcnNpb24pIHtcbiAgICAvLyBJZiB1c2luZyBhIHNwZWNpZmljIHZlcnNpb24sIHdlIGRvbid0IG5lZWQgdG8gZGV0ZXJtaW5lIHRoZSBuZXh0IGJ1bXBcbiAgICBuZXh0VmVyc2lvbiA9IG5ld1ZlcnNpb247XG4gIH0gZWxzZSBpZihidW1wKSB7XG4gICAgLy8gRGV0ZXJtaW5lIG5leHQgdmVyc2lvblxuICAgIGNvbnN0IGZvcm1hdEJ1bXAgPSBidW1wLnRvU3RyaW5nKClcbiAgICAgIC50cmltKClcbiAgICAgIC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYoZm9ybWF0QnVtcCkge1xuICAgICAgY29uc3QgdmFsaWRSZWxlYXNlczogc3RyaW5nW10gPSBbJ21ham9yJywgJ21pbm9yJywgJ3BhdGNoJ107XG4gICAgICBjb25zdCB2YWxpZFByZVJlbGVhc2VzOiBzdHJpbmdbXSA9IFsnYWxwaGEnLCAnYmV0YScsICdyYyddO1xuXG4gICAgICAvLyBNYWtlIHN1cmUgdGhlIHZlcnNpb24gaW4gcGFja2FnZS5qc29uIGlzIHZhbGlkXG4gICAgICBjb25zdCBwYWNrYWdlVmVyc2lvbiA9IHNlbXZlci5jb2VyY2UocHJldlZlcnNpb24pO1xuXG4gICAgICBpZighc2VtdmVyLnZhbGlkKHBhY2thZ2VWZXJzaW9uKSkge1xuICAgICAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6IFZlcnNpb24gaXMgaW52YWxpZCBpbiBwYWNrYWdlLmpzb25gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cblxuICAgICAgaWYodmFsaWRSZWxlYXNlcy5pbmNsdWRlcyhmb3JtYXRCdW1wKSkge1xuICAgICAgICBuZXh0VmVyc2lvbiA9IHNlbXZlci5pbmMocGFja2FnZVZlcnNpb24sIGZvcm1hdEJ1bXAgYXMgUmVsZWFzZVR5cGUpO1xuICAgICAgfSBlbHNlIGlmKHZhbGlkUHJlUmVsZWFzZXMuaW5jbHVkZXMoZm9ybWF0QnVtcCkpIHtcbiAgICAgICAgbmV4dFZlcnNpb24gPSBzZW12ZXIuaW5jKHBhY2thZ2VWZXJzaW9uLCAncHJlcmVsZWFzZScsIGZvcm1hdEJ1bXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBCdW1wIHR5cGUgaXMgaW52YWxpZC4gcGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBvbmUgb2YgdGhlIGZvbGxvd2luZzogJHt2YWxpZFJlbGVhc2VzLmpvaW4oJywgJyl9LCAke3ZhbGlkUHJlUmVsZWFzZXMuam9pbignLCAnKX1gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbG9nKGBcXG4ke2NsaU5hbWV9IEVycm9yOiBCdW1wIHR5cGUgaXMgbWlzc2luZy5gLCAnZXJyb3InLCBxdWlldCk7XG4gICAgICBjYWxsYmFjaygxKTtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgfVxuXG4gIGlmKG5leHRWZXJzaW9uICYmIHBhY2thZ2VNYW5hZ2VyID09PSAneWFybicpIHtcbiAgICBwdWJsaXNoT3B0aW9ucy5wdXNoKCctLW5ldy12ZXJzaW9uJywgbmV4dFZlcnNpb24pO1xuICB9IGVsc2UgaWYobmV4dFZlcnNpb24gJiYgcGFja2FnZUpzb24pIHtcbiAgICB0cnkge1xuICAgICAgLy8gU2F2ZSB1cGRhdGVkIHZlcnNpb25cbiAgICAgIHNldFBhY2thZ2VKc29uKHsuLi5wYWNrYWdlSnNvbiwgdmVyc2lvbjogbmV4dFZlcnNpb259LCBwYWNrYWdlUGF0aCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZyhgXFxuJHtjbGlOYW1lfSBFcnJvcjogVGhlIGZpbGUsICR7cGFja2FnZVBhdGh9LCB3YXMgbm90IGZvdW5kIG9yIGlzIG1hbGZvcm1lZC4gJHtlcnJvci5tZXNzYWdlfWAsICdlcnJvcicsIHF1aWV0KTtcbiAgICAgIGNhbGxiYWNrKDEpO1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG5leHRWZXJzaW9uID0gcHJldlZlcnNpb247XG4gIH1cblxuICB0cnkge1xuICAgIGF3YWl0IGV4ZWNhKHBhY2thZ2VNYW5hZ2VyLCBwdWJsaXNoT3B0aW9ucywge1xuICAgICAgZW5jb2Rpbmc6ICd1dGY4JyxcbiAgICAgIHN0ZGlvOiAnaW5oZXJpdCdcbiAgICB9KTtcblxuICAgIHNwaW5uZXIuc3VjY2VlZChgU3VjY2Vzc2Z1bGx5IHB1Ymxpc2hlZCBucG0gcGFja2FnZTogJHtwYWNrYWdlTmFtZX0hYCk7XG5cbiAgICAvLyBLaWxsIHByb2Nlc3NcbiAgICBjYWxsYmFjaygwKTtcbiAgICByZXR1cm4gMDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBEaXNwbGF5IGVycm9yIG1lc3NhZ2VcbiAgICBsb2coYFxcbiR7Y2xpTmFtZX0gRXJyb3I6ICR7ZXJyb3IubWVzc2FnZX1gLCAnZXJyb3InLCBxdWlldCk7XG5cbiAgICAvLyBTdG9wIHNwaW5uZXJcbiAgICBzcGlubmVyLmZhaWwoJ1B1Ymxpc2hpbmcgdG8gbnBtIGhhcyBmYWlsZWQuJyk7XG5cbiAgICAvLyBLaWxsIHByb2Nlc3NcbiAgICBjYWxsYmFjaygxKTtcbiAgICByZXR1cm4gMTtcbiAgfVxufTsiXSwKICAibWFwcGluZ3MiOiAiQUFJQSxTQUFRLGFBQVk7QUFDcEIsT0FBTyxZQUEyQjtBQUVsQyxTQUFRLGlCQUFnQjtBQUN4QixTQUFRLGVBQWUsZ0JBQWdCLHNCQUFxQjtBQUM1RCxTQUFRLFdBQVU7QUFlWCxNQUFNLFVBQVUsT0FBTyxLQUFxQixXQUE0QixRQUFRLFNBQTBCO0FBQy9HLFFBQU0sRUFBQyxNQUFNLFVBQVUsT0FBTyxZQUFZLEtBQUssZ0JBQWdCLG1CQUFtQixTQUFTLGVBQWUsS0FBSyxNQUFLLElBQUk7QUFDeEgsTUFBSSxHQUFHLE9BQU8sNkJBQTZCLFFBQVEsS0FBSztBQUd4RCxRQUFNLFVBQVUsY0FBYyxLQUFLO0FBR25DLFFBQU0sVUFBVSxZQUFZLEdBQUc7QUFFL0IsUUFBTSxFQUFDLGdCQUFnQixxQkFBb0IsSUFBSSxVQUFVO0FBQ3pELFFBQU0saUJBQXlCLHFCQUFxQjtBQUNwRCxRQUFNLGlCQUEyQixDQUFDLFNBQVM7QUFFM0MsTUFBRyxlQUFlO0FBQ2hCLG1CQUFlLEtBQUssWUFBWSxZQUFZO0FBQUEsRUFDOUM7QUFFQSxNQUFHLEtBQUs7QUFDTixtQkFBZSxLQUFLLFNBQVMsR0FBRztBQUFBLEVBQ2xDO0FBRUEsTUFBRyxLQUFLO0FBQ04sbUJBQWUsS0FBSyxTQUFTLEdBQUc7QUFBQSxFQUNsQztBQUdBLE1BQUk7QUFDSixRQUFNLGNBQXNCLEdBQUcsUUFBUSxJQUFJLENBQUM7QUFDNUMsTUFBSTtBQUNKLE1BQUk7QUFDSixNQUFJO0FBR0osTUFBSTtBQUNGLGtCQUFj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