From 781c775864d88b1305dcf060cf5ac400cee173cf Mon Sep 17 00:00:00 2001 From: Dillon Mulroy Date: Fri, 16 Jan 2026 10:48:00 -0500 Subject: [PATCH] fix(types): filter symbol keys in RpcCompatible mapped type Use key remapping to filter out symbol keys instead of mapping to never. Fixes Disposable compatibility issue with RPC types. Ref: cloudflare/workerd#5804 --- .changeset/fix-rpccompatible-symbol-keys.md | 5 +++++ src/types.d.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/fix-rpccompatible-symbol-keys.md diff --git a/.changeset/fix-rpccompatible-symbol-keys.md b/.changeset/fix-rpccompatible-symbol-keys.md new file mode 100644 index 0000000..0b9bbf8 --- /dev/null +++ b/.changeset/fix-rpccompatible-symbol-keys.md @@ -0,0 +1,5 @@ +--- +"capnweb": patch +--- + +Fix RpcCompatible type to filter out symbol keys instead of mapping them to never diff --git a/src/types.d.ts b/src/types.d.ts index c5a2897..2c2e80e 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -33,7 +33,7 @@ export type RpcCompatible = | Array ? RpcCompatible : never> | ReadonlyArray ? RpcCompatible : never> | { - [K in keyof T]: K extends number | string ? RpcCompatible : never; + [K in keyof T as K extends string | number ? K : never]: RpcCompatible; } | Promise ? RpcCompatible : never> // Special types