UNPKG

14.5 kBJavaScriptView Raw
1parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"J6HI":[function(require,module,exports) {
2const e=require("fs-extra"),r=require("chalk"),t=require("boxen"),a=1/6,n=1/3,o=2/3,c={emptyDir:async r=>{try{await e.emptyDir(r)}catch(t){console.error(t)}}},i=1533,s={mode:1533};c.ensureDir=(async(r,t=s)=>{try{await e.ensureDir(r,t)}catch(a){console.error(a)}}),c.ensureFile=(async r=>{try{await e.ensureFile(r)}catch(t){console.error(t)}}),c.pathExists=(async r=>{return await e.pathExists(r)}),c.readJson=(async r=>{try{return await e.readJson(r)}catch(t){return console.error(t),{}}}),c.readFile=(async r=>{try{return await e.readFileSync(r,"utf8")}catch(t){return console.error(t),{}}}),c.removeFile=(async r=>{try{return await e.remove(r)}catch(t){return console.error(`File ${r} NOT REMOVED! ${t}`),!1}}),c.writeFile=(async(r,t="")=>{try{return await e.outputFile(r,t)}catch(a){console.error(a)}}),c.writeJson=(async(r,t={})=>{try{await e.writeJson(r,t)}catch(a){console.error(a)}}),c.chainAsync=(e=>{let r=0;const t=e[e.length-1],a=()=>{const n=e[r++];n===t?n():n(a)};a()}),c.appendToFile=(async(r,t="")=>{try{await e.appendFileSync(r,t)}catch(a){console.error(a)}}),c.boxInform=(async(e,a="")=>{console.log(t(r.hex("#717877")(e)+r.bold.underline.hex("#438b34")(a)+r.hex("#717877")(" "),{padding:0,margin:{left:2,top:0,bottom:0,right:0},borderStyle:{topLeft:r.hex("#5a596d")("╔"),topRight:r.hex("#5a596d")("╗"),bottomLeft:r.hex("#5a596d")("╚"),bottomRight:r.hex("#5a596d")("╝"),horizontal:r.hex("#5a596d")("═"),vertical:r.hex("#5a596d")("║")},align:"center"}))});const l=(e,r,t)=>(t<0&&(t+=1),t>1&&(t-=1),t<1/6?e+6*(r-e)*t:t<.5?r:t<2/3?e+(r-e)*(2/3-t)*6:e),h=(e,r,t)=>{if(0===r)return new Array(3).fill(t);const a=t<.5?t*r+t:t+r-t*r,n=2*t-a;return[l(n,a,e+1/3),l(n,a,e),l(n,a,e-1/3)]};c.rainbowGradient=((e,r=1,t=.5)=>{const a=[];for(let n=0;n<e;n++)a.push(h(n/e,r,t).map(e=>Math.round(255*e)));return a}),module.exports=c;
3},{}],"gevp":[function(require,module,exports) {
4const e=require("chalk"),s=require("inquirer"),{appendToFile:r,writeFile:a,boxInform:n,readJson:c,readFile:i}=require("./helpers.js"),o=require("path"),t=process.cwd(),p=o.join(t,"package.json"),l={scripts:[]};let h="# First category of scripts\n\nWelcome to your new amazing fscripts.md file. It replaces the headaches of npm scripts! But so much more.\n";l.init=(async()=>{try{l.packageJson=await c(p),Object.keys(l.packageJson.scripts).forEach(e=>{h+=`\n## ${e}\n\n${l.packageJson.scripts[e]}\n\n\`\`\`bash\n${l.packageJson.scripts[e]}\n\`\`\`\n\n`}),await a("./sample.fscripts.md",h)}catch(e){console.error(e)}}),module.exports=l.init;
5},{"./helpers.js":"J6HI"}],"E6PL":[function(require,module,exports) {
6"use strict";function e(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{},c=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(c=c.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),c.forEach(function(r){t(e,r,n[r])})}return e}function t(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const r=require("joycon"),n=require("path"),c=require("chalk"),s=new r({stopDir:n.dirname(process.cwd())}),a=(e,t="")=>Object.keys(e).reduce((r,n)=>{const c=t.length?t+".":"";return"object"==typeof e[n]?Object.assign(r,a(e[n],c+n)):r[c+n]=e[n],r},{}),i=require("marked");let o=function(t){let r=i.lexer(t),n=(r=r.filter(e=>"space"!==e.type)).slice(),c={},s="",a="",o=0;n.forEach((e,t)=>{if("heading"===e.type&&1===e.depth){o=0,s=e.text,c[s]={name:e.text,tasks:{},description:""};let n=r[t+1];"paragraph"===n.type&&(c[s].description=n.text)}else if("heading"===e.type&&2===e.depth){a=e.text,c[s].tasks[a]={script:"",name:a,description:"",order:o},o++;let n=r[t+1],i=r[t+2];"paragraph"===n.type&&"code"===i.type?(c[s].tasks[a].description=n.text,c[s].tasks[a].script=i.text):"code"===n.type&&(c[s].tasks[a].script=n.text)}});let p=[];return{categories:Object.keys(c).map(t=>{let r=c[t].tasks,n=Object.keys(r).map(e=>r[e]);return p=[...p,...n],e({name:t},c[t])}),allTasks:p}};const p=async()=>{const{path:e,data:t}=s.loadSync(["fscripts.md"]);if(e){let e=t.split("\x3c!-- end toc --\x3e");return e=e[2===e.length?1:0],o(e)}return!1};module.exports=p;
7},{}],"7tUf":[function(require,module,exports) {
8const e=require("path"),r=require("chalk");require("markdown-toc");const t=require("joycon"),n=require("markdown-toc"),o=new t({stopDir:e.dirname(process.cwd())}),{writeFile:s}=require("./helpers.js"),c=async()=>{const{path:e,data:t}=o.loadSync(["fscripts.md"]);if(!e)return console.warn(`${r.bold.red("You're missing the fscripts.md file!")}\n${r.green("Please run 'fsr generate' to get started!")}`),process.exit(0),null;{console.warn(`${r.bold.green("Located fscripts.md file!")}`);let e="",o=t.split("\x3c!-- end toc --\x3e");e=2===o.length?n(o[1]).content+"\n\x3c!-- end toc --\x3e\n\n"+o[1].trim():n(t).content+"\n\x3c!-- end toc --\x3e\n\n"+t.trim(),await s("./fscripts.md",e)}};module.exports=c;
9},{"./helpers.js":"J6HI"}],"e+FD":[function(require,module,exports) {
10const e=require("chalk"),o=require("path"),r=require("moment"),s=require("cross-spawn");module.exports=(async({script:n,task:c,type:t=n.type},i=!1)=>(i||console.log(`${e.green.bgHex("#181c24").bold("["+r().format("HH:MM:SS")+"]")}${e.bgHex("#181c24").bold.hex("#8c91a7")(" "+c.name+": ")}`),new Promise(r=>{s(t,[...n.rest],{stdio:"inherit",env:Object.assign({},process.env,{FORCE_COLOR:!0,PATH:`${o.resolve("node_modules/.bin")}:${process.env.PATH}`})}).on("close",o=>{0===o?r():console.error(`${e.red("ERROR")} ${o}`)})})));
11},{}],"ZR+/":[function(require,module,exports) {
12const e=require("./runCLICommand"),n=require("chalk"),s=async(s,i)=>{for(let t in s){let a=s[t],l=i.allTasks.findIndex(e=>e.name===a);if(-1===l)console.log(`${n.red.underline("Skipping task "+a+", as it cannot be found in .md file")}`);else{let n=i.allTasks[l].script.split(" "),s=n.shift();await e({task:{name:a},script:{type:s,rest:n}})}}};module.exports=s;
13},{"./runCLICommand":"e+FD"}],"FQHP":[function(require,module,exports) {
14const s=require("./runCLICommand"),e=async(e,t)=>{for(let a in e){let n=e[a],l=t.allTasks.findIndex(s=>s.name===n),r=t.allTasks[l].script.split(" "),i=r.shift();s({task:{name:n},script:{type:i,rest:r}})}};module.exports=e;
15},{"./runCLICommand":"e+FD"}],"7oAW":[function(require,module,exports) {
16const e=require("inquirer"),t=" ~ ",r=require("chalk"),a=e=>e.map(e=>{let t=e.match(/(\*\*|^\*\*)(?=\S)([\s\S]*?\S)\*\*(?![\*\*\S])/g);null!==t&&t.forEach(t=>{e=e.replace(t,r.bold.redBright.bgHex("#000d13")(t.replace(/\*\*/g," ")))});let a=e.match(/(_|^_)(?=\S)([\s\S]*?\S)_(?![_\S])/g);return null!==a&&a.forEach(t=>{e=e.replace(t,r.underline.greenBright.bgHex("#000d13")(t.replace(/\_\_/g," ")))}),e}),i=async(t,r)=>new Promise(i=>{let s=[...r,"-------------",...t.categories.map(e=>e.name+" ~ "+e.description)];s=a(s),e.prompt([{type:"list",name:"category",message:"What category do you want to run?",choices:s}]).then(({category:r})=>{let n=s.indexOf("-------------"),l=s.indexOf(r);if(n===l)console.log("Can't select divider");else if(l<n){let e=r.split(" ~ ")[0].trim();i(e)}else{let s=r.split(" ~ ")[0],n=t.categories.findIndex(e=>e.name===s);n=t.categories[n];let l=Object.keys(n.tasks).map(e=>{let t=n.tasks[e];return`${e} ${t.description?" ~ "+t.description.replace(/\n/g," ").trim():""}`});l=a(l),e.prompt([{type:"list",name:"taskToRun",message:"Which task do you want to run",choices:l}]).then(({taskToRun:e})=>{e=e.split(" ~ ")[0].trim(),i(e)})}})});module.exports=i;
17},{}],"UCFQ":[function(require,module,exports) {
18"use strict";const e=require("path"),r=require("chalk"),s=e.join(process.cwd(),"./package.json"),{readJson:a}=require("./helpers"),c=async()=>{return(await a(s)).scripts};module.exports=c;
19},{"./helpers":"J6HI"}],"JJn1":[function(require,module,exports) {
20const e=require("./taskList"),t=" ~ ",a=require("conf"),s=new a,r=require("moment"),c=require("chalk"),n=require("./parseScriptsMd.js"),i=require("./parseScriptsPackage.js"),l=require("./runCLICommand"),{prompt:o}=require("enquirer"),u=async e=>{try{let{answer:a}=await o({type:"autocomplete",message:`${c.green.bold.underline("Choose task to run")}`,choices:e,name:"answer"});return a.split(" ~ ")[0].trim()}catch(t){return!1}},p=async(t=!0)=>{console.clear();const a=await n();if(!1===a)return!1;let c,i=s.get("recentTasks",{}),o=Object.keys(i).map(e=>{return{name:e,lastExecuted:i[e].lastExecuted}}).sort((e,t)=>e.lastExecuted>t.lastExecuted?1:t.lastExecuted>e.lastExecuted?-1:0).reverse().slice(0,3).map(e=>e.name+" ~ "+r(e.lastExecuted).calendar());if(t)c=await e(a,o);else{let e=a.allTasks;c=await u(e.map(e=>`${e.name} ~ ${e.description}`))}void 0===i[c]?i[c]={lastExecuted:Date.now()}:i[c].lastExecuted=Date.now(),s.set("recentTasks",i);let p=a.allTasks.findIndex(e=>e.name===c),m=a.allTasks[p].script.split(" "),d=m.shift();await l({task:{name:c},script:{type:d,rest:m}})},m=async()=>{console.clear();const e=await i();let t=Object.keys(e).map(t=>({name:t,script:e[t]})),a=await u(t.map(e=>`${e.name} ~ ${e.script}`));if(!1===a)return console.log(c.green.bold("See you soon!")),!1;await l({task:{name:a},script:{type:"yarn",rest:[a]}})},d=async()=>{s.set("recentTasks",{})};module.exports={startScripts:p,taskListAutoComplete:u,clearRecent:d,startPackageScripts:m};
21},{"./taskList":"7oAW","./parseScriptsMd.js":"E6PL","./parseScriptsPackage.js":"UCFQ","./runCLICommand":"e+FD"}],"DPDa":[function(require,module,exports) {
22const e=" ~ ",a=require("chalk"),{prompt:t}=require("enquirer"),s=async()=>{let e=[{name:"start",message:"Choose category then task to run"},{name:"list",message:"Select any task with text autocompletion"},{name:"scripts",message:"Choose a script from package.json"},{name:"clear",message:"Clear recent task history"},{name:"generate",message:"Generate a sample fscripts.md file from the package.json"},{name:"toc",message:"Generate updated Table of Contents on top of the fscripts.md file"},{name:"--help",message:"See full help documentation"}];try{let{answer:n}=await t({type:"select",name:"answer",choiceMessage:e=>a.bgBlack.bold.hex("#ac80fd")(e.name+":"+a.gray(" "+e.message)),message:`${a.green.bold.underline("Whatz category do you want to run?")}`,choices:e});return n}catch(s){return!1}};module.exports=s;
23},{}],"Focm":[function(require,module,exports) {
24#!/usr/bin/env node
25const e=require("chalk"),a=require("./lib/generateFScripts.js"),t=require("./lib/parseScriptsMd.js"),s=require("./lib/generateToc"),n=require("./lib/runSequence"),r=require("./lib/runParallel"),o=require("./lib/runCLICommand"),{startPackageScripts:i,startScripts:c,clearRecent:l}=require("./lib/startScripts.js"),p=e.rgb(39,173,96).bold.underline,m=e.rgb(159,161,181),u=require("./lib/optionList"),f=require("yargs").usage("Usage: $0 <command> [options]").command("","Choose a script runner command",e=>{},async function(){}).example(`${p("$0")}`,`${m("Choose a script runner command")}`).command("start","Choose category then task to run",e=>{},async function(){!1===await c()&&await i()}).example(`${p("$0 start")}`,`${m("Open a task selection selector")}`).command("scripts","Choose a script from package.json",e=>{},async function(){await i()}).example(`${p("$0 scripts")}`,`${m("Choose a script from package.json")}`).command("list","Select any task with text autocompletion",()=>{},async function(e){await c(!1)}).example(`${p("$0 list")}`,`${m("Show you all tasks you can run")}`).command("run","Run a specific task",()=>{},async function(e){let a=e._[1];const s=await t();let n=s.allTasks.findIndex(e=>e.name===a),r=s.allTasks[n].script.split(" "),i=r.shift(),c=r.join(" ");c+=" "+Object.keys(e).filter(e=>"_"!==e&&"$0"!==e).map(a=>` --${a}=${e[a]}`).join(" "),await o({task:{name:a},script:{type:i,rest:c.split(" ")}})}).example(`${p("$0 run start:web")}`,`${m("Run task 'start:web'")}`).command("run-s","Run a set of tasks one after another",()=>{},async function(e){let a=e._.slice();a.shift();const s=await t();await n(a,s)}).example(`${p("$0 run-s start:web start:desktop")}`,`${m("Run task 'start:web' and afterwards 'start:desktop'")}`).command("run-p","Run tasks in parallel",()=>{},async function(e){let a=e._.slice();a.shift();const s=await t();await r(a,s)}).example(`${p("$0 run-p start:web start:desktop")}`,`${m("Run task 'start:web' and at the same time 'start:desktop'")}`).command("clear","Clear recent task history",()=>{},async function(e){await l()}).example(`${p("$0 clear")}`,`${m("Clear your recently run tasks")}`).command("generate","Generate a sample fscripts.md file from the package.json",()=>{},async function(e){await a()}).example(`${p("$0 generate")}`,`${m("Generates a sample.fscripts.md you can use as template for your fscripts file")}`).command("toc","Generate updated Table of Contents on top of the fscripts.md file",()=>{},async function(e){await s()}).example(`${p("$0 toc")}`,`${m("Generate updated Table of Contents on top of the fscripts.md file")}`).argv;0===f._.length&&async function(){const a=await u();a?await o({task:{name:a},script:{type:"fsr",rest:[a]}},!0):console.log(e.green.bold("See you soon!"))}();
26},{"./lib/generateFScripts.js":"gevp","./lib/parseScriptsMd.js":"E6PL","./lib/generateToc":"7tUf","./lib/runSequence":"ZR+/","./lib/runParallel":"FQHP","./lib/runCLICommand":"e+FD","./lib/startScripts.js":"JJn1","./lib/optionList":"DPDa"}]},{},["Focm"], null)
27//# sourceMappingURL=/index.js.map
\No newline at end of file