UNPKG

@sussudio/platform

Version:

Internal APIs for VS Code's service injection the base services.

43 lines (42 loc) 1.75 kB
/*--------------------------------------------------------------------------------------------- * 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'; } }