monaco-languageclient icon indicating copy to clipboard operation
monaco-languageclient copied to clipboard

How to obtain backend error messages, And that are not displayed in the console?

Open evilpose opened this issue 1 year ago • 3 comments

I want to be able to proactively capture this error, so that it is not displayed in the console, but in the form of a UI on the page. I couldn't find a similar hook, can you help me check this problem?

image image

export const createLanguageClient = (
  transports: MessageTransports,
): MonacoLanguageClient => {
  return new MonacoLanguageClient({
    name: 'xxx Language Client',
    clientOptions: {
      documentSelector: ['isogql'],
      errorHandler: {
        error: () => ({ action: ErrorAction.Continue }),
        closed: () => ({ action: CloseAction.Restart }),
      },
    },
    connectionProvider: {
      get: () => {
        return Promise.resolve(transports);
      },
    },
  });
};

export const createWebSocket = (url: string): WebSocket => {
  const webSocket = new WebSocket(url);
  webSocket.onopen = () => {
    const socket = toSocket(webSocket);
    const reader = new WebSocketMessageReader(socket);
    const writer = new WebSocketMessageWriter(socket);
    const languageClient = createLanguageClient({
      reader,
      writer,
    });
    languageClient.start();
    reader.onClose(() => {
      createWebSocket(url);
    });
  };
  return webSocket;
};


evilpose avatar Oct 17 '24 12:10 evilpose