UNPKG

1.36 kBJavaScriptView Raw
1exports.onHandlePlugins = function(ev) {
2 const option = ev.data.option || {};
3 const plugins = [
4 {name: 'esdoc-lint-plugin', option: {enable: option.lint}},
5 {name: 'esdoc-coverage-plugin', option: {enable: option.coverage}},
6 {name: 'esdoc-accessor-plugin', option: {access: option.access, autoPrivate: option.autoPrivate}},
7 {name: 'esdoc-type-inference-plugin', option: {enable: option.typeInference}},
8 {name: 'esdoc-external-ecmascript-plugin'},
9 {name: 'esdoc-brand-plugin', option: {title: option.title, repository: option.repository}},
10 {name: 'esdoc-undocumented-identifier-plugin', option: {enable: option.undocumentIdentifier}},
11 {name: 'esdoc-unexported-identifier-plugin', option: {enable: option.unexportedIdentifier}},
12 {name: 'esdoc-integrate-manual-plugin', option: option.manual},
13 {name: 'esdoc-integrate-test-plugin', option: option.test},
14 {name: 'esdoc-publish-html-plugin'}
15 ];
16
17 const existPluginNames = ev.data.plugins.map(plugin => plugin.name);
18 for (const plugin of plugins) {
19 if (existPluginNames.includes(plugin.name)) continue;
20 cleanOption(plugin.option);
21 ev.data.plugins.push(plugin);
22 }
23};
24
25// remove `undefined` value
26function cleanOption(option) {
27 if (!option) return;
28
29 for (const key of Object.keys(option)) {
30 if (option[key] === undefined) delete option[key];
31 }
32}