UNPKG

2.21 kBJavaScriptView Raw
1const e=require("lodash"),i=require("bluebird"),t=JSON.stringify,o=require("path"),n=JSON.parse;Lookup=module.exports={};const r={id:"<%=id%>",service:"<%=service%>",auth:"<%=auth%>",enabled:!0,dependencies:["auth"]};function c(i,o,n,r){var c=t({"<%=type_id%>":"<%=value%>",field_id:"<%=field_id%>"}),a={type_id:"action"===i?"action_id":"trigger_id",field_id:n,value:o},d=e.template(c)(a);return d=JSON.parse(d),e.find(r,d)}function a(e,i,t){try{var o=require(`${config.APP_DIR}/${e}${i}`)}catch(e){}return/object|array/i.test(o.input.properties[t].type)}Lookup.injectLookup=function(i,d,s,u,p,l,h){try{if(!l)return i;var f=e.cloneDeep(i.properties);e.keys(f).forEach(function(i){if(e.has(f[i],"lookup")){var _={id:f[i].lookup.id,service:"cli-"+d+"-"+s};try{var k=require(o.join(config.APP_DIR,"lookup",f[i].lookup.id))}catch(e){}_.auth="oauth"===u?"oauth":"connection";var v=e.template(t(r))(_);(v=n(v)).dependencies=v.dependencies.concat(f[i].lookup.dependencies).filter(e=>e),e.get(k,"search")&&!1!==k.search||(v.searchable=!1),e.get(k,"nested")&&e.isBoolean(k.nested)&&(v.nested=k.nested),f[i].lookup=v}if(a(h,p,i,l)){l.filter(e=>{var t=new RegExp("^"+i,"i"),o="action"===h?"action_id":"trigger_id";return t.test(e.field_id)&&e[o]===p}).forEach(i=>{try{var c=require(o.join(config.APP_DIR,"lookup",i.lookup_id))}catch(e){}var a={id:i.lookup_id,service:"cli-"+d+"-"+s};a.auth="oauth"===u?"oauth":"connection";var p=e.template(t(r))(a);(p=n(p)).enabled=i.enabled||!0,e.get(c,"search")&&!1!==c.search||(p.searchable=!1),c.nested&&e.isBoolean(c,"nested")&&(p.nested=c.nested),p.dependencies=e.compact(e.concat(p.dependencies,i.dependencies)),e.set(f,i.field_id,e.merge(e.get(f,i.field_id),{lookup:p}))})}else{var g=c(h,p,i,l);if(g){try{k=require(o.join(config.APP_DIR,"lookup",g.lookup_id))}catch(e){}(_={id:g.lookup_id,service:"cli-"+d+"-"+s}).auth="oauth"===u?"oauth":"connection";v=e.template(t(r))(_);(v=n(v)).enabled=g.enabled||!0,e.get(k,"search")&&!1!==k.search||(v.searchable=!1),k.nested&&e.isBoolean(k.nested)&&(v.nested=k.nested),v.dependencies=e.compact(e.concat(v.dependencies,g.dependencies)),f[i].lookup=v}}})}catch(e){throw new Error("Error while injecting lookup")}return i.properties=f,i};
\No newline at end of file