Skip to content

Commit 4602a13

Browse files
committed
the debug config for vscode and starlingmonkey debugger extension
1 parent 43f0061 commit 4602a13

11 files changed

Lines changed: 1448 additions & 0 deletions

File tree

.vscode/launch.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"type": "starlingmonkey",
9+
"request": "launch",
10+
"name": "StarlingMonkey",
11+
"program": "${workspaceFolder}/dist/bundle.js",
12+
"component": "${workspaceFolder}/dist/sample-wasi-http-js.wasm",
13+
"stopOnEntry": true,
14+
"preLaunchTask": "build debug component"
15+
}
16+
]
17+
}

.vscode/tasks.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"version": "2.0.0",
3+
"tasks": [
4+
{
5+
"label": "build debug component",
6+
"type": "shell",
7+
"command": "npm run build:debug",
8+
"group": "build",
9+
"presentation": {
10+
"reveal": "always",
11+
"panel": "new"
12+
}
13+
}
14+
]
15+
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"scripts": {
1414
"bundle": "rollup -c",
1515
"build": "npm run bundle && componentize-js --aot --wit wit -o dist/$npm_package_name.wasm dist/bundle.js",
16+
"build:debug": "npm run bundle && componentize-js --use-debug-build --runtime-args \"--enable-script-debugging\" --wit wit-debug -o dist/$npm_package_name.wasm dist/bundle.js",
1617
"format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,css}\"",
1718
"format-ci": "prettier --check \"**/*.{js,jsx,ts,tsx,json,css}\"",
1819
"lint": "eslint src/**/*.js",
Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
package wasi:cli@0.2.3;
2+
3+
@since(version = 0.2.0)
4+
interface environment {
5+
/// Get the POSIX-style environment variables.
6+
///
7+
/// Each environment variable is provided as a pair of string variable names
8+
/// and string value.
9+
///
10+
/// Morally, these are a value import, but until value imports are available
11+
/// in the component model, this import function should return the same
12+
/// values each time it is called.
13+
@since(version = 0.2.0)
14+
get-environment: func() -> list<tuple<string, string>>;
15+
16+
/// Get the POSIX-style arguments to the program.
17+
@since(version = 0.2.0)
18+
get-arguments: func() -> list<string>;
19+
20+
/// Return a path that programs should use as their initial current working
21+
/// directory, interpreting `.` as shorthand for this.
22+
@since(version = 0.2.0)
23+
initial-cwd: func() -> option<string>;
24+
}
25+
26+
@since(version = 0.2.0)
27+
interface exit {
28+
/// Exit the current instance and any linked instances.
29+
@since(version = 0.2.0)
30+
exit: func(status: result);
31+
}
32+
33+
@since(version = 0.2.0)
34+
interface run {
35+
/// Run the program.
36+
@since(version = 0.2.0)
37+
run: func() -> result;
38+
}
39+
40+
@since(version = 0.2.0)
41+
interface stdin {
42+
@since(version = 0.2.0)
43+
use wasi:io/streams@0.2.3.{input-stream};
44+
45+
@since(version = 0.2.0)
46+
get-stdin: func() -> input-stream;
47+
}
48+
49+
@since(version = 0.2.0)
50+
interface stdout {
51+
@since(version = 0.2.0)
52+
use wasi:io/streams@0.2.3.{output-stream};
53+
54+
@since(version = 0.2.0)
55+
get-stdout: func() -> output-stream;
56+
}
57+
58+
@since(version = 0.2.0)
59+
interface stderr {
60+
@since(version = 0.2.0)
61+
use wasi:io/streams@0.2.3.{output-stream};
62+
63+
@since(version = 0.2.0)
64+
get-stderr: func() -> output-stream;
65+
}
66+
67+
/// Terminal input.
68+
///
69+
/// In the future, this may include functions for disabling echoing,
70+
/// disabling input buffering so that keyboard events are sent through
71+
/// immediately, querying supported features, and so on.
72+
@since(version = 0.2.0)
73+
interface terminal-input {
74+
/// The input side of a terminal.
75+
@since(version = 0.2.0)
76+
resource terminal-input;
77+
}
78+
79+
/// Terminal output.
80+
///
81+
/// In the future, this may include functions for querying the terminal
82+
/// size, being notified of terminal size changes, querying supported
83+
/// features, and so on.
84+
@since(version = 0.2.0)
85+
interface terminal-output {
86+
/// The output side of a terminal.
87+
@since(version = 0.2.0)
88+
resource terminal-output;
89+
}
90+
91+
/// An interface providing an optional `terminal-input` for stdin as a
92+
/// link-time authority.
93+
@since(version = 0.2.0)
94+
interface terminal-stdin {
95+
@since(version = 0.2.0)
96+
use terminal-input.{terminal-input};
97+
98+
/// If stdin is connected to a terminal, return a `terminal-input` handle
99+
/// allowing further interaction with it.
100+
@since(version = 0.2.0)
101+
get-terminal-stdin: func() -> option<terminal-input>;
102+
}
103+
104+
/// An interface providing an optional `terminal-output` for stdout as a
105+
/// link-time authority.
106+
@since(version = 0.2.0)
107+
interface terminal-stdout {
108+
@since(version = 0.2.0)
109+
use terminal-output.{terminal-output};
110+
111+
/// If stdout is connected to a terminal, return a `terminal-output` handle
112+
/// allowing further interaction with it.
113+
@since(version = 0.2.0)
114+
get-terminal-stdout: func() -> option<terminal-output>;
115+
}
116+
117+
/// An interface providing an optional `terminal-output` for stderr as a
118+
/// link-time authority.
119+
@since(version = 0.2.0)
120+
interface terminal-stderr {
121+
@since(version = 0.2.0)
122+
use terminal-output.{terminal-output};
123+
124+
/// If stderr is connected to a terminal, return a `terminal-output` handle
125+
/// allowing further interaction with it.
126+
@since(version = 0.2.0)
127+
get-terminal-stderr: func() -> option<terminal-output>;
128+
}
129+
130+
@since(version = 0.2.0)
131+
world imports {
132+
@since(version = 0.2.0)
133+
import environment;
134+
@since(version = 0.2.0)
135+
import exit;
136+
@since(version = 0.2.0)
137+
import wasi:io/error@0.2.3;
138+
@since(version = 0.2.0)
139+
import wasi:io/poll@0.2.3;
140+
@since(version = 0.2.0)
141+
import wasi:io/streams@0.2.3;
142+
@since(version = 0.2.0)
143+
import stdin;
144+
@since(version = 0.2.0)
145+
import stdout;
146+
@since(version = 0.2.0)
147+
import stderr;
148+
@since(version = 0.2.0)
149+
import terminal-input;
150+
@since(version = 0.2.0)
151+
import terminal-output;
152+
@since(version = 0.2.0)
153+
import terminal-stdin;
154+
@since(version = 0.2.0)
155+
import terminal-stdout;
156+
@since(version = 0.2.0)
157+
import terminal-stderr;
158+
@since(version = 0.2.0)
159+
import wasi:clocks/monotonic-clock@0.2.3;
160+
@since(version = 0.2.0)
161+
import wasi:clocks/wall-clock@0.2.3;
162+
@since(version = 0.2.0)
163+
import wasi:filesystem/types@0.2.3;
164+
@since(version = 0.2.0)
165+
import wasi:filesystem/preopens@0.2.3;
166+
@since(version = 0.2.0)
167+
import wasi:sockets/network@0.2.3;
168+
@since(version = 0.2.0)
169+
import wasi:sockets/instance-network@0.2.3;
170+
@since(version = 0.2.0)
171+
import wasi:sockets/udp@0.2.3;
172+
@since(version = 0.2.0)
173+
import wasi:sockets/udp-create-socket@0.2.3;
174+
@since(version = 0.2.0)
175+
import wasi:sockets/tcp@0.2.3;
176+
@since(version = 0.2.0)
177+
import wasi:sockets/tcp-create-socket@0.2.3;
178+
@since(version = 0.2.0)
179+
import wasi:sockets/ip-name-lookup@0.2.3;
180+
@since(version = 0.2.0)
181+
import wasi:random/random@0.2.3;
182+
@since(version = 0.2.0)
183+
import wasi:random/insecure@0.2.3;
184+
@since(version = 0.2.0)
185+
import wasi:random/insecure-seed@0.2.3;
186+
}
187+
@since(version = 0.2.0)
188+
world command {
189+
@since(version = 0.2.0)
190+
import environment;
191+
@since(version = 0.2.0)
192+
import exit;
193+
@since(version = 0.2.0)
194+
import wasi:io/error@0.2.3;
195+
@since(version = 0.2.0)
196+
import wasi:io/poll@0.2.3;
197+
@since(version = 0.2.0)
198+
import wasi:io/streams@0.2.3;
199+
@since(version = 0.2.0)
200+
import stdin;
201+
@since(version = 0.2.0)
202+
import stdout;
203+
@since(version = 0.2.0)
204+
import stderr;
205+
@since(version = 0.2.0)
206+
import terminal-input;
207+
@since(version = 0.2.0)
208+
import terminal-output;
209+
@since(version = 0.2.0)
210+
import terminal-stdin;
211+
@since(version = 0.2.0)
212+
import terminal-stdout;
213+
@since(version = 0.2.0)
214+
import terminal-stderr;
215+
@since(version = 0.2.0)
216+
import wasi:clocks/monotonic-clock@0.2.3;
217+
@since(version = 0.2.0)
218+
import wasi:clocks/wall-clock@0.2.3;
219+
@since(version = 0.2.0)
220+
import wasi:filesystem/types@0.2.3;
221+
@since(version = 0.2.0)
222+
import wasi:filesystem/preopens@0.2.3;
223+
@since(version = 0.2.0)
224+
import wasi:sockets/network@0.2.3;
225+
@since(version = 0.2.0)
226+
import wasi:sockets/instance-network@0.2.3;
227+
@since(version = 0.2.0)
228+
import wasi:sockets/udp@0.2.3;
229+
@since(version = 0.2.0)
230+
import wasi:sockets/udp-create-socket@0.2.3;
231+
@since(version = 0.2.0)
232+
import wasi:sockets/tcp@0.2.3;
233+
@since(version = 0.2.0)
234+
import wasi:sockets/tcp-create-socket@0.2.3;
235+
@since(version = 0.2.0)
236+
import wasi:sockets/ip-name-lookup@0.2.3;
237+
@since(version = 0.2.0)
238+
import wasi:random/random@0.2.3;
239+
@since(version = 0.2.0)
240+
import wasi:random/insecure@0.2.3;
241+
@since(version = 0.2.0)
242+
import wasi:random/insecure-seed@0.2.3;
243+
244+
@since(version = 0.2.0)
245+
export run;
246+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package wasi:clocks@0.2.3;
2+
3+
interface monotonic-clock {
4+
use wasi:io/poll@0.2.3.{pollable};
5+
6+
type instant = u64;
7+
8+
type duration = u64;
9+
10+
now: func() -> instant;
11+
12+
resolution: func() -> duration;
13+
14+
subscribe-instant: func(when: instant) -> pollable;
15+
16+
subscribe-duration: func(when: duration) -> pollable;
17+
}
18+
19+
interface wall-clock {
20+
record datetime {
21+
seconds: u64,
22+
nanoseconds: u32,
23+
}
24+
25+
now: func() -> datetime;
26+
27+
resolution: func() -> datetime;
28+
}
29+

0 commit comments

Comments
 (0)