From 216b114b20177a49883c1a1646b20800ed23532e Mon Sep 17 00:00:00 2001 From: Ardis Lu Date: Sat, 23 May 2026 23:06:42 -0700 Subject: [PATCH] Refactor to isolate `filterNullValues` logic This change allows a more precise type annotation to assert that there is no null value in the resulting object. --- test/getPrf.test.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/test/getPrf.test.js b/test/getPrf.test.js index 8260ccc..6f02b5e 100644 --- a/test/getPrf.test.js +++ b/test/getPrf.test.js @@ -6,6 +6,18 @@ import { request } from 'undici'; import { WINDOW_EXPIRATION_DURATION } from '#src/getPrf.js'; import { setupPlaywright, setupServer } from '#test/setup.js'; +/** + * Return a new object where all properties in the object with the value `null` are *deleted*. + * @template T + * @param {Record} obj An object that may have properties with a `null` value. + * @returns {Record>} + */ +function filterNullValues(obj) { + return /** @type {Record>} */( + Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== null)) + ); +} + /** * @typedef {Object} MakePostRequestOptions * @property {Record} [headers] Headers to set on the request. Set a property to @@ -34,8 +46,8 @@ function makePostRequest(url, options = {}) { 'Sec-Fetch-Dest': 'empty', ...headers } - const filteredHeaders = Object.fromEntries(Object.entries(mergedHeaders).filter(([, v]) => v !== null)); - const body = Object.fromEntries(Object.entries({ challenge, prf }).filter(([, v]) => v !== null)); + const filteredHeaders = filterNullValues(mergedHeaders); + const body = filterNullValues({ challenge, prf }); return new Request(origin, { method: 'POST', headers: filteredHeaders, -- 2.47.3