0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-10-29 08:58:01 -04:00
denoland-deno/msg.proto
Ryan Dahl d765300de5 Move away from oneof in msg.proto
This is due to the size added to msg.pb.js for every new message. See
comment in msg.proto.
2018-05-25 15:24:29 -04:00

77 lines
2.2 KiB
Protocol Buffer

syntax = "proto2";
package main;
message BaseMsg {
optional string channel = 1;
optional bytes payload = 2;
}
message Msg {
optional string error = 1;
enum Command {
ERROR = 1;
START = 2;
SOURCE_CODE_FETCH_RES = 3;
ONEOF = 100;
}
optional Command command = 2 [ default = ONEOF ];
// We avoid creating a message for each command (and use oneof or any types)
// In order to reduce code in the size of the generated javascript
// "msg.pb.js". It seems that each new message adds 20k and we want to
// potentially add many hundreds of commands. Therefore we just prefix command
// arguments by their name.
// Start
optional string start_cwd = 10;
repeated string start_argv = 11;
optional bool start_debug_flag = 12;
optional string start_main_js = 13; // The contents of dist/main.js
optional string start_main_map = 14; // The contents of dist/main.map
// SOURCE_CODE_FETCH_RES
// If it's a non-http module, moduleName and filename will be the same.
// For http modules, moduleName is its resolved http URL, and filename
// is the location of the locally downloaded source code.
optional string source_code_fetch_res_module_name = 30;
optional string source_code_fetch_res_filename = 31;
optional string source_code_fetch_res_source_code = 32;
optional string source_code_fetch_res_output_code =
33; // Non-empty only if cached.
oneof payload {
SourceCodeFetchMsg source_code_fetch = 100;
SourceCodeCacheMsg source_code_cache = 102;
ExitMsg exit = 103;
TimerStartMsg timer_start = 104;
TimerReadyMsg timer_ready = 105;
TimerClearMsg timer_clear = 106;
}
}
message SourceCodeFetchMsg {
optional string module_specifier = 1;
optional string containing_file = 2;
}
message SourceCodeCacheMsg {
optional string filename = 1;
optional string source_code = 2;
optional string output_code = 3;
}
message ExitMsg { optional int32 code = 1; }
message TimerStartMsg {
optional int32 id = 1;
optional bool interval = 2;
optional int32 duration = 3; // In milliseconds.
}
message TimerReadyMsg {
optional int32 id = 1;
optional bool done = 2;
}
message TimerClearMsg { optional int32 id = 1; }