diff --git a/index.js b/index.js index 8755900..e31d3e0 100644 --- a/index.js +++ b/index.js @@ -1,23 +1,33 @@ #! /usr/bin/env node const path = require('path'); + +;(async function main() { + const params = process.argv.slice(4); -if (!process.argv[2]) { +const fileName = process.argv[2] +if (!fileName) { console.error('File name not provided i.e. run-func ./index.js'); process.exit(); } -if (!process.argv[3]) { +const functionName = process.argv[3] +if (!functionName) { console.error('Function name not provided i.e. run-func ./index.js default'); process.exit(); } -const userModule = require(path.join(process.cwd(), process.argv[2])); +const userModule = require(path.join(process.cwd(), fileName)); if (!userModule) { throw new Error(`Module ${userModule} does not exists`); } -if (!userModule[process.argv[3]]) { - throw new Error(`Function ${process.argv[3]} is not present or exported from module ${userModule}`); + +const fun = userModule[functionName] +if (!fun) { + throw new Error(`Function ${functionName} is not present or exported from module ${userModule}`); } -userModule[process.argv[3]](...params); + +await fun(...params) + +})().catch(e => { throw e; }); diff --git a/mem.js b/mem.js index 9016424..4300749 100644 --- a/mem.js +++ b/mem.js @@ -1,23 +1,32 @@ #! /usr/bin/env node --max-old-space-size=4096 const path = require('path'); + +;(async function main() { + const params = process.argv.slice(4); -if (!process.argv[2]) { +const fileName = process.argv[2] +if (!fileName) { console.error('File name not provided i.e. run-func ./index.js'); process.exit(); } -if (!process.argv[3]) { +const functionName = process.argv[3] +if (!functionName) { console.error('Function name not provided i.e. run-func ./index.js default'); process.exit(); } -const userModule = require(path.join(process.cwd(), process.argv[2])); +const userModule = require(path.join(process.cwd(), fileName)); if (!userModule) { throw new Error(`Module ${userModule} does not exists`); } -if (!userModule[process.argv[3]]) { - throw new Error(`Function ${process.argv[3]} is not present or exported from module ${userModule}`); +const fun = userModule[functionName] +if (!fun) { + throw new Error(`Function ${functionName} is not present or exported from module ${userModule}`); } -userModule[process.argv[3]](...params); + +await fun(...params) + +})().catch(e => { throw e; });