From 6d0071a048c9439c1cd8334180096ab8de4a2d40 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 15 May 2021 23:30:31 -0500 Subject: [PATCH 1/2] support async functions --- index.js | 8 +++++++- mem.js | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 8755900..89a9bc5 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,8 @@ #! /usr/bin/env node const path = require('path'); + +;(async function main() { + const params = process.argv.slice(4); if (!process.argv[2]) { @@ -20,4 +23,7 @@ if (!userModule) { if (!userModule[process.argv[3]]) { throw new Error(`Function ${process.argv[3]} is not present or exported from module ${userModule}`); } -userModule[process.argv[3]](...params); + +await userModule[process.argv[3]](...params) + +})().catch(e => { throw e; }); diff --git a/mem.js b/mem.js index 9016424..477f7a3 100644 --- a/mem.js +++ b/mem.js @@ -1,5 +1,8 @@ #! /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]) { @@ -20,4 +23,7 @@ if (!userModule) { if (!userModule[process.argv[3]]) { throw new Error(`Function ${process.argv[3]} is not present or exported from module ${userModule}`); } -userModule[process.argv[3]](...params); + +await userModule[process.argv[3]](...params); + +})().catch(e => { throw e; }); From a0bb70ef68eb330825ddb9c67f946125a6d46933 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Sat, 15 May 2021 23:35:14 -0500 Subject: [PATCH 2/2] cache values --- index.js | 16 ++++++++++------ mem.js | 15 +++++++++------ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/index.js b/index.js index 89a9bc5..e31d3e0 100644 --- a/index.js +++ b/index.js @@ -5,25 +5,29 @@ const path = require('path'); 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}`); } -await userModule[process.argv[3]](...params) +await fun(...params) })().catch(e => { throw e; }); diff --git a/mem.js b/mem.js index 477f7a3..4300749 100644 --- a/mem.js +++ b/mem.js @@ -5,25 +5,28 @@ const path = require('path'); 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}`); } -await userModule[process.argv[3]](...params); +await fun(...params) })().catch(e => { throw e; });