-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathverify-conditions.ts
36 lines (33 loc) · 1.03 KB
/
verify-conditions.ts
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
35
36
import { PluginConfig } from './classes/plugin-config.class.js';
import verifyConfig from './utils/verify-config.js';
import { verifyPlugin } from './utils/verify-plugin.js';
import { VerifyConditionsContext } from 'semantic-release';
import getError from './utils/get-error.js';
import { verifyTheme } from './utils/verify-theme.js';
export async function verifyConditions(
pluginConfig: PluginConfig,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
_context: VerifyConditionsContext,
): Promise<void> {
const errors = await verifyConfig(pluginConfig);
try {
switch (pluginConfig.type) {
case 'theme':
await verifyTheme(pluginConfig);
break;
case 'plugin':
await verifyPlugin(pluginConfig);
break;
default:
errors.push(getError('EINVALIDTYPE', pluginConfig.type));
break;
}
} catch (err) {
if (err instanceof AggregateError) {
errors.push(...err.errors);
}
}
if (errors.length > 0) {
throw new AggregateError(errors);
}
}