From c7ced170a42dff65a55b60d2839fdad4896d239a Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 13 May 2026 20:58:53 +0000 Subject: [PATCH 1/3] fix release declaration build Co-authored-by: Kent C. Dodds --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 21b0b36..b85b20d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -45,7 +45,7 @@ jobs: run: npm install --ignore-scripts - name: Prepare package - run: npx -p typescript tsc --declaration --emitDeclarationOnly --allowJs --checkJs --downlevelIteration --module nodenext --moduleResolution nodenext --target es2022 --outDir . index.js + run: npx -p typescript tsc --declaration --emitDeclarationOnly --allowJs --checkJs --module nodenext --moduleResolution nodenext --target es2022 --outDir . index.js - name: Upload package artifact uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 From 10ba91718d5c972b667ab0a3884b1ef657aae1c1 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 13 May 2026 20:59:35 +0000 Subject: [PATCH 2/3] fix global map jsdoc types Co-authored-by: Kent C. Dodds --- index.js | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index 9181a88..002d485 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,20 @@ // Borrowed/modified from https://github.com/jenseng/abuse-the-platform/blob/2993a7e846c95ace693ce61626fa072174c8d9c7/app/utils/singleton.ts +/** + * @typedef {typeof globalThis & { + * __remember_epic_web?: Map + * }} RememberGlobal + */ + +/** + * @returns {Map} + */ +function getRememberMap() { + /** @type {RememberGlobal} */ + const thusly = globalThis + return (thusly.__remember_epic_web ??= new Map()) +} + /** * Remembers and retrieves a value by a given name, or the value generated by `getValue` if the name doesn't exist. * The return type is inferred from the return type of `getValue`. @@ -10,12 +25,11 @@ * @returns {Value} - The remembered value. */ export function remember(name, getValue) { - const thusly = globalThis - thusly.__remember_epic_web ??= new Map() - if (!thusly.__remember_epic_web.has(name)) { - thusly.__remember_epic_web.set(name, getValue()) + const rememberMap = getRememberMap() + if (!rememberMap.has(name)) { + rememberMap.set(name, getValue()) } - return thusly.__remember_epic_web.get(name) + return /** @type {Value} */ (rememberMap.get(name)) } /** @@ -25,7 +39,5 @@ export function remember(name, getValue) { * @return {boolean} - A remembered value existed and has been forgotten. */ export function forget(name) { - const thusly = globalThis - thusly.__remember_epic_web ??= new Map() - return thusly.__remember_epic_web.delete(name) + return getRememberMap().delete(name) } From 9e7f9cfba1625d9fbd32429064f472f8bd4408ba Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 13 May 2026 21:00:18 +0000 Subject: [PATCH 3/3] keep generated declarations unchanged Co-authored-by: Kent C. Dodds --- index.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/index.js b/index.js index 002d485..bfc3ad2 100644 --- a/index.js +++ b/index.js @@ -1,16 +1,10 @@ // Borrowed/modified from https://github.com/jenseng/abuse-the-platform/blob/2993a7e846c95ace693ce61626fa072174c8d9c7/app/utils/singleton.ts -/** - * @typedef {typeof globalThis & { - * __remember_epic_web?: Map - * }} RememberGlobal - */ - /** * @returns {Map} */ function getRememberMap() { - /** @type {RememberGlobal} */ + /** @type {typeof globalThis & { __remember_epic_web?: Map }} */ const thusly = globalThis return (thusly.__remember_epic_web ??= new Map()) }