Merge pull request #328 from iamarcel/main
Pass request _meta to request handlers extra param
This commit is contained in:
commit
747369476a
2 changed files with 18 additions and 10 deletions
|
|
@ -21,6 +21,7 @@ import {
|
|||
RequestId,
|
||||
Result,
|
||||
ServerCapabilities,
|
||||
RequestMeta,
|
||||
} from "../types.js";
|
||||
import { Transport, TransportSendOptions } from "./transport.js";
|
||||
import { AuthInfo } from "../server/auth/types.js";
|
||||
|
|
@ -115,6 +116,11 @@ export type RequestHandlerExtra<SendRequestT extends Request,
|
|||
*/
|
||||
sessionId?: string;
|
||||
|
||||
/**
|
||||
* Metadata from the original request.
|
||||
*/
|
||||
_meta?: RequestMeta;
|
||||
|
||||
/**
|
||||
* The JSON-RPC ID of the request being handled.
|
||||
* This can be useful for tracking or logging purposes.
|
||||
|
|
@ -361,6 +367,7 @@ export abstract class Protocol<
|
|||
const fullExtra: RequestHandlerExtra<SendRequestT, SendNotificationT> = {
|
||||
signal: abortController.signal,
|
||||
sessionId: this._transport?.sessionId,
|
||||
_meta: request.params?._meta,
|
||||
sendNotification:
|
||||
(notification) =>
|
||||
this.notification(notification, { relatedRequestId: request.id }),
|
||||
|
|
|
|||
21
src/types.ts
21
src/types.ts
|
|
@ -19,18 +19,18 @@ export const ProgressTokenSchema = z.union([z.string(), z.number().int()]);
|
|||
*/
|
||||
export const CursorSchema = z.string();
|
||||
|
||||
const RequestMetaSchema = z
|
||||
.object({
|
||||
/**
|
||||
* If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.
|
||||
*/
|
||||
progressToken: z.optional(ProgressTokenSchema),
|
||||
})
|
||||
.passthrough();
|
||||
|
||||
const BaseRequestParamsSchema = z
|
||||
.object({
|
||||
_meta: z.optional(
|
||||
z
|
||||
.object({
|
||||
/**
|
||||
* If specified, the caller is requesting out-of-band progress notifications for this request (as represented by notifications/progress). The value of this parameter is an opaque token that will be attached to any subsequent notifications. The receiver is not obligated to provide these notifications.
|
||||
*/
|
||||
progressToken: z.optional(ProgressTokenSchema),
|
||||
})
|
||||
.passthrough(),
|
||||
),
|
||||
_meta: z.optional(RequestMetaSchema),
|
||||
})
|
||||
.passthrough();
|
||||
|
||||
|
|
@ -1240,6 +1240,7 @@ type Infer<Schema extends ZodTypeAny> = Flatten<z.infer<Schema>>;
|
|||
export type ProgressToken = Infer<typeof ProgressTokenSchema>;
|
||||
export type Cursor = Infer<typeof CursorSchema>;
|
||||
export type Request = Infer<typeof RequestSchema>;
|
||||
export type RequestMeta = Infer<typeof RequestMetaSchema>;
|
||||
export type Notification = Infer<typeof NotificationSchema>;
|
||||
export type Result = Infer<typeof ResultSchema>;
|
||||
export type RequestId = Infer<typeof RequestIdSchema>;
|
||||
|
|
|
|||
Loading…
Reference in a new issue