Skip to content

Commit c68bc97

Browse files
committed
spec types - temporary fix for elicitation: object type
1 parent cee9d13 commit c68bc97

File tree

1 file changed

+33
-4
lines changed

1 file changed

+33
-4
lines changed

src/spec.types.test.ts

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,23 @@ type MakeUnknownsNotOptional<T> =
6262
}
6363
: T;
6464

65+
// Targeted fix: in spec, treat ClientCapabilities.elicitation?: object as Record<string, unknown>
66+
type FixSpecClientCapabilities<T> = T extends { elicitation?: object }
67+
? Omit<T, 'elicitation'> & { elicitation?: Record<string, unknown> }
68+
: T;
69+
70+
type FixSpecInitializeRequestParams<T> = T extends { capabilities: infer C }
71+
? Omit<T, 'capabilities'> & { capabilities: FixSpecClientCapabilities<C> }
72+
: T;
73+
74+
type FixSpecInitializeRequest<T> = T extends { params: infer P }
75+
? Omit<T, 'params'> & { params: FixSpecInitializeRequestParams<P> }
76+
: T;
77+
78+
type FixSpecClientRequest<T> = T extends { params: infer P }
79+
? Omit<T, 'params'> & { params: FixSpecInitializeRequestParams<P> }
80+
: T;
81+
6582
const sdkTypeChecks = {
6683
RequestParams: (sdk: SDKTypes.RequestParams, spec: SpecTypes.RequestParams) => {
6784
sdk = spec;
@@ -75,7 +92,10 @@ const sdkTypeChecks = {
7592
sdk = spec;
7693
spec = sdk;
7794
},
78-
InitializeRequestParams: (sdk: SDKTypes.InitializeRequestParams, spec: SpecTypes.InitializeRequestParams) => {
95+
InitializeRequestParams: (
96+
sdk: SDKTypes.InitializeRequestParams,
97+
spec: FixSpecInitializeRequestParams<SpecTypes.InitializeRequestParams>
98+
) => {
7999
sdk = spec;
80100
spec = sdk;
81101
},
@@ -480,23 +500,32 @@ const sdkTypeChecks = {
480500
sdk = spec;
481501
spec = sdk;
482502
},
483-
InitializeRequest: (sdk: WithJSONRPCRequest<SDKTypes.InitializeRequest>, spec: SpecTypes.InitializeRequest) => {
503+
InitializeRequest: (
504+
sdk: WithJSONRPCRequest<SDKTypes.InitializeRequest>,
505+
spec: FixSpecInitializeRequest<SpecTypes.InitializeRequest>
506+
) => {
484507
sdk = spec;
485508
spec = sdk;
486509
},
487510
InitializeResult: (sdk: SDKTypes.InitializeResult, spec: SpecTypes.InitializeResult) => {
488511
sdk = spec;
489512
spec = sdk;
490513
},
491-
ClientCapabilities: (sdk: SDKTypes.ClientCapabilities, spec: SpecTypes.ClientCapabilities) => {
514+
ClientCapabilities: (
515+
sdk: SDKTypes.ClientCapabilities,
516+
spec: FixSpecClientCapabilities<SpecTypes.ClientCapabilities>
517+
) => {
492518
sdk = spec;
493519
spec = sdk;
494520
},
495521
ServerCapabilities: (sdk: SDKTypes.ServerCapabilities, spec: SpecTypes.ServerCapabilities) => {
496522
sdk = spec;
497523
spec = sdk;
498524
},
499-
ClientRequest: (sdk: RemovePassthrough<WithJSONRPCRequest<SDKTypes.ClientRequest>>, spec: SpecTypes.ClientRequest) => {
525+
ClientRequest: (
526+
sdk: RemovePassthrough<WithJSONRPCRequest<SDKTypes.ClientRequest>>,
527+
spec: FixSpecClientRequest<SpecTypes.ClientRequest>
528+
) => {
500529
sdk = spec;
501530
spec = sdk;
502531
},

0 commit comments

Comments
 (0)