summaryrefslogtreecommitdiff
path: root/msg.proto
blob: 28ad77e567bf8dac6705e0ec5ff61e5f60cbfabe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
syntax = "proto3";
package main;

message BaseMsg {
  string channel = 1;
  bytes payload = 2;
}

message Msg {
  string error = 1;

  enum Command {
    ERROR = 0;
    START = 1;
    SOURCE_CODE_FETCH = 2;
    SOURCE_CODE_FETCH_RES = 3;
    SOURCE_CODE_CACHE = 4;
    EXIT = 5;
    TIMER_START = 6;
    TIMER_READY = 7;
    TIMER_CLEAR = 8;
  }
  Command command = 2;

  // 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
  string start_cwd = 10;
  repeated string start_argv = 11;
  bool start_debug_flag = 12;
  string start_main_js = 13;  // The contents of dist/main.js
  string start_main_map = 14; // The contents of dist/main.map

  // SOURCE_CODE_FETCH
  string source_code_fetch_module_specifier = 20;
  string source_code_fetch_containing_file = 21;

  // 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.
  string source_code_fetch_res_module_name = 30;
  string source_code_fetch_res_filename = 31;
  string source_code_fetch_res_source_code = 32;
  string source_code_fetch_res_output_code = 33; // Non-empty only if cached.

  // SOURCE_CODE_CACHE
  string source_code_cache_filename = 41;
  string source_code_cache_source_code = 42;
  string source_code_cache_output_code = 43;

  // EXIT
  int32 exit_code = 50;

  // TIMER_START
  int32 timer_start_id = 60;
  bool timer_start_interval = 61;
  int32 timer_start_duration = 62; // In milliseconds.

  // TIMER_READY
  int32 timer_ready_id = 70;
  bool timer_ready_done = 71;

  // TIMER_CLEAR
  int32 timer_clear_id = 80;
}