UNPKG

2.58 kBJavaScriptView Raw
1const e=require("lodash"),r=require("bluebird"),i=require("path"),t=r.promisifyAll,o=require("../utils"),a=t(require("request")),l=t(require("fs-extra")),s=require("./../utils/files.js"),n=require("./../utils/slug"),u=process.cwd(),p=require("./../utils/credentials"),d=require("./../utils/api"),m=require("./../utils/helper"),c=require("inquirer"),g=require("./../utils/messagehandler").messagesHandler,f=require("./../utils/semver").validateSemver;function y(e,r,i){r=[{type:"confirm",message:r,name:e,default:i||!1}];return c.prompt(r)}function v(e,r){var i=[{type:"input",message:g("VERSION_PROMPT",{name:e,type:r}),default:"v1",name:"version",validate:f}];return c.prompt(i).then(e=>e.version)}module.exports=r.coroutine(function*(t,a){if("trigger"!==t&&"action"!==t&&"lookup"!==t)return r.reject(g("INVALID_COMMAND_EXECUTION"));if(!a.match(/^[\w-]+$/))return r.reject(g("ILLEGAL_CHARS",{type:t,name:a}));if(a.length<3)return r.reject(g("NAME_TOO_SHORT",{type:t,name:a}));var n=Array.prototype.slice.call(arguments);n.shift(),a=n.join(" ");var d={name:a=m.makeName(a),label:m.makeTitle(a)},c="";"lookup"!==t&&(c=yield v(a,t),d.version=c);var f=t;if("lookup"==t){var h=yield y("search","Does your lookup have searchable feature");d.id=a,d.search=h.search}var q=yield s.getIndex();if("trigger"==t){f=(yield y("polling",g("POLLING_PROMPT"),!0)).polling?t:"trigger-webhook";var k=m.makeTitle(a);d.title=k,d.name=m.makeName(a),d.slug=d.name,d.polling="trigger-webhook"!=f}const C=e.template(yield l.readFileAsync(i.join(CLI_PATH,"snippets/",f+".js"),"utf8"))(d),S=c?i.join(u,t,c):i.join(u,t),j=i.join(u,"index.json");let A;if("lookup"===t&&(q.lookup=!0),"lookup"!=t&&(A=~q[t+"s"].indexOf(`/${c}/${a}`)))return Console.error(`${t} ${a} already exist with version ${c}`);yield s.ensureDirectory(S),yield l.writeFileAsync(i.join(S,a+".js"),C,"utf8"),"lookup"!=t&&q[t+"s"].push("/"+c+"/"+a),yield l.writeFileAsync(j,JSON.stringify(q,null,2),"utf8");var O=q.appId,x=yield p.checkCredentials();if(O&&x)yield o.setHistory("Created "+t.toString(),"Name: "+a.toString());else{var N={operation:"Created "+t.toString(),message:"Name: "+a.toString(),created_at:Date.now()};yield o.setHistory("Trigger",N)}return Console.info(g("CREATED_SUCCESS",{action:t,name:a})),r.resolve(!0)}),module.exports.argSpecs=[{parameter:"action",required:!0},{parameter:"name",required:!0}],module.exports.argOptionsSpecs={},module.exports.help="Create a scaffolding for trigger, action, lookup",module.exports.docs="Create scaffolding for all entities",module.exports.snippet="flow create trigger new_mail";
\No newline at end of file