in extensions/vscode-web-playground/src/extension.ts [2586:2729]
protected dispatchRequest(request: DebugProtocol.Request): void {
const response = new Response(request);
try {
if (request.command === 'initialize') {
const args = <DebugProtocol.InitializeRequestArguments>request.arguments;
if (typeof args.linesStartAt1 === 'boolean') {
this._clientLinesStartAt1 = args.linesStartAt1;
}
if (typeof args.columnsStartAt1 === 'boolean') {
this._clientColumnsStartAt1 = args.columnsStartAt1;
}
if (args.pathFormat !== 'path') {
this.sendErrorResponse(response, 2018, 'debug adapter only supports native paths', null, ErrorDestination.Telemetry);
} else {
const initializeResponse = <DebugProtocol.InitializeResponse>response;
initializeResponse.body = {};
this.initializeRequest(initializeResponse, args);
}
} else if (request.command === 'launch') {
this.launchRequest(<DebugProtocol.LaunchResponse>response, request.arguments, request);
} else if (request.command === 'attach') {
this.attachRequest(<DebugProtocol.AttachResponse>response, request.arguments, request);
} else if (request.command === 'disconnect') {
this.disconnectRequest(<DebugProtocol.DisconnectResponse>response, request.arguments, request);
} else if (request.command === 'terminate') {
this.terminateRequest(<DebugProtocol.TerminateResponse>response, request.arguments, request);
} else if (request.command === 'restart') {
this.restartRequest(<DebugProtocol.RestartResponse>response, request.arguments, request);
} else if (request.command === 'setBreakpoints') {
this.setBreakPointsRequest(<DebugProtocol.SetBreakpointsResponse>response, request.arguments, request);
} else if (request.command === 'setFunctionBreakpoints') {
this.setFunctionBreakPointsRequest(<DebugProtocol.SetFunctionBreakpointsResponse>response, request.arguments, request);
} else if (request.command === 'setExceptionBreakpoints') {
this.setExceptionBreakPointsRequest(<DebugProtocol.SetExceptionBreakpointsResponse>response, request.arguments, request);
} else if (request.command === 'configurationDone') {
this.configurationDoneRequest(<DebugProtocol.ConfigurationDoneResponse>response, request.arguments, request);
} else if (request.command === 'continue') {
this.continueRequest(<DebugProtocol.ContinueResponse>response, request.arguments, request);
} else if (request.command === 'next') {
this.nextRequest(<DebugProtocol.NextResponse>response, request.arguments, request);
} else if (request.command === 'stepIn') {
this.stepInRequest(<DebugProtocol.StepInResponse>response, request.arguments, request);
} else if (request.command === 'stepOut') {
this.stepOutRequest(<DebugProtocol.StepOutResponse>response, request.arguments, request);
} else if (request.command === 'stepBack') {
this.stepBackRequest(<DebugProtocol.StepBackResponse>response, request.arguments, request);
} else if (request.command === 'reverseContinue') {
this.reverseContinueRequest(<DebugProtocol.ReverseContinueResponse>response, request.arguments, request);
} else if (request.command === 'restartFrame') {
this.restartFrameRequest(<DebugProtocol.RestartFrameResponse>response, request.arguments, request);
} else if (request.command === 'goto') {
this.gotoRequest(<DebugProtocol.GotoResponse>response, request.arguments, request);
} else if (request.command === 'pause') {
this.pauseRequest(<DebugProtocol.PauseResponse>response, request.arguments, request);
} else if (request.command === 'stackTrace') {
this.stackTraceRequest(<DebugProtocol.StackTraceResponse>response, request.arguments, request);
} else if (request.command === 'scopes') {
this.scopesRequest(<DebugProtocol.ScopesResponse>response, request.arguments, request);
} else if (request.command === 'variables') {
this.variablesRequest(<DebugProtocol.VariablesResponse>response, request.arguments, request);
} else if (request.command === 'setVariable') {
this.setVariableRequest(<DebugProtocol.SetVariableResponse>response, request.arguments, request);
} else if (request.command === 'setExpression') {
this.setExpressionRequest(<DebugProtocol.SetExpressionResponse>response, request.arguments, request);
} else if (request.command === 'source') {
this.sourceRequest(<DebugProtocol.SourceResponse>response, request.arguments, request);
} else if (request.command === 'threads') {
this.threadsRequest(<DebugProtocol.ThreadsResponse>response, request);
} else if (request.command === 'terminateThreads') {
this.terminateThreadsRequest(<DebugProtocol.TerminateThreadsResponse>response, request.arguments, request);
} else if (request.command === 'evaluate') {
this.evaluateRequest(<DebugProtocol.EvaluateResponse>response, request.arguments, request);
} else if (request.command === 'stepInTargets') {
this.stepInTargetsRequest(<DebugProtocol.StepInTargetsResponse>response, request.arguments, request);
} else if (request.command === 'gotoTargets') {
this.gotoTargetsRequest(<DebugProtocol.GotoTargetsResponse>response, request.arguments, request);
} else if (request.command === 'completions') {
this.completionsRequest(<DebugProtocol.CompletionsResponse>response, request.arguments, request);
} else if (request.command === 'exceptionInfo') {
this.exceptionInfoRequest(<DebugProtocol.ExceptionInfoResponse>response, request.arguments, request);
} else if (request.command === 'loadedSources') {
this.loadedSourcesRequest(<DebugProtocol.LoadedSourcesResponse>response, request.arguments, request);
} else if (request.command === 'dataBreakpointInfo') {
this.dataBreakpointInfoRequest(<DebugProtocol.DataBreakpointInfoResponse>response, request.arguments, request);
} else if (request.command === 'setDataBreakpoints') {
this.setDataBreakpointsRequest(<DebugProtocol.SetDataBreakpointsResponse>response, request.arguments, request);
} else if (request.command === 'readMemory') {
this.readMemoryRequest(<DebugProtocol.ReadMemoryResponse>response, request.arguments, request);
} else if (request.command === 'disassemble') {
this.disassembleRequest(<DebugProtocol.DisassembleResponse>response, request.arguments, request);
} else if (request.command === 'cancel') {
this.cancelRequest(<DebugProtocol.CancelResponse>response, request.arguments, request);
} else if (request.command === 'breakpointLocations') {
this.breakpointLocationsRequest(<DebugProtocol.BreakpointLocationsResponse>response, request.arguments, request);
} else {
this.customRequest(request.command, <DebugProtocol.Response>response, request.arguments, request);
}
} catch (e) {
this.sendErrorResponse(response, 1104, '{_stack}', { _exception: e.message, _stack: e.stack }, ErrorDestination.Telemetry);
}
}