MCPcopy Index your code
hub / github.com/microsoft/vscode-languageserver-node / handleRequest

Function handleRequest

jsonrpc/src/main.ts:501–610  ·  view source on GitHub ↗
(requestMessage: RequestMessage)

Source from the content-addressed store, hash-verified

499 };
500
501 function handleRequest(requestMessage: RequestMessage) {
502 if (isDisposed()) {
503 // we return here silently since we fired an event when the
504 // connection got disposed.
505 return;
506 }
507
508 function reply(resultOrError: any | ResponseError<any>, method: string, startTime: number): void {
509 let message: ResponseMessage = {
510 jsonrpc: version,
511 id: requestMessage.id
512 };
513 if (resultOrError instanceof ResponseError) {
514 message.error = (<ResponseError<any>>resultOrError).toJson();
515 } else {
516 message.result = resultOrError === void 0 ? null : resultOrError;
517 }
518 traceSendingResponse(message, method, startTime);
519 messageWriter.write(message);
520 }
521 function replyError(error: ResponseError<any>, method: string, startTime: number) {
522 let message: ResponseMessage = {
523 jsonrpc: version,
524 id: requestMessage.id,
525 error: error.toJson()
526 };
527 traceSendingResponse(message, method, startTime);
528 messageWriter.write(message);
529 }
530 function replySuccess(result: any, method: string, startTime: number) {
531 // The JSON RPC defines that a response must either have a result or an error
532 // So we can't treat undefined as a valid response result.
533 if (result === void 0) {
534 result = null;
535 }
536 let message: ResponseMessage = {
537 jsonrpc: version,
538 id: requestMessage.id,
539 result: result
540 };
541 traceSendingResponse(message, method, startTime);
542 messageWriter.write(message);
543 }
544
545 traceReceivedRequest(requestMessage);
546
547 let element = requestHandlers[requestMessage.method];
548 let type: MessageType | undefined;
549 let requestHandler: GenericRequestHandler<any, any> | undefined;
550 if (element) {
551 type = element.type;
552 requestHandler = element.handler;
553 }
554 let startTime = Date.now();
555 if (requestHandler || starRequestHandler) {
556 let cancellationSource = new CancellationTokenSource();
557 let tokenKey = String(requestMessage.id);
558 requestTokens[tokenKey] = cancellationSource;

Callers 1

processMessageQueueFunction · 0.85

Calls 5

isDisposedFunction · 0.85
traceReceivedRequestFunction · 0.85
replySuccessFunction · 0.85
replyFunction · 0.85
replyErrorFunction · 0.85

Tested by

no test coverage detected