forked from lgwebdream/fe-code
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenService.js
More file actions
32 lines (30 loc) · 1.07 KB
/
genService.js
File metadata and controls
32 lines (30 loc) · 1.07 KB
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
const camelCase = require('camelcase');
const registerTemplates = require('../template/registerTemplates');
const { extMap, languages } = require('../../utils/constants');
const genServiceCode = async (apis, language, modelsConfig) => {
const services = [];
const models = await Promise.all(modelsConfig);
for (const serviceName in apis) {
if (apis.hasOwnProperty(serviceName)) {
const filename = `${camelCase(serviceName, { pascalCase: true })}Service`;
const eachService = apis[serviceName];
services.push(
new Promise((resolve, reject) => {
registerTemplates
.service({
serviceName: filename,
service: eachService,
isTs: language === languages.Typescript,
modelConfig: models.find(
model => model.serviceName === serviceName,
),
})
.then(code => resolve({ filename, code, ext: extMap[language] }))
.catch(err => reject(err));
}),
);
}
}
return services;
};
module.exports = genServiceCode;