quickwin 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +8 -8
- package/README.md +6 -7
- package/examples/{exec_server.js → execd.js} +618 -228
- package/examples/execd.tsx +798 -0
- package/examples/execd_worker.js +122 -0
- package/examples/execd_worker.ts +127 -0
- package/examples/pdf_viewer.js +100 -111
- package/examples/test_gallery.js +100 -111
- package/examples/test_react_lazy.js +96 -109
- package/examples/test_react_listbox.js +96 -109
- package/examples/test_root_window.js +96 -109
- package/examples/test_tab.js +96 -109
- package/lib/ffi/ctype.ts +3 -1
- package/lib/ffi/struct.js +23 -7
- package/lib/ffi/struct.ts +50 -23
- package/lib/http-server.js +1 -1
- package/lib/http-server.ts +1 -1
- package/lib/windows/gdi32.js +1 -1
- package/lib/windows/gdi32.ts +1 -1
- package/lib/windows/structs.js +176 -92
- package/lib/windows/structs.ts +216 -92
- package/package.json +1 -1
- package/quickwin_const.d.ts +26 -0
- package/qwin-nowasm-x86.exe +0 -0
- package/qwin-nowasm.exe +0 -0
- package/qwin-x86.exe +0 -0
- package/qwin.exe +0 -0
- package/test/test_ffi_bind.js +5 -3
- package/test/test_ffi_bind.ts +6 -4
- package/test/test_ffi_struct.js +58 -24
- package/test/test_ffi_struct.ts +55 -25
- package/test/test_gdi_draw.js +1 -1
- package/test/test_gdi_draw.ts +1 -1
- package/test/test_react_complex.js +96 -109
- package/test/test_react_counter.js +96 -109
- package/test/test_react_flex.js +96 -109
- package/test/test_react_hidden.js +96 -109
- package/test/test_react_listview_link.js +96 -109
- package/test/test_react_notify.js +96 -109
- package/test/test_react_render.js +96 -109
- package/examples/exec_server.tsx +0 -489
- package/examples/exec_server_worker.js +0 -395
- package/examples/exec_server_worker.ts +0 -417
- package/examples/setres.js +0 -79
- package/examples/setres.ts +0 -86
package/README.en.md
CHANGED
|
@@ -41,7 +41,7 @@ quickwin script.js # run a script
|
|
|
41
41
|
quickwin -o CON script.js # run with console (AllocConsole)
|
|
42
42
|
quickwin -o LOG script.js # run with auto-generated log file
|
|
43
43
|
quickwin -e "console.log('hi')" # execute expression
|
|
44
|
-
quickwin
|
|
44
|
+
quickwin script.js --flag # everything after the script goes to it
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
### Options
|
|
@@ -53,10 +53,10 @@ quickwin -- script.js --flag # -- stops option parsing
|
|
|
53
53
|
| `-o LOG` | Redirect stdout+stderr to `log_YYYY_MM_DD_HH_MM_SS.txt` (exe directory) |
|
|
54
54
|
| `-o <file>` | Redirect stdout+stderr to specified file |
|
|
55
55
|
| `-d` | Enable HTTP debug logging |
|
|
56
|
-
| `--` | Stop option parsing, remaining args passed to script |
|
|
57
56
|
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
The command line parses in fixed slots: `exe [-d] [-o target] [-e code | file]`;
|
|
58
|
+
everything past the slots reaches `scriptArgs` untouched — no error, no
|
|
59
|
+
consumption. The file slot rejects `-`-leading names (run those as `./-name.js`).
|
|
60
60
|
|
|
61
61
|
## Embedded Script
|
|
62
62
|
|
|
@@ -80,11 +80,11 @@ make embed-js JS_EMBED=script.js
|
|
|
80
80
|
# Embed a script brotli-compressed (smaller exe, decompressed at runtime)
|
|
81
81
|
make embed-js-br JS_EMBED=script.js
|
|
82
82
|
|
|
83
|
-
# Bundle examples/
|
|
84
|
-
make
|
|
83
|
+
# Bundle examples/execd.ts and brotli-embed into execd.exe
|
|
84
|
+
make execd
|
|
85
85
|
|
|
86
86
|
# Run it (no file argument needed)
|
|
87
|
-
_build/
|
|
87
|
+
_build/execd.exe
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
When run without a script file argument, `qwin.exe` checks for embedded JS at the end of itself. If found, it executes the embedded code. If not, it falls back to `main.js`. Both raw (`QWJS`) and brotli-compressed (`QWBR`) embedded payloads are supported; the compressed form is decompressed at startup.
|
|
@@ -198,7 +198,7 @@ that build run `make test TEST=-wasm` to skip WASM tests.
|
|
|
198
198
|
| `make test` | run all tests |
|
|
199
199
|
| `make test TEST=-net` | skip network tests (fast) |
|
|
200
200
|
| `make test TEST=wasm` | run WASM tests only |
|
|
201
|
-
| `make
|
|
201
|
+
| `make execd` | bundle `examples/execd.ts` and brotli-embed into `_build/execd.exe` |
|
|
202
202
|
| `make embed-js` / `embed-js-br` | embed JS (brotli-compressed) into exe |
|
|
203
203
|
| `make npm-pkg` | package into `dist/quickwin/` |
|
|
204
204
|
| `make gen-const` | regenerate `quickwin_const.d.ts` |
|
package/README.md
CHANGED
|
@@ -41,7 +41,7 @@ quickwin script.js # 运行脚本
|
|
|
41
41
|
quickwin -o CON script.js # 带控制台运行(AllocConsole)
|
|
42
42
|
quickwin -o LOG script.js # 自动生成日志文件运行
|
|
43
43
|
quickwin -e "console.log('hi')" # 执行表达式
|
|
44
|
-
quickwin
|
|
44
|
+
quickwin script.js --flag # 槽位之后的参数全部传给脚本
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
### 选项
|
|
@@ -53,9 +53,8 @@ quickwin -- script.js --flag # -- 停止选项解析
|
|
|
53
53
|
| `-o LOG` | 将 stdout+stderr 重定向到 `log_YYYY_MM_DD_HH_MM_SS.txt`(exe 所在目录) |
|
|
54
54
|
| `-o <file>` | 将 stdout+stderr 重定向到指定文件 |
|
|
55
55
|
| `-d` | 开启 HTTP 调试日志 |
|
|
56
|
-
| `--` | 停止选项解析,其余参数传给脚本 |
|
|
57
56
|
|
|
58
|
-
|
|
57
|
+
命令行按固定槽位解析:`exe [-d] [-o 目标] [-e code | 脚本文件]`;槽位之后的所有参数原样进入 `scriptArgs`,不报错、不消费。文件槽不接受 `-` 开头的文件名(用 `./-name.js` 运行这类脚本)。
|
|
59
58
|
|
|
60
59
|
## 内嵌脚本
|
|
61
60
|
|
|
@@ -79,11 +78,11 @@ make embed-js JS_EMBED=script.js
|
|
|
79
78
|
# 内嵌 Brotli 压缩的脚本(exe 更小,运行时解压)
|
|
80
79
|
make embed-js-br JS_EMBED=script.js
|
|
81
80
|
|
|
82
|
-
# 打包 examples/
|
|
83
|
-
make
|
|
81
|
+
# 打包 examples/execd.ts 并 brotli 内嵌进 execd.exe
|
|
82
|
+
make execd
|
|
84
83
|
|
|
85
84
|
# 运行它(不需要文件参数)
|
|
86
|
-
_build/
|
|
85
|
+
_build/execd.exe
|
|
87
86
|
```
|
|
88
87
|
|
|
89
88
|
不带脚本文件参数运行时,`qwin.exe` 会检查自身末尾是否有内嵌 JS:找到则执行内嵌代码,否则回退到 `main.js`。同时支持原始(`QWJS`)与 Brotli 压缩(`QWBR`)两种内嵌格式;压缩格式在启动时解压。
|
|
@@ -197,7 +196,7 @@ podman exec quickwin-dev bash -lc 'cd /workspace && make js && make cc64 && make
|
|
|
197
196
|
| `make test` | 运行全部测试 |
|
|
198
197
|
| `make test TEST=-net` | 跳过网络测试(快速) |
|
|
199
198
|
| `make test TEST=wasm` | 仅运行 WASM 测试 |
|
|
200
|
-
| `make
|
|
199
|
+
| `make execd` | 打包 `examples/execd.ts` 并 Brotli 内嵌进 `_build/execd.exe` |
|
|
201
200
|
| `make embed-js` / `embed-js-br` | 把 JS(Brotli 压缩)内嵌进 exe |
|
|
202
201
|
| `make npm-pkg` | 打包到 `dist/quickwin/` |
|
|
203
202
|
| `make gen-const` | 重新生成 `quickwin_const.d.ts` |
|