From 98e4f5591cd3fd7b3ce045e53416c3e6c8bf232e Mon Sep 17 00:00:00 2001 From: lohxt1 Date: Mon, 19 Aug 2024 11:21:32 +0530 Subject: [PATCH] wip: safe-mode updates --- packages/bruno-js/src/runtime/test-runtime.js | 1 + packages/bruno-js/src/sandbox/quickjs/index.js | 6 +++--- .../bruno-js/src/sandbox/quickjs/shims/console.js | 12 +++++++----- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/bruno-js/src/runtime/test-runtime.js b/packages/bruno-js/src/runtime/test-runtime.js index a7aa6d2c5..14a6668ed 100644 --- a/packages/bruno-js/src/runtime/test-runtime.js +++ b/packages/bruno-js/src/runtime/test-runtime.js @@ -104,6 +104,7 @@ class TestRuntime { log: customLogger('log'), info: customLogger('info'), warn: customLogger('warn'), + debug: customLogger('debug'), error: customLogger('error') }; } diff --git a/packages/bruno-js/src/sandbox/quickjs/index.js b/packages/bruno-js/src/sandbox/quickjs/index.js index 6aa3b5df8..6b9b5649b 100644 --- a/packages/bruno-js/src/sandbox/quickjs/index.js +++ b/packages/bruno-js/src/sandbox/quickjs/index.js @@ -100,14 +100,14 @@ const executeQuickJsVmAsync = async ({ fn.apply(); } await sleep(0); - console?.debug && console.debug('quick-js:execution-start:'); + console?.debug?.('quick-js:execution-start:'); try { ${externalScript} } catch(error) { - console?.debug && console.debug('quick-js:execution-end:with-error', error?.message); + console?.debug?.('quick-js:execution-end:with-error', error?.message); } - console?.debug && console.debug('quick-js:execution-end:'); + console?.debug?.('quick-js:execution-end:'); return 'done'; })() `; diff --git a/packages/bruno-js/src/sandbox/quickjs/shims/console.js b/packages/bruno-js/src/sandbox/quickjs/shims/console.js index 432ff3b12..984422893 100644 --- a/packages/bruno-js/src/sandbox/quickjs/shims/console.js +++ b/packages/bruno-js/src/sandbox/quickjs/shims/console.js @@ -1,29 +1,31 @@ const addConsoleShimToContext = (vm, console) => { + if (!console) return; + const consoleHandle = vm.newObject(); const logHandle = vm.newFunction('log', (...args) => { const nativeArgs = args.map(vm.dump); - console?.log && console.log(...nativeArgs); + console?.log?.(...nativeArgs); }); const debugHandle = vm.newFunction('debug', (...args) => { const nativeArgs = args.map(vm.dump); - console?.debug && console.debug(...nativeArgs); + console?.debug?.(...nativeArgs); }); const infoHandle = vm.newFunction('info', (...args) => { const nativeArgs = args.map(vm.dump); - console?.info && console.info(...nativeArgs); + console?.info?.(...nativeArgs); }); const warnHandle = vm.newFunction('warn', (...args) => { const nativeArgs = args.map(vm.dump); - console?.warn && console.warn(...nativeArgs); + console?.warn?.(...nativeArgs); }); const errorHandle = vm.newFunction('error', (...args) => { const nativeArgs = args.map(vm.dump); - console?.error && console.error(...nativeArgs); + console?.error?.(...nativeArgs); }); vm.setProp(consoleHandle, 'log', logHandle);