如何使用GO自动生成JavaScript代码

如何使用GO自动生成JavaScript代码,javascript,go,Javascript,Go,我需要根据输入的规则集在GO中自动生成JS代码。例如,假设我有一个GO中的应用程序,它接收包含一组规则的Json: { "enabled": true, "rulesLimit": 3, "Rules": [ { "name": "Not Dave or Ted", "enabled": true, "id&qu

我需要根据输入的规则集在GO中自动生成JS代码。例如,假设我有一个GO中的应用程序,它接收包含一组规则的Json:

{
  "enabled": true,
  "rulesLimit": 3,
  "Rules": [
    {
      "name": "Not Dave or Ted",
      "enabled": true,
      "id": 1,
      "trigger": {
        "operator": "AND",
        "conditions": [
          {
            "operator": "NOT EQUAL",
            "value": "Dave"
          },
          {
            "operator": "NOT EQUAL",
            "value": "Ted"
          }
        ]
      }
    },
    {
      "name": "Only from home",
      "enabled": true,
      "id": 2,
      "trigger": {
        "conditions": [
          {
            "operator": "EQUAL",
            "urlValue": "Home"
          }
        ]
      }
    }
]
}
应用程序需要使用包含请求规则的函数自动生成JS代码:

function applyRules(){     
    if  (person[name] === "Dave" || person[name] === "Ted") {         
        return     
    }          
    if  (person[address] !== "Home") {         
        return     
    } 
} 
applyRules();
我目前正在研究最好的方法是什么。起初我考虑使用带有占位符的模板,但当我开始实现它时,复杂性有点大。是否有其他方法、工具或方法可以满足我的需要?
谢谢

当模板变得困难时,您可以切换到使用AST生成代码。也就是说,找到JavaScript AST的Go实现,然后编写使用AST构建目标代码的代码,然后将结果写入文件。如果你找不到一个,你就得自己写一个,它不一定要完整,只需要那些你需要生成的部分。如果你对围棋中的代码生成主题感兴趣,你可能会发现这很有帮助。