mirror of
https://github.com/coder/code-server.git
synced 2026-05-10 14:27:26 +02:00
* Replace evaluations with proxies and messages * Return proxies synchronously Otherwise events can be lost. * Ensure events cannot be missed * Refactor remaining fills * Use more up-to-date version of util For callbackify. * Wait for dispose to come back before removing This prevents issues with the "done" event not always being the last event fired. For example a socket might close and then end, but only if the caller called end. * Remove old node-pty tests * Fix emitting events twice on duplex streams * Preserve environment when spawning processes * Throw a better error if the proxy doesn't exist * Remove rimraf dependency from ide * Update net.Server.listening * Use exit event instead of killed Doesn't look like killed is even a thing. * Add response timeout to server * Fix trash * Require node-pty & spdlog after they get unpackaged This fixes an error when running in the binary. * Fix errors in down emitter preventing reconnecting * Fix disposing proxies when nothing listens to "error" event * Refactor event tests to use jest.fn() * Reject proxy call when disconnected Otherwise it'll wait for the timeout which is a waste of time since we already know the connection is dead. * Use nbin for binary packaging * Remove additional module requires * Attempt to remove require for local bootstrap-fork * Externalize fsevents
33 lines
1.6 KiB
TypeScript
33 lines
1.6 KiB
TypeScript
import * as spdlog from "spdlog";
|
|
import { ClientProxy } from "../../common/proxy";
|
|
import { RotatingLoggerProxy, SpdlogModuleProxy } from "../../node/modules/spdlog";
|
|
|
|
class RotatingLogger extends ClientProxy<RotatingLoggerProxy> implements spdlog.RotatingLogger {
|
|
public async trace (message: string): Promise<void> { this.proxy.trace(message); }
|
|
public async debug (message: string): Promise<void> { this.proxy.debug(message); }
|
|
public async info (message: string): Promise<void> { this.proxy.info(message); }
|
|
public async warn (message: string): Promise<void> { this.proxy.warn(message); }
|
|
public async error (message: string): Promise<void> { this.proxy.error(message); }
|
|
public async critical (message: string): Promise<void> { this.proxy.critical(message); }
|
|
public async setLevel (level: number): Promise<void> { this.proxy.setLevel(level); }
|
|
public async clearFormatters (): Promise<void> { this.proxy.clearFormatters(); }
|
|
public async flush (): Promise<void> { this.proxy.flush(); }
|
|
public async drop (): Promise<void> { this.proxy.drop(); }
|
|
}
|
|
|
|
export class SpdlogModule {
|
|
public readonly RotatingLogger: typeof spdlog.RotatingLogger;
|
|
|
|
public constructor(private readonly proxy: SpdlogModuleProxy) {
|
|
this.RotatingLogger = class extends RotatingLogger {
|
|
public constructor(name: string, filename: string, filesize: number, filecount: number) {
|
|
super(proxy.createLogger(name, filename, filesize, filecount));
|
|
}
|
|
};
|
|
}
|
|
|
|
public setAsyncMode = (bufferSize: number, flushInterval: number): void => {
|
|
this.proxy.setAsyncMode(bufferSize, flushInterval);
|
|
}
|
|
}
|