UNPKG

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