diff --git a/src/vm/modules/async.js b/src/vm/modules/async.js index 3602c85..006d4c8 100644 --- a/src/vm/modules/async.js +++ b/src/vm/modules/async.js @@ -4,9 +4,13 @@ async function asyncCall(reference, args) { args = [args]; } - const resJson = await reference.apply(undefined, args, { + const res = await reference.apply(undefined, args, { result: { promise: true }, }); - return JSON.parse(resJson); + if (typeof res === "string") { + return JSON.parse(res); + } + + return res; } diff --git a/src/vm/vm.class.ts b/src/vm/vm.class.ts index f756160..59befae 100644 --- a/src/vm/vm.class.ts +++ b/src/vm/vm.class.ts @@ -35,9 +35,7 @@ export class Vm { this.jail.setSync( plugin.getName(), new ivm.Reference(async (...args) => { - const res = await plugin.run(...args); - - return res; + return await plugin.run(...args); }) ); }