@teambit/ts-server 0.0.60 → 0.0.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/format-diagnostics.js +37 -30
- package/dist/format-diagnostics.js.map +1 -1
- package/dist/index.js +18 -4
- package/dist/index.js.map +1 -1
- package/dist/modules-resolver.js +43 -45
- package/dist/modules-resolver.js.map +1 -1
- package/dist/process-based-tsserver.js +238 -227
- package/dist/process-based-tsserver.js.map +1 -1
- package/dist/ts-server-client.d.ts +1 -1
- package/dist/ts-server-client.js +348 -328
- package/dist/ts-server-client.js.map +1 -1
- package/dist/tsp-command-types.js +170 -166
- package/dist/tsp-command-types.js.map +1 -1
- package/dist/utils.js +15 -11
- package/dist/utils.js.map +1 -1
- package/package.json +21 -6
- package/types/asset.d.ts +15 -3
- package/dist/preview-1736711473672.js +0 -7
|
@@ -1,252 +1,263 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ProcessBasedTsServer = void 0;
|
|
7
|
+
function fs() {
|
|
8
|
+
const data = _interopRequireWildcard(require("fs"));
|
|
9
|
+
fs = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function path() {
|
|
15
|
+
const data = _interopRequireWildcard(require("path"));
|
|
16
|
+
path = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function cp() {
|
|
22
|
+
const data = _interopRequireWildcard(require("child_process"));
|
|
23
|
+
cp = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function readline() {
|
|
29
|
+
const data = _interopRequireWildcard(require("readline"));
|
|
30
|
+
readline = function () {
|
|
31
|
+
return data;
|
|
32
|
+
};
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
35
|
+
function decoder() {
|
|
36
|
+
const data = _interopRequireWildcard(require("string_decoder"));
|
|
37
|
+
decoder = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
function _tempy() {
|
|
43
|
+
const data = _interopRequireDefault(require("tempy"));
|
|
44
|
+
_tempy = function () {
|
|
45
|
+
return data;
|
|
46
|
+
};
|
|
47
|
+
return data;
|
|
48
|
+
}
|
|
49
|
+
function _utils() {
|
|
50
|
+
const data = require("./utils");
|
|
51
|
+
_utils = function () {
|
|
52
|
+
return data;
|
|
53
|
+
};
|
|
54
|
+
return data;
|
|
55
|
+
}
|
|
56
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
57
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
58
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
2
59
|
/**
|
|
3
60
|
* part of this file was copied over from https://github.com/typescript-language-server/typescript-language-server/blob/master/src/tsp-client.ts
|
|
4
61
|
*/
|
|
5
|
-
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
-
}
|
|
11
|
-
Object.defineProperty(o, k2, desc);
|
|
12
|
-
}) : (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
-
}) : function(o, v) {
|
|
19
|
-
o["default"] = v;
|
|
20
|
-
});
|
|
21
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
-
if (mod && mod.__esModule) return mod;
|
|
23
|
-
var result = {};
|
|
24
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
-
__setModuleDefault(result, mod);
|
|
26
|
-
return result;
|
|
27
|
-
};
|
|
28
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
29
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
30
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
31
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
32
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
33
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
34
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
38
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
39
|
-
};
|
|
40
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
-
exports.ProcessBasedTsServer = void 0;
|
|
62
|
+
|
|
42
63
|
/*
|
|
43
64
|
* Copyright (C) 2017, 2018 TypeFox and others.
|
|
44
65
|
*
|
|
45
66
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
|
46
67
|
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
47
68
|
*/
|
|
48
|
-
|
|
49
|
-
const path = __importStar(require("path"));
|
|
50
|
-
const cp = __importStar(require("child_process"));
|
|
51
|
-
const readline = __importStar(require("readline"));
|
|
52
|
-
const decoder = __importStar(require("string_decoder"));
|
|
53
|
-
const tempy_1 = __importDefault(require("tempy"));
|
|
54
|
-
const tsp_command_types_1 = require("./tsp-command-types");
|
|
55
|
-
const utils_1 = require("./utils");
|
|
69
|
+
|
|
56
70
|
class ProcessBasedTsServer {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
}
|
|
148
|
-
try {
|
|
149
|
-
const result = yield request;
|
|
150
|
-
onCancelled === null || onCancelled === void 0 ? void 0 : onCancelled.dispose();
|
|
151
|
-
return result;
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
this.logger.error(`Error in request: ${error}`);
|
|
155
|
-
throw error;
|
|
71
|
+
seq = 0;
|
|
72
|
+
deferreds = {};
|
|
73
|
+
constructor(options, tsServerArgs = {}) {
|
|
74
|
+
this.options = options;
|
|
75
|
+
this.tsServerArgs = tsServerArgs;
|
|
76
|
+
this.logger = options.logger;
|
|
77
|
+
}
|
|
78
|
+
async restart() {
|
|
79
|
+
this.kill();
|
|
80
|
+
await this.start();
|
|
81
|
+
}
|
|
82
|
+
start() {
|
|
83
|
+
return new Promise((resolve, reject) => {
|
|
84
|
+
if (this.tsServerProcess) {
|
|
85
|
+
reject(new Error('server already started'));
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const {
|
|
89
|
+
tsserverPath
|
|
90
|
+
} = this.options;
|
|
91
|
+
const {
|
|
92
|
+
logFile,
|
|
93
|
+
logVerbosity,
|
|
94
|
+
maxTsServerMemory,
|
|
95
|
+
globalPlugins,
|
|
96
|
+
pluginProbeLocations
|
|
97
|
+
} = this.tsServerArgs;
|
|
98
|
+
const args = [];
|
|
99
|
+
if (logFile) {
|
|
100
|
+
args.push('--logFile', logFile);
|
|
101
|
+
}
|
|
102
|
+
if (logVerbosity) {
|
|
103
|
+
args.push('--logVerbosity', logVerbosity);
|
|
104
|
+
}
|
|
105
|
+
if (globalPlugins && globalPlugins.length) {
|
|
106
|
+
args.push('--globalPlugins', globalPlugins.join(','));
|
|
107
|
+
}
|
|
108
|
+
if (pluginProbeLocations && pluginProbeLocations.length) {
|
|
109
|
+
args.push('--pluginProbeLocations', pluginProbeLocations.join(','));
|
|
110
|
+
}
|
|
111
|
+
this.cancellationPipeName = _tempy().default.file({
|
|
112
|
+
name: 'tscancellation'
|
|
113
|
+
});
|
|
114
|
+
args.push('--cancellationPipeName', `${this.cancellationPipeName}*`);
|
|
115
|
+
this.logger.info(`Starting tsserver : '${tsserverPath} ${args.join(' ')}'`);
|
|
116
|
+
const tsserverPathIsModule = path().extname(tsserverPath) === '.js';
|
|
117
|
+
const options = {
|
|
118
|
+
silent: true,
|
|
119
|
+
execArgv: maxTsServerMemory ? [`--max-old-space-size=${maxTsServerMemory}`] : []
|
|
120
|
+
};
|
|
121
|
+
this.tsServerProcess = tsserverPathIsModule ? cp().fork(tsserverPath, args, options) : cp().spawn(tsserverPath, args);
|
|
122
|
+
this.readlineInterface = readline().createInterface(this.tsServerProcess.stdout, this.tsServerProcess.stdin, undefined);
|
|
123
|
+
process.on('exit', () => {
|
|
124
|
+
this.kill();
|
|
125
|
+
reject(new Error('TSServer was killed'));
|
|
126
|
+
});
|
|
127
|
+
this.readlineInterface.on('line', line => {
|
|
128
|
+
this.processMessage(line, resolve, reject);
|
|
129
|
+
});
|
|
130
|
+
const dec = new (decoder().StringDecoder)('utf-8');
|
|
131
|
+
this.tsServerProcess.stderr?.addListener('data', data => {
|
|
132
|
+
const stringMsg = typeof data === 'string' ? data : dec.write(data);
|
|
133
|
+
this.logger.error(stringMsg);
|
|
134
|
+
reject(new Error(stringMsg));
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
async notify(command, args) {
|
|
139
|
+
await this.ensureServerIsRunning();
|
|
140
|
+
this.sendMessage(command, true, args);
|
|
141
|
+
}
|
|
142
|
+
async request(command, args, token) {
|
|
143
|
+
await this.ensureServerIsRunning();
|
|
144
|
+
this.sendMessage(command, false, args);
|
|
145
|
+
const seq = this.seq;
|
|
146
|
+
const deferred = new (_utils().Deferred)();
|
|
147
|
+
this.deferreds[seq] = deferred;
|
|
148
|
+
const request = deferred.promise;
|
|
149
|
+
let onCancelled;
|
|
150
|
+
if (token) {
|
|
151
|
+
onCancelled = token.onCancellationRequested(() => {
|
|
152
|
+
onCancelled.dispose();
|
|
153
|
+
if (this.cancellationPipeName) {
|
|
154
|
+
const requestCancellationPipeName = `${this.cancellationPipeName}${seq}`;
|
|
155
|
+
fs().writeFile(requestCancellationPipeName, '', err => {
|
|
156
|
+
if (!err) {
|
|
157
|
+
// eslint-disable-next-line
|
|
158
|
+
request.then(() => fs().unlink(requestCancellationPipeName, () => {
|
|
159
|
+
/* no-op */
|
|
160
|
+
}));
|
|
156
161
|
}
|
|
157
|
-
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
});
|
|
158
165
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
+
try {
|
|
167
|
+
const result = await request;
|
|
168
|
+
onCancelled?.dispose();
|
|
169
|
+
return result;
|
|
170
|
+
} catch (error) {
|
|
171
|
+
this.logger.error(`Error in request: ${error}`);
|
|
172
|
+
throw error;
|
|
166
173
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
174
|
+
}
|
|
175
|
+
kill() {
|
|
176
|
+
this.tsServerProcess?.kill();
|
|
177
|
+
this.tsServerProcess?.stdin?.destroy();
|
|
178
|
+
this.readlineInterface?.close();
|
|
179
|
+
this.tsServerProcess = null;
|
|
180
|
+
this.readlineInterface = null;
|
|
181
|
+
}
|
|
182
|
+
log(msg, obj = {}) {
|
|
183
|
+
msg = `[tsserver] ${msg}`;
|
|
184
|
+
if (this.options.logToConsole) {
|
|
185
|
+
this.logger.console(`${msg} ${JSON.stringify(obj, undefined, 4)}`);
|
|
186
|
+
} else {
|
|
187
|
+
this.logger.trace(msg, obj);
|
|
175
188
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
}
|
|
187
|
-
const serializedRequest = `${JSON.stringify(request)}\n`;
|
|
188
|
-
(_b = (_a = this.tsServerProcess) === null || _a === void 0 ? void 0 : _a.stdin) === null || _b === void 0 ? void 0 : _b.write(serializedRequest);
|
|
189
|
-
this.log(notification ? 'notify' : 'request', request);
|
|
189
|
+
}
|
|
190
|
+
sendMessage(command, notification, args) {
|
|
191
|
+
this.seq += 1;
|
|
192
|
+
const request = {
|
|
193
|
+
command,
|
|
194
|
+
seq: this.seq,
|
|
195
|
+
type: 'request'
|
|
196
|
+
};
|
|
197
|
+
if (args) {
|
|
198
|
+
request.arguments = args;
|
|
190
199
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}
|
|
200
|
-
catch (_a) {
|
|
201
|
-
// If the message isn't valid JSON, it's not a valid tsserver message. Reject the promise.
|
|
202
|
-
reject === null || reject === void 0 ? void 0 : reject(new Error(`Received invalid message from TSServer: ${untrimmedMessageString}`));
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
this.log('processMessage', message);
|
|
206
|
-
if (this.isEvent(message)) {
|
|
207
|
-
resolve === null || resolve === void 0 ? void 0 : resolve();
|
|
208
|
-
}
|
|
209
|
-
if (this.isResponse(message)) {
|
|
210
|
-
this.resolveResponse(message, message.request_seq, message.success);
|
|
211
|
-
}
|
|
212
|
-
else if (this.isEvent(message)) {
|
|
213
|
-
if (this.isRequestCompletedEvent(message)) {
|
|
214
|
-
this.resolveResponse(message, message.body.request_seq, true);
|
|
215
|
-
}
|
|
216
|
-
else if (this.options.onEvent) {
|
|
217
|
-
this.options.onEvent(message);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
200
|
+
const serializedRequest = `${JSON.stringify(request)}\n`;
|
|
201
|
+
this.tsServerProcess?.stdin?.write(serializedRequest);
|
|
202
|
+
this.log(notification ? 'notify' : 'request', request);
|
|
203
|
+
}
|
|
204
|
+
processMessage(untrimmedMessageString, resolve, reject) {
|
|
205
|
+
const messageString = untrimmedMessageString.trim();
|
|
206
|
+
if (!messageString || messageString.startsWith('Content-Length:')) {
|
|
207
|
+
return;
|
|
220
208
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
else {
|
|
229
|
-
this.deferreds[request_seq].reject(message);
|
|
230
|
-
}
|
|
231
|
-
delete this.deferreds[request_seq];
|
|
232
|
-
}
|
|
209
|
+
let message;
|
|
210
|
+
try {
|
|
211
|
+
message = JSON.parse(messageString);
|
|
212
|
+
} catch {
|
|
213
|
+
// If the message isn't valid JSON, it's not a valid tsserver message. Reject the promise.
|
|
214
|
+
reject?.(new Error(`Received invalid message from TSServer: ${untrimmedMessageString}`));
|
|
215
|
+
return;
|
|
233
216
|
}
|
|
234
|
-
|
|
235
|
-
|
|
217
|
+
this.log('processMessage', message);
|
|
218
|
+
if (this.isEvent(message)) {
|
|
219
|
+
resolve?.();
|
|
236
220
|
}
|
|
237
|
-
isResponse(message) {
|
|
238
|
-
|
|
221
|
+
if (this.isResponse(message)) {
|
|
222
|
+
this.resolveResponse(message, message.request_seq, message.success);
|
|
223
|
+
} else if (this.isEvent(message)) {
|
|
224
|
+
if (this.isRequestCompletedEvent(message)) {
|
|
225
|
+
this.resolveResponse(message, message.body.request_seq, true);
|
|
226
|
+
} else if (this.options.onEvent) {
|
|
227
|
+
this.options.onEvent(message);
|
|
228
|
+
}
|
|
239
229
|
}
|
|
240
|
-
|
|
241
|
-
|
|
230
|
+
}
|
|
231
|
+
resolveResponse(message, request_seq, success) {
|
|
232
|
+
const deferred = this.deferreds[request_seq];
|
|
233
|
+
this.log('request completed', {
|
|
234
|
+
request_seq,
|
|
235
|
+
success
|
|
236
|
+
});
|
|
237
|
+
if (deferred) {
|
|
238
|
+
if (success) {
|
|
239
|
+
this.deferreds[request_seq].resolve(message);
|
|
240
|
+
} else {
|
|
241
|
+
this.deferreds[request_seq].reject(message);
|
|
242
|
+
}
|
|
243
|
+
delete this.deferreds[request_seq];
|
|
242
244
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
245
|
+
}
|
|
246
|
+
isEvent(message) {
|
|
247
|
+
return message.type === 'event';
|
|
248
|
+
}
|
|
249
|
+
isResponse(message) {
|
|
250
|
+
return message.type === 'response';
|
|
251
|
+
}
|
|
252
|
+
isRequestCompletedEvent(message) {
|
|
253
|
+
return this.isEvent(message) && message.event === 'requestCompleted';
|
|
254
|
+
}
|
|
255
|
+
async ensureServerIsRunning() {
|
|
256
|
+
if (!this.tsServerProcess) {
|
|
257
|
+
await this.restart();
|
|
249
258
|
}
|
|
259
|
+
}
|
|
250
260
|
}
|
|
251
261
|
exports.ProcessBasedTsServer = ProcessBasedTsServer;
|
|
262
|
+
|
|
252
263
|
//# sourceMappingURL=process-based-tsserver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-based-tsserver.js","sourceRoot":"","sources":["../process-based-tsserver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["fs","data","_interopRequireWildcard","require","path","cp","readline","decoder","_tempy","_interopRequireDefault","_utils","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ProcessBasedTsServer","seq","deferreds","constructor","options","tsServerArgs","logger","restart","kill","start","Promise","resolve","reject","tsServerProcess","Error","tsserverPath","logFile","logVerbosity","maxTsServerMemory","globalPlugins","pluginProbeLocations","args","push","length","join","cancellationPipeName","tempy","file","name","info","tsserverPathIsModule","extname","silent","execArgv","fork","spawn","readlineInterface","createInterface","stdout","stdin","undefined","process","on","line","processMessage","dec","StringDecoder","stderr","addListener","stringMsg","write","error","notify","command","ensureServerIsRunning","sendMessage","request","token","deferred","Deferred","promise","onCancelled","onCancellationRequested","dispose","requestCancellationPipeName","writeFile","err","then","unlink","result","destroy","close","log","msg","obj","logToConsole","console","JSON","stringify","trace","notification","type","arguments","serializedRequest","untrimmedMessageString","messageString","trim","startsWith","message","parse","isEvent","isResponse","resolveResponse","request_seq","success","isRequestCompletedEvent","body","onEvent","event","exports"],"sources":["process-based-tsserver.ts"],"sourcesContent":["/**\n * part of this file was copied over from https://github.com/typescript-language-server/typescript-language-server/blob/master/src/tsp-client.ts\n */\n\n/*\n * Copyright (C) 2017, 2018 TypeFox and others.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport * as cp from 'child_process';\nimport * as readline from 'readline';\nimport { Logger } from '@teambit/logger';\nimport { Readable, Writable } from 'stream';\nimport * as decoder from 'string_decoder';\nimport type ts from 'typescript/lib/tsserverlibrary';\nimport tempy from 'tempy';\nimport { CancellationToken } from 'vscode-jsonrpc';\nimport { CommandTypes } from './tsp-command-types';\nimport { Deferred } from './utils';\n\nexport interface TspClientOptions {\n logger: Logger;\n tsserverPath: string;\n logToConsole?: boolean;\n onEvent?: (event: ts.server.protocol.Event) => void;\n}\n\nexport interface TsServerArgs {\n logFile?: string;\n logVerbosity?: string;\n maxTsServerMemory?: number;\n globalPlugins?: string[];\n pluginProbeLocations?: string[];\n}\n\nexport interface StandardTsServerRequests {\n [CommandTypes.ApplyCodeActionCommand]: [\n ts.server.protocol.ApplyCodeActionCommandRequestArgs,\n ts.server.protocol.ApplyCodeActionCommandResponse,\n ];\n [CommandTypes.CompletionDetails]: [\n ts.server.protocol.CompletionDetailsRequestArgs,\n ts.server.protocol.CompletionDetailsResponse,\n ];\n [CommandTypes.CompletionInfo]: [ts.server.protocol.CompletionsRequestArgs, ts.server.protocol.CompletionInfoResponse];\n [CommandTypes.Configure]: [ts.server.protocol.ConfigureRequestArguments, ts.server.protocol.ConfigureResponse];\n [CommandTypes.Definition]: [ts.server.protocol.FileLocationRequestArgs, ts.server.protocol.DefinitionResponse];\n [CommandTypes.DefinitionAndBoundSpan]: [\n ts.server.protocol.FileLocationRequestArgs,\n ts.server.protocol.DefinitionInfoAndBoundSpanResponse,\n ];\n [CommandTypes.DocCommentTemplate]: [\n ts.server.protocol.FileLocationRequestArgs,\n ts.server.protocol.DocCommandTemplateResponse,\n ];\n [CommandTypes.DocumentHighlights]: [\n ts.server.protocol.DocumentHighlightsRequestArgs,\n ts.server.protocol.DocumentHighlightsResponse,\n ];\n [CommandTypes.Format]: [ts.server.protocol.FormatRequestArgs, ts.server.protocol.FormatResponse];\n [CommandTypes.Formatonkey]: [ts.server.protocol.FormatOnKeyRequestArgs, ts.server.protocol.FormatResponse];\n [CommandTypes.GetApplicableRefactors]: [\n ts.server.protocol.GetApplicableRefactorsRequestArgs,\n ts.server.protocol.GetApplicableRefactorsResponse,\n ];\n [CommandTypes.GetCodeFixes]: [ts.server.protocol.CodeFixRequestArgs, ts.server.protocol.CodeFixResponse];\n [CommandTypes.GetCombinedCodeFix]: [\n ts.server.protocol.GetCombinedCodeFixRequestArgs,\n ts.server.protocol.GetCombinedCodeFixResponse,\n ];\n [CommandTypes.GetEditsForFileRename]: [\n ts.server.protocol.GetEditsForFileRenameRequestArgs,\n ts.server.protocol.GetEditsForFileRenameResponse,\n ];\n [CommandTypes.GetEditsForRefactor]: [\n ts.server.protocol.GetEditsForRefactorRequestArgs,\n ts.server.protocol.GetEditsForRefactorResponse,\n ];\n [CommandTypes.GetOutliningSpans]: [ts.server.protocol.FileRequestArgs, ts.server.protocol.OutliningSpansResponse];\n [CommandTypes.GetSupportedCodeFixes]: [null, ts.server.protocol.GetSupportedCodeFixesResponse];\n [CommandTypes.Implementation]: [\n ts.server.protocol.FileLocationRequestArgs,\n ts.server.protocol.ImplementationResponse,\n ];\n [CommandTypes.JsxClosingTag]: [ts.server.protocol.JsxClosingTagRequestArgs, ts.server.protocol.JsxClosingTagResponse];\n [CommandTypes.Navto]: [ts.server.protocol.NavtoRequestArgs, ts.server.protocol.NavtoResponse];\n [CommandTypes.NavTree]: [ts.server.protocol.FileRequestArgs, ts.server.protocol.NavTreeResponse];\n [CommandTypes.OrganizeImports]: [\n ts.server.protocol.OrganizeImportsRequestArgs,\n ts.server.protocol.OrganizeImportsResponse,\n ];\n [CommandTypes.PrepareCallHierarchy]: [\n ts.server.protocol.FileLocationRequestArgs,\n ts.server.protocol.PrepareCallHierarchyResponse,\n ];\n [CommandTypes.ProvideCallHierarchyIncomingCalls]: [\n ts.server.protocol.FileLocationRequestArgs,\n ts.server.protocol.ProvideCallHierarchyIncomingCallsResponse,\n ];\n [CommandTypes.ProvideCallHierarchyOutgoingCalls]: [\n ts.server.protocol.FileLocationRequestArgs,\n ts.server.protocol.ProvideCallHierarchyOutgoingCallsResponse,\n ];\n [CommandTypes.ProjectInfo]: [ts.server.protocol.ProjectInfoRequestArgs, ts.server.protocol.ProjectInfoResponse];\n [CommandTypes.ProvideInlayHints]: [ts.server.protocol.InlayHintsRequestArgs, ts.server.protocol.InlayHintsResponse];\n [CommandTypes.Quickinfo]: [ts.server.protocol.FileLocationRequestArgs, ts.server.protocol.QuickInfoResponse];\n [CommandTypes.References]: [ts.server.protocol.FileLocationRequestArgs, ts.server.protocol.ReferencesResponse];\n [CommandTypes.Rename]: [ts.server.protocol.RenameRequestArgs, ts.server.protocol.RenameResponse];\n [CommandTypes.SelectionRange]: [\n ts.server.protocol.SelectionRangeRequestArgs,\n ts.server.protocol.SelectionRangeResponse,\n ];\n [CommandTypes.SignatureHelp]: [ts.server.protocol.SignatureHelpRequestArgs, ts.server.protocol.SignatureHelpResponse];\n [CommandTypes.TypeDefinition]: [\n ts.server.protocol.FileLocationRequestArgs,\n ts.server.protocol.TypeDefinitionResponse,\n ];\n [CommandTypes.UpdateOpen]: [ts.server.protocol.UpdateOpenRequestArgs, ts.server.protocol.Response];\n}\n\nexport interface NoResponseTsServerRequests {\n [CommandTypes.Change]: [ts.server.protocol.ChangeRequestArgs, null];\n [CommandTypes.Close]: [ts.server.protocol.FileRequestArgs, null];\n [CommandTypes.CompilerOptionsForInferredProjects]: [\n ts.server.protocol.SetCompilerOptionsForInferredProjectsArgs,\n ts.server.protocol.SetCompilerOptionsForInferredProjectsResponse,\n ];\n [CommandTypes.Configure]: [ts.server.protocol.ConfigureRequestArguments, ts.server.protocol.ConfigureResponse];\n [CommandTypes.ConfigurePlugin]: [\n ts.server.protocol.ConfigurePluginRequestArguments,\n ts.server.protocol.ConfigurePluginResponse,\n ];\n [CommandTypes.Open]: [ts.server.protocol.OpenRequestArgs, null];\n}\n\nexport interface AsyncTsServerRequests {\n [CommandTypes.Geterr]: [ts.server.protocol.GeterrRequestArgs, ts.server.protocol.Response];\n [CommandTypes.GeterrForProject]: [ts.server.protocol.GeterrForProjectRequestArgs, ts.server.protocol.Response];\n}\n\nexport type TypeScriptRequestTypes = StandardTsServerRequests & NoResponseTsServerRequests & AsyncTsServerRequests;\n\nexport class ProcessBasedTsServer {\n private readlineInterface: readline.ReadLine | null;\n private tsServerProcess: cp.ChildProcess | null;\n private seq = 0;\n\n private readonly deferreds: {\n [seq: number]: Deferred<any>;\n } = {};\n\n private logger: Logger;\n private cancellationPipeName: string | undefined;\n\n constructor(\n private options: TspClientOptions,\n private tsServerArgs: TsServerArgs = {}\n ) {\n this.logger = options.logger;\n }\n\n async restart() {\n this.kill();\n await this.start();\n }\n\n start() {\n return new Promise<void>((resolve, reject) => {\n if (this.tsServerProcess) {\n reject(new Error('server already started'));\n return;\n }\n\n const { tsserverPath } = this.options;\n const { logFile, logVerbosity, maxTsServerMemory, globalPlugins, pluginProbeLocations } = this.tsServerArgs;\n const args: string[] = [];\n if (logFile) {\n args.push('--logFile', logFile);\n }\n if (logVerbosity) {\n args.push('--logVerbosity', logVerbosity);\n }\n if (globalPlugins && globalPlugins.length) {\n args.push('--globalPlugins', globalPlugins.join(','));\n }\n if (pluginProbeLocations && pluginProbeLocations.length) {\n args.push('--pluginProbeLocations', pluginProbeLocations.join(','));\n }\n this.cancellationPipeName = tempy.file({ name: 'tscancellation' });\n args.push('--cancellationPipeName', `${this.cancellationPipeName}*`);\n this.logger.info(`Starting tsserver : '${tsserverPath} ${args.join(' ')}'`);\n const tsserverPathIsModule = path.extname(tsserverPath) === '.js';\n const options = {\n silent: true,\n execArgv: maxTsServerMemory ? [`--max-old-space-size=${maxTsServerMemory}`] : [],\n };\n this.tsServerProcess = tsserverPathIsModule ? cp.fork(tsserverPath, args, options) : cp.spawn(tsserverPath, args);\n\n this.readlineInterface = readline.createInterface(\n this.tsServerProcess.stdout as Readable,\n this.tsServerProcess.stdin as Writable,\n undefined\n );\n process.on('exit', () => {\n this.kill();\n reject(new Error('TSServer was killed'));\n });\n\n this.readlineInterface.on('line', (line) => {\n this.processMessage(line, resolve, reject);\n });\n\n const dec = new decoder.StringDecoder('utf-8');\n this.tsServerProcess.stderr?.addListener('data', (data) => {\n const stringMsg = typeof data === 'string' ? data : dec.write(data);\n this.logger.error(stringMsg);\n reject(new Error(stringMsg));\n });\n });\n }\n\n async notify(command: CommandTypes.Open, args: ts.server.protocol.OpenRequestArgs): Promise<void>;\n async notify(command: CommandTypes.Close, args: ts.server.protocol.FileRequestArgs): Promise<void>;\n async notify(command: CommandTypes.Saveto, args: ts.server.protocol.SavetoRequestArgs): Promise<void>;\n async notify(command: CommandTypes.Change, args: ts.server.protocol.ChangeRequestArgs): Promise<void>;\n async notify(command: string, args: any): Promise<void> {\n await this.ensureServerIsRunning();\n this.sendMessage(command, true, args);\n }\n\n async request<K extends keyof TypeScriptRequestTypes>(\n command: K,\n args: TypeScriptRequestTypes[K][0],\n token?: CancellationToken\n ): Promise<TypeScriptRequestTypes[K][1]> {\n await this.ensureServerIsRunning();\n this.sendMessage(command, false, args);\n const seq = this.seq;\n const deferred = new Deferred<TypeScriptRequestTypes[K][1]>();\n this.deferreds[seq] = deferred;\n const request = deferred.promise;\n\n let onCancelled;\n if (token) {\n onCancelled = token.onCancellationRequested(() => {\n onCancelled.dispose();\n if (this.cancellationPipeName) {\n const requestCancellationPipeName = `${this.cancellationPipeName}${seq}`;\n fs.writeFile(requestCancellationPipeName, '', (err) => {\n if (!err) {\n // eslint-disable-next-line\n request.then(() =>\n fs.unlink(requestCancellationPipeName, () => {\n /* no-op */\n })\n );\n }\n });\n }\n });\n }\n\n try {\n const result = await request;\n onCancelled?.dispose();\n return result;\n } catch (error) {\n this.logger.error(`Error in request: ${error}`);\n throw error;\n }\n }\n\n kill() {\n this.tsServerProcess?.kill();\n this.tsServerProcess?.stdin?.destroy();\n this.readlineInterface?.close();\n this.tsServerProcess = null;\n this.readlineInterface = null;\n }\n\n private log(msg: string, obj: Record<string, any> = {}) {\n msg = `[tsserver] ${msg}`;\n if (this.options.logToConsole) {\n this.logger.console(`${msg} ${JSON.stringify(obj, undefined, 4)}`);\n } else {\n this.logger.trace(msg, obj);\n }\n }\n\n protected sendMessage(command: string, notification: boolean, args?: any): void {\n this.seq += 1;\n const request: ts.server.protocol.Request = {\n command,\n seq: this.seq,\n type: 'request',\n };\n if (args) {\n request.arguments = args;\n }\n const serializedRequest = `${JSON.stringify(request)}\\n`;\n this.tsServerProcess?.stdin?.write(serializedRequest);\n this.log(notification ? 'notify' : 'request', request);\n }\n\n protected processMessage(untrimmedMessageString: string, resolve?: () => void, reject?: (err) => void): void {\n const messageString = untrimmedMessageString.trim();\n if (!messageString || messageString.startsWith('Content-Length:')) {\n return;\n }\n let message: ts.server.protocol.Message;\n\n try {\n message = JSON.parse(messageString);\n } catch {\n // If the message isn't valid JSON, it's not a valid tsserver message. Reject the promise.\n reject?.(new Error(`Received invalid message from TSServer: ${untrimmedMessageString}`));\n return;\n }\n\n this.log('processMessage', message);\n\n if (this.isEvent(message)) {\n resolve?.();\n }\n\n if (this.isResponse(message)) {\n this.resolveResponse(message, message.request_seq, message.success);\n } else if (this.isEvent(message)) {\n if (this.isRequestCompletedEvent(message)) {\n this.resolveResponse(message, message.body.request_seq, true);\n } else if (this.options.onEvent) {\n this.options.onEvent(message);\n }\n }\n }\n\n private resolveResponse(message: ts.server.protocol.Message, request_seq: number, success: boolean) {\n const deferred = this.deferreds[request_seq];\n this.log('request completed', { request_seq, success });\n if (deferred) {\n if (success) {\n this.deferreds[request_seq].resolve(message);\n } else {\n this.deferreds[request_seq].reject(message);\n }\n delete this.deferreds[request_seq];\n }\n }\n\n private isEvent(message: ts.server.protocol.Message): message is ts.server.protocol.Event {\n return message.type === 'event';\n }\n\n private isResponse(message: ts.server.protocol.Message): message is ts.server.protocol.Response {\n return message.type === 'response';\n }\n\n private isRequestCompletedEvent(\n message: ts.server.protocol.Message\n ): message is ts.server.protocol.RequestCompletedEvent {\n return this.isEvent(message) && message.event === 'requestCompleted';\n }\n\n private async ensureServerIsRunning() {\n if (!this.tsServerProcess) {\n await this.restart();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -70,7 +70,7 @@ export declare class TsserverClient {
|
|
|
70
70
|
* @param file can be absolute or relative to this.projectRoot.
|
|
71
71
|
*/
|
|
72
72
|
getTypeDefinition(file: string, position: Position): Promise<ts.server.protocol.TypeDefinitionResponse | undefined>;
|
|
73
|
-
getDefinition(file: string, position: Position): Promise<ts.server.protocol.DefinitionResponse>;
|
|
73
|
+
getDefinition(file: string, position: Position): Promise<ts.server.protocol.DefinitionResponse | undefined>;
|
|
74
74
|
/**
|
|
75
75
|
* @param file can be absolute or relative to this.projectRoot.
|
|
76
76
|
*/
|