From 2ba55ca87e6d5e454f97b55ef1f5511e3b60acc9 Mon Sep 17 00:00:00 2001 From: codehz Date: Wed, 3 Dec 2025 18:54:05 +0800 Subject: [PATCH 1/2] Enhance Stubify and Unstubify for tuple types fixes #116 --- src/types.d.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/types.d.ts b/src/types.d.ts index 75117cb..c5a2897 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -92,6 +92,10 @@ export type Stubify = : T extends StubBase ? T : T extends Map ? Map, Stubify> : T extends Set ? Set> + : T extends [] ? [] + : T extends [infer Head, ...infer Tail] ? [Stubify, ...Stubify] + : T extends readonly [] ? readonly [] + : T extends readonly [infer Head, ...infer Tail] ? readonly [Stubify, ...Stubify] : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends BaseType ? T @@ -107,6 +111,10 @@ type UnstubifyInner = T extends StubBase ? (T | V) // can provide either stub or local RpcTarget : T extends Map ? Map, Unstubify> : T extends Set ? Set> + : T extends [] ? [] + : T extends [infer Head, ...infer Tail] ? [Unstubify, ...Unstubify] + : T extends readonly [] ? readonly [] + : T extends readonly [infer Head, ...infer Tail] ? readonly [Unstubify, ...Unstubify] : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends BaseType ? T From a09f019c982eae8e155e5bd05d4a0053d0627806 Mon Sep 17 00:00:00 2001 From: codehz Date: Wed, 3 Dec 2025 19:00:37 +0800 Subject: [PATCH 2/2] Add changeset for "Enhance Stubify and Unstubify for tuple types" --- .changeset/rich-mangos-lead.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/rich-mangos-lead.md diff --git a/.changeset/rich-mangos-lead.md b/.changeset/rich-mangos-lead.md new file mode 100644 index 0000000..765de1f --- /dev/null +++ b/.changeset/rich-mangos-lead.md @@ -0,0 +1,5 @@ +--- +"capnweb": patch +--- + +Enhance Stubify and Unstubify for tuple types