将JS对象转换为代码/模块(codegen)

有很多事情可以做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);

这非常麻烦且容易出错。是否有接受的方式/库来处理此问题?

gangan123321 回答:将JS对象转换为代码/模块(codegen)

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3113354.html

大家都在问