From: Ardis Lu Date: Sun, 24 May 2026 06:06:42 +0000 (-0700) Subject: Refactor to isolate `filterNullValues` logic X-Git-Tag: v0.1.2~7 X-Git-Url: https://git.ardis.lu/?a=commitdiff_plain;h=216b114b20177a49883c1a1646b20800ed23532e;p=envpass 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. --- 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,