UNPKG

@dmeents/semantic-release-yarn

Version:

A plugin for semantic-release to support publishing to NPM with yarn@berry

59 lines (58 loc) 2.01 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getChannel = exports.getNpmAuthIdent = exports.getNpmToken = exports.getYarnRc = exports.getPackage = void 0; const error_1 = require("./error"); const semver_1 = __importDefault(require("semver")); const read_pkg_1 = __importDefault(require("read-pkg")); const js_yaml_1 = __importDefault(require("js-yaml")); const fs_1 = __importDefault(require("fs")); async function getPackage(cwd) { let packageJson; try { packageJson = await (0, read_pkg_1.default)({ cwd }); } catch (err) { const { code } = err; if (code === 'ENOENT') throw (0, error_1.error)(error_1.ErrorTypes.MISSING_PACKAGE); throw new AggregateError([err]); } if (!packageJson.name) throw (0, error_1.error)(error_1.ErrorTypes.MISSING_PACKAGE_NAME); return packageJson; } exports.getPackage = getPackage; async function getYarnRc(cwd) { let yarnRc = {}; try { yarnRc = (await js_yaml_1.default.load(fs_1.default.readFileSync(`${cwd}/.yarnrc.yml`, 'utf8'))); } catch (err) { } return yarnRc; } exports.getYarnRc = getYarnRc; function getNpmToken(env) { const token = env['NPM_TOKEN']; if (typeof token !== 'string') throw (0, error_1.error)(error_1.ErrorTypes.INVALID_NPM_TOKEN); return token; } exports.getNpmToken = getNpmToken; function getNpmAuthIdent(env) { const authIdent = env['NPM_AUTH_IDENT']; if (typeof authIdent !== 'string') { throw (0, error_1.error)(error_1.ErrorTypes.INVALID_NPM_AUTH_IDENT); } return authIdent; } exports.getNpmAuthIdent = getNpmAuthIdent; const getChannel = (channel) => { if (!channel) return 'latest'; return semver_1.default.validRange(channel) ? `release-${channel}` : channel; }; exports.getChannel = getChannel;