有很多事情可以做x -> JS
,而我想做类似的事情,其中x
是一个POJO并吐出一个es模块。
当前,我正在编写一个字符串,然后将其保存到js文件中:
const mapJoin = (xs,fn) => xs.map(fn).join(',\n');
const output = `
import { Model,belongsTo,hasMany } from '@miragejs/server';
export default {
${mapJoin(
nodes,node =>
`${node.model}: Model${
!node.fields.length
? ''
: `.extend({
${mapJoin(
node.fields,f =>
`${f.name}: ${f.isConnection ? 'hasMany' : 'belongsTo'}('${
f.model
}')`
)}
})`
}`
)}
}`;
fs.writeFileSync('__generated__models.js',output);
这非常麻烦且容易出错。是否有接受的方式/库来处理此问题?