@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
43 lines (42 loc) • 1.75 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { isBoolean } from '@sussudio/base/common/types.mjs';
import { RequestService } from '../browser/requestService.mjs';
import { RequestChannelClient } from '../common/requestIpc.mjs';
export class SharedProcessRequestService {
configurationService;
productService;
logService;
browserRequestService;
mainRequestService;
constructor(mainProcessService, configurationService, productService, logService) {
this.configurationService = configurationService;
this.productService = productService;
this.logService = logService;
this.browserRequestService = new RequestService(configurationService, logService);
this.mainRequestService = new RequestChannelClient(mainProcessService.getChannel('request'));
}
request(options, token) {
return this.getRequestService().request(options, token);
}
async resolveProxy(url) {
return this.getRequestService().resolveProxy(url);
}
getRequestService() {
if (this.isMainRequestServiceEnabled()) {
this.logService.trace('Using main request service');
return this.mainRequestService;
}
this.logService.trace('Using browser request service');
return this.browserRequestService;
}
isMainRequestServiceEnabled() {
const value = this.configurationService.getValue('developer.sharedProcess.redirectRequestsToMain');
if (isBoolean(value)) {
return value;
}
return this.productService.quality !== 'stable';
}
}