Skip to content

Commit 033a8bc

Browse files
committed
Merge examples into root module, removing separate submodule
Examples were a standalone moon module (src/examples/moon.mod.json) with an `examples` symlink at the root. This merges them into the root module so they build alongside the library, simplifying the project layout. - Delete src/examples/moon.mod.json and examples symlink - Remove src/examples and examples from moon.mod.json exclude list - Update Makefile build/trim/validate targets for new _build paths - Update all example HTML files to reference root _build output - Format example source files with moon fmt
1 parent 4e0fbfc commit 033a8bc

135 files changed

Lines changed: 528 additions & 289 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,18 @@ info:
2929
moon info --target js
3030

3131
build-examples:
32-
moon -C src/examples build --target js --release
33-
moon -C src/examples build --target wasm-gc --release
32+
moon build --target js --release
33+
moon build --target wasm-gc --release
3434

3535
trim-examples:
3636
@moon build src/trim --target js
37-
@for wasm in src/examples/_build/wasm-gc/release/build/*/*.wasm; do \
37+
@for wasm in _build/wasm-gc/release/build/examples/*/*.wasm; do \
3838
node _build/js/debug/build/trim/trim.js "$(CURDIR)/$$wasm" --source "$(CURDIR)/src/webapi.mjs"; \
3939
done
4040

4141
validate-wasm:
4242
@fails=0; \
43-
for wasm in src/examples/_build/wasm-gc/release/build/*/*.wasm; do \
43+
for wasm in _build/wasm-gc/release/build/examples/*/*.wasm; do \
4444
name=$$(basename $$(dirname $$wasm)); \
4545
if wasm-tools validate "$$wasm" 2>/dev/null; then \
4646
echo " OK: $$name"; \
@@ -60,7 +60,7 @@ test-playwright:
6060
fi
6161

6262
serve:
63-
node tests/ws-echo-server.mjs & npx serve . -l 3000 --no-clipboard --symlinks
63+
node tests/ws-echo-server.mjs & npx serve . -l 3000 --no-clipboard
6464

6565
trim:
6666
moon run src/trim -- $(WASM) -o $(OUT)

examples

Lines changed: 0 additions & 1 deletion
This file was deleted.

moon.mod.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,8 @@
2323
},
2424
"exclude": [
2525
"docs",
26-
"examples",
2726
"tests",
28-
"test-results",
29-
"src/examples"
27+
"test-results"
3028
],
3129
"warn-list": "@27"
3230
}

src/examples/calculator/calculator.js.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,6 @@ <h1>Calculator</h1>
5959
</div>
6060
</div>
6161
</template>
62-
<script type="module" src="../_build/js/release/build/calculator/calculator.js"></script>
62+
<script type="module" src="../../../_build/js/release/build/examples/calculator/calculator.js"></script>
6363
</body>
6464
</html>

src/examples/calculator/calculator.wasm.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ <h1>Calculator</h1>
6060
</div>
6161
</template>
6262
<script type="module">
63-
import { wasmImportObject } from "../_build/wasm-gc/release/build/calculator/webapi.mjs";
63+
import { wasmImportObject } from "../../../_build/wasm-gc/release/build/examples/calculator/webapi.mjs";
6464
const { instance } = await WebAssembly.instantiateStreaming(
65-
fetch("../_build/wasm-gc/release/build/calculator/calculator.wasm"),
65+
fetch("../../../_build/wasm-gc/release/build/examples/calculator/calculator.wasm"),
6666
wasmImportObject,
6767
{ builtins: ["js-string"], importedStringConstants: "_" }
6868
);

src/examples/canvas/canvas.js.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
<h1>🎨 Canvas Demo</h1>
3636
<div id="app"></div>
3737
<p class="info">Rendered with MoonBit WebAPI + Canvas 2D API</p>
38-
<script type="module" src="../_build/js/release/build/canvas/canvas.js"></script>
38+
<script type="module" src="../../../_build/js/release/build/examples/canvas/canvas.js"></script>
3939
</body>
4040

4141
</html>

src/examples/canvas/canvas.wasm.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ <h1>Canvas Demo</h1>
3636
<div id="app"></div>
3737
<p class="info">Rendered with MoonBit WebAPI + Canvas 2D API (wasm-gc)</p>
3838
<script type="module">
39-
import { wasmImportObject } from "../_build/wasm-gc/release/build/canvas/webapi.mjs";
39+
import { wasmImportObject } from "../../../_build/wasm-gc/release/build/examples/canvas/webapi.mjs";
4040

41-
const wasmPath = "../_build/wasm-gc/release/build/canvas/canvas.wasm";
41+
const wasmPath = "../../../_build/wasm-gc/release/build/examples/canvas/canvas.wasm";
4242
const { instance } = await WebAssembly.instantiateStreaming(
4343
fetch(wasmPath),
4444
wasmImportObject,

src/examples/canvas/main.mbt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ using @webapi {
1111
/// Demonstrates gradients, shapes, paths, and text using the Canvas 2D API
1212
fn main {
1313
// Create and append canvas
14-
let canvas : HTMLCanvasElement = document().create_element("canvas").unsafe_into()
14+
let canvas : HTMLCanvasElement = document()
15+
.create_element("canvas")
16+
.unsafe_into()
1517
canvas
1618
..set_width(800)
1719
..set_height(500)
@@ -21,7 +23,10 @@ fn main {
2123
(document().get_element_by_id("app") : Element).append_child(canvas) |> ignore
2224

2325
// Get 2D context
24-
let ctx : CanvasRenderingContext2D = canvas.get_context("2d").unwrap().unsafe_into()
26+
let ctx : CanvasRenderingContext2D = canvas
27+
.get_context("2d")
28+
.unwrap()
29+
.unsafe_into()
2530

2631
// Draw sky gradient
2732
let sky_gradient = ctx.create_linear_gradient(0.0, 0.0, 0.0, 300.0)

src/examples/classlist/classlist.js.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@
88
</head>
99
<body>
1010
<div id="app"></div>
11-
<script type="module" src="../_build/js/release/build/classlist/classlist.js"></script>
11+
<script type="module" src="../../../_build/js/release/build/examples/classlist/classlist.js"></script>
1212
</body>
1313
</html>

src/examples/classlist/classlist.wasm.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
<body>
1010
<div id="app"></div>
1111
<script type="module">
12-
import { wasmImportObject } from "../_build/wasm-gc/release/build/classlist/webapi.mjs";
12+
import { wasmImportObject } from "../../../_build/wasm-gc/release/build/examples/classlist/webapi.mjs";
1313
const { instance } = await WebAssembly.instantiateStreaming(
14-
fetch("../_build/wasm-gc/release/build/classlist/classlist.wasm"),
14+
fetch("../../../_build/wasm-gc/release/build/examples/classlist/classlist.wasm"),
1515
wasmImportObject,
1616
{ builtins: ["js-string"], importedStringConstants: "_" }
1717
);

0 commit comments

Comments
 (0)