UNPKG

1.02 kBJavaScriptView Raw
1/* eslint require-atomic-updates: off */
2
3const {defaultTo, castArray} = require('lodash');
4const verifyChangelog = require('./lib/verify');
5const prepareChangelog = require('./lib/prepare');
6
7let verified;
8
9async function verifyConditions(pluginConfig, context) {
10 const {options} = context;
11 // 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
12 if (options.prepare) {
13 const preparePlugin =
14 castArray(options.prepare).find(config => config.path && config.path === '@semantic-release/changelog') || {};
15
16 pluginConfig.changelogFile = defaultTo(pluginConfig.changelogFile, preparePlugin.changelogFile);
17 }
18
19 await verifyChangelog(pluginConfig);
20 verified = true;
21}
22
23async function prepare(pluginConfig, context) {
24 if (!verified) {
25 await verifyChangelog(pluginConfig);
26 verified = true;
27 }
28
29 await prepareChangelog(pluginConfig, context);
30}
31
32module.exports = {verifyConditions, prepare};