mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-06-18 05:43:11 -05:00
Remove webServer (#51699)
* Remove webServer
First draft; I may move some things around to be more readable.
* Refactor moved code
1. Move StartSessionOptions to common next to where it's first used.
2. Inline single-use BaseLogger base class into its only child class,
Logger.
3. Start using direct imports, eg `import {} from './common'`. I hope
this is OK?!
* Fix lint
* move imports back to namespace import
* hereby tsserver: remove exportIsTsObject
This commit is contained in:
committed by
GitHub
parent
c124d0e260
commit
5bb204e321
@@ -5,7 +5,6 @@ import {
|
||||
ActionPackageInstalled,
|
||||
ActionSet,
|
||||
Arguments,
|
||||
BaseLogger,
|
||||
BeginInstallTypes,
|
||||
createInstallTypingsRequest,
|
||||
EndInstallTypes,
|
||||
@@ -27,6 +26,7 @@ import {
|
||||
LogLevel,
|
||||
ModuleImportResult,
|
||||
Msg,
|
||||
nowString,
|
||||
nullCancellationToken,
|
||||
nullTypingsInstaller,
|
||||
PackageInstalledResponse,
|
||||
@@ -65,6 +65,7 @@ import {
|
||||
noopFileWatcher,
|
||||
normalizePath,
|
||||
normalizeSlashes,
|
||||
perfLogger,
|
||||
resolveJSModule,
|
||||
SortedReadonlyArray,
|
||||
startTracing,
|
||||
@@ -205,14 +206,16 @@ export function initializeNodeSystem(): StartInput {
|
||||
stat(path: string, callback?: (err: NodeJS.ErrnoException, stats: Stats) => any): void;
|
||||
} = require("fs");
|
||||
|
||||
class Logger extends BaseLogger {
|
||||
class Logger implements Logger {
|
||||
private seq = 0;
|
||||
private inGroup = false;
|
||||
private firstInGroup = true;
|
||||
private fd = -1;
|
||||
constructor(
|
||||
private readonly logFilename: string,
|
||||
private readonly traceToConsole: boolean,
|
||||
level: LogLevel
|
||||
private readonly level: LogLevel
|
||||
) {
|
||||
super(level);
|
||||
if (this.logFilename) {
|
||||
try {
|
||||
this.fd = fs.openSync(this.logFilename, "w");
|
||||
@@ -222,25 +225,67 @@ export function initializeNodeSystem(): StartInput {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static padStringRight(str: string, padding: string) {
|
||||
return (str + padding).slice(0, padding.length);
|
||||
}
|
||||
close() {
|
||||
if (this.fd >= 0) {
|
||||
fs.close(this.fd, noop);
|
||||
}
|
||||
}
|
||||
|
||||
getLogFileName() {
|
||||
getLogFileName(): string | undefined {
|
||||
return this.logFilename;
|
||||
}
|
||||
|
||||
perftrc(s: string) {
|
||||
this.msg(s, Msg.Perf);
|
||||
}
|
||||
info(s: string) {
|
||||
this.msg(s, Msg.Info);
|
||||
}
|
||||
err(s: string) {
|
||||
this.msg(s, Msg.Err);
|
||||
}
|
||||
startGroup() {
|
||||
this.inGroup = true;
|
||||
this.firstInGroup = true;
|
||||
}
|
||||
endGroup() {
|
||||
this.inGroup = false;
|
||||
}
|
||||
loggingEnabled() {
|
||||
return !!this.logFilename || this.traceToConsole;
|
||||
}
|
||||
hasLevel(level: LogLevel) {
|
||||
return this.loggingEnabled() && this.level >= level;
|
||||
}
|
||||
msg(s: string, type: Msg = Msg.Err) {
|
||||
switch (type) {
|
||||
case Msg.Info:
|
||||
perfLogger.logInfoEvent(s);
|
||||
break;
|
||||
case Msg.Perf:
|
||||
perfLogger.logPerfEvent(s);
|
||||
break;
|
||||
default: // Msg.Err
|
||||
perfLogger.logErrEvent(s);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!this.canWrite()) return;
|
||||
|
||||
s = `[${nowString()}] ${s}\n`;
|
||||
if (!this.inGroup || this.firstInGroup) {
|
||||
const prefix = Logger.padStringRight(type + " " + this.seq.toString(), " ");
|
||||
s = prefix + s;
|
||||
}
|
||||
this.write(s, type);
|
||||
if (!this.inGroup) {
|
||||
this.seq++;
|
||||
}
|
||||
}
|
||||
protected canWrite() {
|
||||
return this.fd >= 0 || this.traceToConsole;
|
||||
}
|
||||
|
||||
protected write(s: string, _type: Msg) {
|
||||
if (this.fd >= 0) {
|
||||
const buf = sys.bufferFrom!(s);
|
||||
@@ -463,7 +508,6 @@ function parseEventPort(eventPortStr: string | undefined) {
|
||||
const eventPort = eventPortStr === undefined ? undefined : parseInt(eventPortStr);
|
||||
return eventPort !== undefined && !isNaN(eventPort) ? eventPort : undefined;
|
||||
}
|
||||
|
||||
function startNodeSession(options: StartSessionOptions, logger: Logger, cancellationToken: ServerCancellationToken) {
|
||||
const childProcess: {
|
||||
fork(modulePath: string, args: string[], options?: { execArgv: string[], env?: MapLike<string> }): NodeChildProcess;
|
||||
|
||||
Reference in New Issue
Block a user