diff --git a/package.json b/package.json index e268dfa..88442a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ztimson/utils", - "version": "0.24.1", + "version": "0.24.2", "description": "Utility library", "author": "Zak Timson", "license": "MIT", diff --git a/src/misc.ts b/src/misc.ts index 43a8d7c..16e0db8 100644 --- a/src/misc.ts +++ b/src/misc.ts @@ -5,11 +5,12 @@ import {md5} from './string'; * Run a stringified function with arguments asynchronously * @param {object} args Map of key/value arguments * @param {string} fn Function as string - * @return {Promise} Function string response + * @param {boolean} async Run with async (returns a promise) + * @return {T | Promise} Function return result */ -export function asyncFunction(args: object, fn: string): Promise { +export function fn(args: object, fn: string, async: boolean = false): T { const keys = Object.keys(args); - return new Function(...keys, `return (async (${keys.join(',')}) => { ${fn} })(${keys.join(',')})`)(...keys.map(k => (args)[k])); + return new Function(...keys, `return (${async ? 'async ' : ''}(${keys.join(',')}) => { ${fn} })(${keys.join(',')})`)(...keys.map(k => (args)[k])); } /**