1 | class Plugin {
|
2 | onHandlePlugins(ev) {
|
3 | const option = ev.data.option || {};
|
4 | const plugins = [
|
5 | {name: 'esdoc-lint-plugin', option: option.lint},
|
6 | {name: 'esdoc-coverage-plugin', option: option.coverage},
|
7 | {name: 'esdoc-accessor-plugin', option: option.accessor},
|
8 | {name: 'esdoc-type-inference-plugin', option: option.typeInference},
|
9 | {name: 'esdoc-external-ecmascript-plugin'},
|
10 | {name: 'esdoc-brand-plugin', option: option.brand},
|
11 | {name: 'esdoc-undocumented-identifier-plugin', option: option.undocumentIdentifier},
|
12 | {name: 'esdoc-unexported-identifier-plugin', option: option.unexportedIdentifier},
|
13 | {name: 'esdoc-integrate-manual-plugin', option: option.manual},
|
14 | {name: 'esdoc-integrate-test-plugin', option: option.test},
|
15 | {name: 'esdoc-publish-html-plugin'}
|
16 | ];
|
17 |
|
18 | const existPluginNames = ev.data.plugins.map(plugin => plugin.name);
|
19 | for (const plugin of plugins) {
|
20 | if (existPluginNames.includes(plugin.name)) continue;
|
21 | if (plugin.option === undefined) delete plugin.option;
|
22 | ev.data.plugins.push(plugin);
|
23 | }
|
24 | }
|
25 | }
|
26 |
|
27 | module.exports = new Plugin();
|