From 68d80b8f78312ab79c113b5b449b92748fe8a5d3 Mon Sep 17 00:00:00 2001 From: sanish chirayath Date: Mon, 16 Mar 2026 23:17:54 +0530 Subject: [PATCH] feat(bruno-js): add hasCookie function to cookie jar shim for improved cookie management (#7501) --- .../bruno-js/src/sandbox/quickjs/shims/bru.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/bruno-js/src/sandbox/quickjs/shims/bru.js b/packages/bruno-js/src/sandbox/quickjs/shims/bru.js index eb8f3aa03..821b7ef05 100644 --- a/packages/bruno-js/src/sandbox/quickjs/shims/bru.js +++ b/packages/bruno-js/src/sandbox/quickjs/shims/bru.js @@ -471,6 +471,20 @@ const addBruShimToContext = (vm, bru) => { }); _deleteCookieFn.consume((handle) => vm.setProp(jarObj, '_deleteCookie', handle)); + const _hasCookieFn = vm.newFunction('_hasCookie', (url, cookieName) => { + const promise = vm.newPromise(); + nativeJar.hasCookie(vm.dump(url), vm.dump(cookieName), (err, exists) => { + if (err) { + promise.reject(marshallToVm(cleanJson(err), vm)); + } else { + promise.resolve(marshallToVm(exists, vm)); + } + }); + promise.settled.then(vm.runtime.executePendingJobs); + return promise.handle; + }); + _hasCookieFn.consume((handle) => vm.setProp(jarObj, '_hasCookie', handle)); + return jarObj; }); _jarFn.consume((handle) => vm.setProp(bruCookiesObject, '_jar', handle)); @@ -540,7 +554,8 @@ const addBruShimToContext = (vm, bru) => { setCookies: (url, cookiesArray, cb) => callWithCallback(() => _jar._setCookies(url, cookiesArray), cb), clear: (cb) => callWithCallback(() => _jar._clear(), cb), deleteCookies: (url, cb) => callWithCallback(() => _jar._deleteCookies(url), cb), - deleteCookie: (url, name, cb) => callWithCallback(() => _jar._deleteCookie(url, name), cb) + deleteCookie: (url, name, cb) => callWithCallback(() => _jar._deleteCookie(url, name), cb), + hasCookie: (url, name, cb) => callWithCallback(() => _jar._hasCookie(url, name), cb) }; }; `);