Make everything use active evals (#30)
* Add trace log level * Use active eval to implement spdlog * Split server/client active eval interfaces Since all properties are *not* valid on both sides * +200% fire resistance * Implement exec using active evaluations * Fully implement child process streams * Watch impl, move child_process back to explicitly adding events Automatically forwarding all events might be the right move, but wanna think/discuss it a bit more because it didn't come out very cleanly. * Would you like some args with that callback? * Implement the rest of child_process using active evals * Rampant memory leaks Emit "kill" to active evaluations when client disconnects in order to kill processes. Most likely won't be the final solution. * Resolve some minor issues with output panel * Implement node-pty with active evals * Provide clearTimeout to vm sandbox * Implement socket with active evals * Extract some callback logic Also remove some eval interfaces, need to re-think those. * Implement net.Server and remainder of net.Socket using active evals * Implement dispose for active evaluations * Use trace for express requests * Handle sending buffers through evaluation events * Make event logging a bit more clear * Fix some errors due to us not actually instantiating until connect/listen * is this a commit message? * We can just create the evaluator in the ctor Not sure what I was thinking. * memory leak for you, memory leak for everyone * it's a ternary now * Don't dispose automatically on close or error The code may or may not be disposable at that point. * Handle parsing buffers on the client side as well * Remove unused protobuf * Remove TypedValue * Remove unused forkProvider and test * Improve dispose pattern for active evals * Socket calls close after error; no need to bind both * Improve comment * Comment is no longer wishy washy due to explicit boolean * Simplify check for sendHandle and options * Replace _require with __non_webpack_require__ Webpack will then replace this with `require` which we then provide to the vm sandbox. * Provide path.parse * Prevent original-fs from loading * Start with a pid of -1 vscode immediately checks the PID to see if the debug process launch correctly, but of course we don't get the pid synchronously. * Pass arguments to bootstrap-fork * Fully implement streams Was causing errors because internally the stream would set this.writing to true and it would never become false, so subsequent messages would never send. * Fix serializing errors and streams emitting errors multiple times * Was emitting close to data * Fix missing path for spawned processes * Move evaluation onDispose call Now it's accurate and runs when the active evaluation has actually disposed. * Fix promisifying fs.exists * Fix some active eval callback issues * Patch existsSync in debug adapter
This commit is contained in:
39
packages/protocol/src/proto/node_pb.d.ts
vendored
39
packages/protocol/src/proto/node_pb.d.ts
vendored
@@ -3,37 +3,6 @@
|
||||
|
||||
import * as jspb from "google-protobuf";
|
||||
|
||||
export class TypedValue extends jspb.Message {
|
||||
getType(): TypedValue.Type;
|
||||
setType(value: TypedValue.Type): void;
|
||||
|
||||
getValue(): string;
|
||||
setValue(value: string): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): TypedValue.AsObject;
|
||||
static toObject(includeInstance: boolean, msg: TypedValue): TypedValue.AsObject;
|
||||
static extensions: {[key: number]: jspb.ExtensionFieldInfo<jspb.Message>};
|
||||
static extensionsBinary: {[key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>};
|
||||
static serializeBinaryToWriter(message: TypedValue, writer: jspb.BinaryWriter): void;
|
||||
static deserializeBinary(bytes: Uint8Array): TypedValue;
|
||||
static deserializeBinaryFromReader(message: TypedValue, reader: jspb.BinaryReader): TypedValue;
|
||||
}
|
||||
|
||||
export namespace TypedValue {
|
||||
export type AsObject = {
|
||||
type: TypedValue.Type,
|
||||
value: string,
|
||||
}
|
||||
|
||||
export enum Type {
|
||||
STRING = 0,
|
||||
NUMBER = 1,
|
||||
OBJECT = 2,
|
||||
BOOLEAN = 3,
|
||||
}
|
||||
}
|
||||
|
||||
export class NewEvalMessage extends jspb.Message {
|
||||
getId(): number;
|
||||
setId(value: number): void;
|
||||
@@ -140,10 +109,8 @@ export class EvalDoneMessage extends jspb.Message {
|
||||
getId(): number;
|
||||
setId(value: number): void;
|
||||
|
||||
hasResponse(): boolean;
|
||||
clearResponse(): void;
|
||||
getResponse(): TypedValue | undefined;
|
||||
setResponse(value?: TypedValue): void;
|
||||
getResponse(): string;
|
||||
setResponse(value: string): void;
|
||||
|
||||
serializeBinary(): Uint8Array;
|
||||
toObject(includeInstance?: boolean): EvalDoneMessage.AsObject;
|
||||
@@ -158,7 +125,7 @@ export class EvalDoneMessage extends jspb.Message {
|
||||
export namespace EvalDoneMessage {
|
||||
export type AsObject = {
|
||||
id: number,
|
||||
response?: TypedValue.AsObject,
|
||||
response: string,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user