semantic-release-yarn
Version:
semantic-release plugin to publish a npm package with yarn
21 lines (20 loc) • 799 B
JavaScript
/**
* Returns [true, null] if `npmPublish` is not `false` and `pkg.private` is not
* `true` or `pkg.workspaces` is not `undefined`.
* Returns [false, reason] otherwise.
*/
function shouldPublishTuple(pluginConfig, pkg) {
const reasonToNotPublish = pluginConfig.npmPublish === false
? "npmPublish plugin option is false"
: pkg.private === true && typeof pkg.workspaces === "undefined"
? "package is private and has no workspaces"
: null;
const shouldPublish = !reasonToNotPublish;
return [shouldPublish, reasonToNotPublish];
}
export function shouldPublish(pluginConfig, pkg) {
return shouldPublishTuple(pluginConfig, pkg)[0];
}
export function reasonToNotPublish(pluginConfig, pkg) {
return shouldPublishTuple(pluginConfig, pkg)[1];
}