mirror of
https://github.com/YMFE/yapi.git
synced 2024-12-27 05:30:14 +08:00
50 lines
1.4 KiB
JavaScript
50 lines
1.4 KiB
JavaScript
const path = require('path');
|
||
|
||
function getPluginConfig(name, type) {
|
||
let pluginConfig;
|
||
if(type === 'ext'){
|
||
pluginConfig = require('../exts/yapi-plugin-' + name);
|
||
}else {
|
||
pluginConfig = require('../node_modules/yapi-plugin-' + name);
|
||
}
|
||
|
||
if(!pluginConfig || typeof pluginConfig !== 'object'){
|
||
throw new Error(`Plugin ${name} Config 配置错误,请检查 yapi-plugin-${name}/index.js`);
|
||
}
|
||
|
||
return {
|
||
server: pluginConfig.server,
|
||
client: pluginConfig.client
|
||
}
|
||
}
|
||
|
||
module.exports = {
|
||
/**
|
||
* type @string enum[plugin, ext] plugin是外部插件,ext是内部插件
|
||
*/
|
||
initPlugins: function (plugins, type) {
|
||
if (!plugins) {
|
||
return [];
|
||
}
|
||
if (typeof plugins !== 'object' || !Array.isArray(plugins)) {
|
||
throw new Error('插件配置有误,请检查', plugins);
|
||
}
|
||
|
||
return plugins.map(item => {
|
||
let pluginConfig;
|
||
if (item && typeof item === 'string') {
|
||
pluginConfig = getPluginConfig(item, type);
|
||
return Object.assign({}, pluginConfig, { name: item, enable: true })
|
||
} else if (item && typeof item === 'object') {
|
||
pluginConfig = getPluginConfig(item.name, type);
|
||
return Object.assign({},
|
||
pluginConfig,
|
||
{
|
||
name: item.name,
|
||
options: item.options,
|
||
enable: item.enable === false ? false : true
|
||
})
|
||
}
|
||
})
|
||
}
|
||
} |