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();
}