mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-25 01:41:41 +01:00
32d40cf44e
* chore: bump electron@17.0.0 * Revert "chore: revert to electron@13 (#143851)" This reverts commitdf645f1450. * chore: bump electron@17.1.0 * Revert "ci: fix build with latest node-gyp" This reverts commitc3e948aa30. * chore: revert ci changes for node v16 * chore: update yarn.lock * chore: bump electron@17.1.1
72 lines
2.4 KiB
TypeScript
72 lines
2.4 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import { createConnection, Connection, Disposable } from 'vscode-languageserver/node';
|
|
import { formatError } from '../utils/runner';
|
|
import { RequestService, RuntimeEnvironment, startServer } from '../jsonServer';
|
|
|
|
import { xhr, XHRResponse, configure as configureHttpRequests, getErrorStatusDescription } from 'request-light';
|
|
import { URI as Uri } from 'vscode-uri';
|
|
import * as fs from 'fs';
|
|
|
|
// Create a connection for the server.
|
|
const connection: Connection = createConnection();
|
|
|
|
console.log = connection.console.log.bind(connection.console);
|
|
console.error = connection.console.error.bind(connection.console);
|
|
|
|
process.on('unhandledRejection', (e: any) => {
|
|
connection.console.error(formatError(`Unhandled exception`, e));
|
|
});
|
|
|
|
function getHTTPRequestService(): RequestService {
|
|
return {
|
|
getContent(uri: string, _encoding?: string) {
|
|
const headers = { 'Accept-Encoding': 'gzip, deflate' };
|
|
return xhr({ url: uri, followRedirects: 5, headers }).then(response => {
|
|
return response.responseText;
|
|
}, (error: XHRResponse) => {
|
|
return Promise.reject(error.responseText || getErrorStatusDescription(error.status) || error.toString());
|
|
});
|
|
}
|
|
};
|
|
}
|
|
|
|
function getFileRequestService(): RequestService {
|
|
return {
|
|
getContent(location: string, encoding?: BufferEncoding) {
|
|
return new Promise((c, e) => {
|
|
const uri = Uri.parse(location);
|
|
fs.readFile(uri.fsPath, encoding, (err, buf) => {
|
|
if (err) {
|
|
return e(err);
|
|
}
|
|
c(buf.toString());
|
|
});
|
|
});
|
|
}
|
|
};
|
|
}
|
|
|
|
const runtime: RuntimeEnvironment = {
|
|
timer: {
|
|
setImmediate(callback: (...args: any[]) => void, ...args: any[]): Disposable {
|
|
const handle = setImmediate(callback, ...args);
|
|
return { dispose: () => clearImmediate(handle) };
|
|
},
|
|
setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): Disposable {
|
|
const handle = setTimeout(callback, ms, ...args);
|
|
return { dispose: () => clearTimeout(handle) };
|
|
}
|
|
},
|
|
file: getFileRequestService(),
|
|
http: getHTTPRequestService(),
|
|
configureHttpRequests
|
|
};
|
|
|
|
|
|
|
|
startServer(connection, runtime);
|