constructor()

in packages/web-ide/src/AuthPortChannelController.ts [19:46]


  constructor({ oauthClient, authPort }: AuthPortChannelControllerConstructorOptions) {
    this.#oauthClient = oauthClient;
    this.#authPort = authPort;

    const tokenRequestDisposable = this.#authPort.addMessageListener(
      'authentication-token-request',
      async () => {
        this.#authPort.postMessage({
          key: 'authentication-token-response',
          params: { token: (await this.#oauthClient.getToken()).accessToken },
        });
      },
    );
    const disposeOnTokenChange = this.#oauthClient.onTokenChange(() => {
      this.#authPort.postMessage({ key: 'authentication-token-changed' });
    });
    const disposeAutoRefresh = setupAutoRefresh(this.#oauthClient);

    this.#disposable = {
      dispose: () => {
        tokenRequestDisposable.dispose();
        disposeOnTokenChange();
        disposeAutoRefresh();
      },
    };

    this.#authPort.start();
  }