UNPKG

981 BJavaScriptView Raw
1const {defaultTo, castArray} = require('lodash');
2const verifyChangelog = require('./lib/verify');
3const prepareChangelog = require('./lib/prepare');
4
5let verified;
6
7async function verifyConditions(pluginConfig, {options}) {
8 // If the Changelog prepare plugin is used and has `changelogFile` configured, validate them now in order to prevent any release if the configuration is wrong
9 if (options.prepare) {
10 const preparePlugin =
11 castArray(options.prepare).find(config => config.path && config.path === '@semantic-release/changelog') || {};
12
13 pluginConfig.changelogFile = defaultTo(pluginConfig.changelogFile, preparePlugin.changelogFile);
14 }
15 await verifyChangelog(pluginConfig);
16 verified = true;
17}
18
19async function prepare(pluginConfig, {nextRelease: {notes}, logger}) {
20 if (!verified) {
21 await verifyChangelog(pluginConfig);
22 verified = true;
23 }
24 await prepareChangelog(pluginConfig, notes, logger);
25}
26
27module.exports = {verifyConditions, prepare};