mirror of
https://github.com/WeBankFinTech/fes.js.git
synced 2025-04-25 11:06:36 +08:00
55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
import { readFileSync } from 'fs';
|
|
import { join } from 'path';
|
|
|
|
export default (api) => {
|
|
api.addRuntimePluginKey(() => 'request');
|
|
// 配置
|
|
api.describe({
|
|
key: 'request',
|
|
config: {
|
|
schema(joi) {
|
|
return joi.object({
|
|
dataField: joi
|
|
.string()
|
|
.pattern(/^[a-zA-Z]*$/)
|
|
.allow('')
|
|
});
|
|
},
|
|
default: {
|
|
dataField: ''
|
|
}
|
|
}
|
|
});
|
|
|
|
const namespace = 'plugin-request';
|
|
const absoluteFilePath = `${namespace}/request.js`;
|
|
const requestTemplate = readFileSync(join(__dirname, 'template', 'request.js'), 'utf-8');
|
|
api.onGenerateFiles(() => {
|
|
// 文件写出
|
|
const { dataField = '' } = api.config.request;
|
|
api.writeTmpFile({
|
|
path: absoluteFilePath,
|
|
content: requestTemplate
|
|
.replace('REPLACE_DATA_FIELD', JSON.stringify(dataField))
|
|
});
|
|
});
|
|
|
|
let generatedOnce = false;
|
|
api.onGenerateFiles(() => {
|
|
if (generatedOnce) return;
|
|
generatedOnce = true;
|
|
api.copyTmpFiles({
|
|
namespace,
|
|
path: join(__dirname, 'template'),
|
|
ignore: ['request.js']
|
|
});
|
|
});
|
|
|
|
api.addPluginExports(() => [
|
|
{
|
|
exportAll: true,
|
|
source: absoluteFilePath
|
|
}
|
|
]);
|
|
};
|