-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.js
34 lines (26 loc) · 898 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const plugin = require('@semantic-release/npm')
const getPkg = require('@semantic-release/npm/lib/get-pkg');
const { castArray } = require('lodash')
let memo
async function verifyConditionsHooked(pluginConfig, context) {
// _.once
if (memo) {
return memo
}
// Options remapping
if (context.options.publish) {
const pluginConfig = castArray(context.options.publish).find((config) => config.path === '@semrel-extra/npm') || {}
pluginConfig.path = '@semantic-release/npm'
}
const _result = plugin.verifyConditions(pluginConfig, context)
const pkg = await getPkg(pluginConfig, context)
if (pluginConfig.npmPublish !== false && pkg.private !== true) {
memo = _result
}
return _result
}
// reset `onced` for testing purpose
verifyConditionsHooked._reset = () => {
memo = undefined
}
module.exports = { ...plugin, verifyConditions: verifyConditionsHooked }