@oidoid/void 0.1.6 → 0.1.8
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/dist/public/index.js +7 -7
- package/dist/public/index.js.map +4 -4
- package/dist/public/{void-v0.1.6+20260105.c98baee.html → void-v0.1.8+20260106.f2ce523.html} +8 -8
- package/dist/src/demo/ents/cam.d.ts.map +1 -1
- package/dist/src/demo/ents/cam.js +2 -8
- package/dist/src/demo/ents/cam.js.map +1 -1
- package/dist/src/demo/ents/clock.test.d.ts +2 -0
- package/dist/src/demo/ents/clock.test.d.ts.map +1 -0
- package/dist/src/demo/ents/clock.test.js +24 -0
- package/dist/src/demo/ents/clock.test.js.map +1 -0
- package/dist/src/demo/tsconfig.json +3 -3
- package/dist/src/ents/cursor.d.ts.map +1 -1
- package/dist/src/ents/cursor.js +7 -2
- package/dist/src/ents/cursor.js.map +1 -1
- package/dist/src/ents/cursor.test.d.ts +2 -0
- package/dist/src/ents/cursor.test.d.ts.map +1 -0
- package/dist/src/ents/cursor.test.js +92 -0
- package/dist/src/ents/cursor.test.js.map +1 -0
- package/dist/src/ents/ent-query.test.d.ts +11 -0
- package/dist/src/ents/ent-query.test.d.ts.map +1 -0
- package/dist/src/ents/ent-query.test.js +63 -0
- package/dist/src/ents/ent-query.test.js.map +1 -0
- package/dist/src/ents/ent.d.ts +1 -1
- package/dist/src/ents/ent.d.ts.map +1 -1
- package/dist/src/ents/fps.d.ts +2 -1
- package/dist/src/ents/fps.d.ts.map +1 -1
- package/dist/src/ents/fps.js +5 -6
- package/dist/src/ents/fps.js.map +1 -1
- package/dist/src/ents/zoo.js +1 -2
- package/dist/src/ents/zoo.js.map +1 -1
- package/dist/src/graphics/atlas-parser.test.d.ts +2 -0
- package/dist/src/graphics/atlas-parser.test.d.ts.map +1 -0
- package/dist/src/graphics/atlas-parser.test.js +100 -0
- package/dist/src/graphics/atlas-parser.test.js.map +1 -0
- package/dist/src/graphics/cam.d.ts +1 -1
- package/dist/src/graphics/cam.d.ts.map +1 -1
- package/dist/src/graphics/cam.test.d.ts +2 -0
- package/dist/src/graphics/cam.test.d.ts.map +1 -0
- package/dist/src/graphics/cam.test.js +456 -0
- package/dist/src/graphics/cam.test.js.map +1 -0
- package/dist/src/graphics/layer.test.d.ts +2 -0
- package/dist/src/graphics/layer.test.d.ts.map +1 -0
- package/dist/src/graphics/layer.test.js +23 -0
- package/dist/src/graphics/layer.test.js.map +1 -0
- package/dist/src/graphics/renderer.test.d.ts +2 -0
- package/dist/src/graphics/renderer.test.d.ts.map +1 -0
- package/dist/src/graphics/renderer.test.js +92 -0
- package/dist/src/graphics/renderer.test.js.map +1 -0
- package/dist/src/graphics/sprite.test.d.ts +2 -0
- package/dist/src/graphics/sprite.test.d.ts.map +1 -0
- package/dist/src/graphics/sprite.test.js +582 -0
- package/dist/src/graphics/sprite.test.js.map +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +0 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/input/context-menu.test.d.ts +2 -0
- package/dist/src/input/context-menu.test.d.ts.map +1 -0
- package/dist/src/input/context-menu.test.js +111 -0
- package/dist/src/input/context-menu.test.js.map +1 -0
- package/dist/src/input/gamepad.d.ts.map +1 -1
- package/dist/src/input/gamepad.js +5 -2
- package/dist/src/input/gamepad.js.map +1 -1
- package/dist/src/input/gamepad.test.d.ts +2 -0
- package/dist/src/input/gamepad.test.d.ts.map +1 -0
- package/dist/src/input/gamepad.test.js +172 -0
- package/dist/src/input/gamepad.test.js.map +1 -0
- package/dist/src/input/input.d.ts.map +1 -1
- package/dist/src/input/input.js +8 -5
- package/dist/src/input/input.js.map +1 -1
- package/dist/src/input/input.test.d.ts +2 -0
- package/dist/src/input/input.test.d.ts.map +1 -0
- package/dist/src/input/input.test.js +1146 -0
- package/dist/src/input/input.test.js.map +1 -0
- package/dist/src/input/keyboard.test.d.ts +2 -0
- package/dist/src/input/keyboard.test.d.ts.map +1 -0
- package/dist/src/input/keyboard.test.js +159 -0
- package/dist/src/input/keyboard.test.js.map +1 -0
- package/dist/src/input/pointer.test.d.ts +2 -0
- package/dist/src/input/pointer.test.d.ts.map +1 -0
- package/dist/src/input/pointer.test.js +339 -0
- package/dist/src/input/pointer.test.js.map +1 -0
- package/dist/src/input/wheel.test.d.ts +2 -0
- package/dist/src/input/wheel.test.d.ts.map +1 -0
- package/dist/src/input/wheel.test.js +92 -0
- package/dist/src/input/wheel.test.js.map +1 -0
- package/dist/src/level/level-parser.js +1 -1
- package/dist/src/level/level-parser.js.map +1 -1
- package/dist/src/level/level-parser.test.d.ts +20 -0
- package/dist/src/level/level-parser.test.d.ts.map +1 -0
- package/dist/src/level/level-parser.test.js +340 -0
- package/dist/src/level/level-parser.test.js.map +1 -0
- package/dist/src/looper.test.d.ts +2 -0
- package/dist/src/looper.test.d.ts.map +1 -0
- package/dist/src/looper.test.js +128 -0
- package/dist/src/looper.test.js.map +1 -0
- package/dist/src/mem/pool.test.d.ts +2 -0
- package/dist/src/mem/pool.test.d.ts.map +1 -0
- package/dist/src/mem/pool.test.js +120 -0
- package/dist/src/mem/pool.test.js.map +1 -0
- package/dist/src/random/random.test.d.ts +2 -0
- package/dist/src/random/random.test.d.ts.map +1 -0
- package/dist/src/random/random.test.js +36 -0
- package/dist/src/random/random.test.js.map +1 -0
- package/dist/src/storage/local-storage.test.d.ts +2 -0
- package/dist/src/storage/local-storage.test.d.ts.map +1 -0
- package/dist/src/storage/local-storage.test.js +105 -0
- package/dist/src/storage/local-storage.test.js.map +1 -0
- package/dist/src/test/assert.d.ts +5 -0
- package/dist/src/test/assert.d.ts.map +1 -0
- package/dist/src/test/assert.js +6 -0
- package/dist/src/test/assert.js.map +1 -0
- package/dist/src/test/device-pixel-ratio-mock.d.ts +6 -0
- package/dist/src/test/device-pixel-ratio-mock.d.ts.map +1 -0
- package/dist/src/test/device-pixel-ratio-mock.js +10 -0
- package/dist/src/test/device-pixel-ratio-mock.js.map +1 -0
- package/dist/src/test/index.d.ts +5 -0
- package/dist/src/test/index.d.ts.map +1 -0
- package/dist/src/test/index.js +5 -0
- package/dist/src/test/index.js.map +1 -0
- package/dist/src/test/navigator-gamepads-mock.d.ts +7 -0
- package/dist/src/test/navigator-gamepads-mock.d.ts.map +1 -0
- package/dist/src/test/navigator-gamepads-mock.js +14 -0
- package/dist/src/test/navigator-gamepads-mock.js.map +1 -0
- package/dist/src/test/secure-context-mock.d.ts +6 -0
- package/dist/src/test/secure-context-mock.d.ts.map +1 -0
- package/dist/src/test/secure-context-mock.js +10 -0
- package/dist/src/test/secure-context-mock.js.map +1 -0
- package/dist/src/test/test-element.d.ts +2 -0
- package/dist/src/test/test-element.d.ts.map +1 -0
- package/dist/src/test/test-element.js +8 -0
- package/dist/src/test/test-element.js.map +1 -0
- package/dist/src/test/test-event.d.ts +17 -0
- package/dist/src/test/test-event.d.ts.map +1 -0
- package/dist/src/test/test-event.js +26 -0
- package/dist/src/test/test-event.js.map +1 -0
- package/dist/src/test/tsconfig.json +30 -0
- package/dist/src/text/text-layout.test.d.ts +2 -0
- package/dist/src/text/text-layout.test.d.ts.map +1 -0
- package/dist/src/text/text-layout.test.js +717 -0
- package/dist/src/text/text-layout.test.js.map +1 -0
- package/dist/src/tsconfig.json +3 -3
- package/dist/src/types/geo.test.d.ts +2 -0
- package/dist/src/types/geo.test.d.ts.map +1 -0
- package/dist/src/types/geo.test.js +657 -0
- package/dist/src/types/geo.test.js.map +1 -0
- package/dist/src/types/time.test.d.ts +2 -0
- package/dist/src/types/time.test.d.ts.map +1 -0
- package/dist/src/types/time.test.js +27 -0
- package/dist/src/types/time.test.js.map +1 -0
- package/dist/src/utils/async-util.test.d.ts +2 -0
- package/dist/src/utils/async-util.test.d.ts.map +1 -0
- package/dist/src/utils/async-util.test.js +55 -0
- package/dist/src/utils/async-util.test.js.map +1 -0
- package/dist/src/utils/color-util.test.d.ts +2 -0
- package/dist/src/utils/color-util.test.d.ts.map +1 -0
- package/dist/src/utils/color-util.test.js +20 -0
- package/dist/src/utils/color-util.test.js.map +1 -0
- package/dist/src/utils/debug.test.d.ts +2 -0
- package/dist/src/utils/debug.test.d.ts.map +1 -0
- package/dist/src/utils/debug.test.js +61 -0
- package/dist/src/utils/debug.test.js.map +1 -0
- package/dist/src/utils/delay-interval.test.d.ts +2 -0
- package/dist/src/utils/delay-interval.test.d.ts.map +1 -0
- package/dist/src/utils/delay-interval.test.js +91 -0
- package/dist/src/utils/delay-interval.test.js.map +1 -0
- package/dist/src/utils/math.test.d.ts +2 -0
- package/dist/src/utils/math.test.d.ts.map +1 -0
- package/dist/src/utils/math.test.js +10 -0
- package/dist/src/utils/math.test.js.map +1 -0
- package/dist/src/utils/str-util.test.d.ts +2 -0
- package/dist/src/utils/str-util.test.d.ts.map +1 -0
- package/dist/src/utils/str-util.test.js +13 -0
- package/dist/src/utils/str-util.test.js.map +1 -0
- package/dist/src/void.d.ts +2 -1
- package/dist/src/void.d.ts.map +1 -1
- package/dist/src/void.js +1 -0
- package/dist/src/void.js.map +1 -1
- package/dist/tools/atlas-pack/atlas-json-parser.test.d.ts +2 -0
- package/dist/tools/atlas-pack/atlas-json-parser.test.d.ts.map +1 -0
- package/dist/tools/atlas-pack/atlas-json-parser.test.js +2109 -0
- package/dist/tools/atlas-pack/atlas-json-parser.test.js.map +1 -0
- package/dist/tools/atlas-pack/atlas.test.aseprite.json +4499 -0
- package/dist/tools/bundle/bundle.d.ts.map +1 -1
- package/dist/tools/bundle/bundle.js +7 -5
- package/dist/tools/bundle/bundle.js.map +1 -1
- package/dist/tools/types/config-file.test.d.ts +2 -0
- package/dist/tools/types/config-file.test.d.ts.map +1 -0
- package/dist/tools/types/config-file.test.js +68 -0
- package/dist/tools/types/config-file.test.js.map +1 -0
- package/dist/tools/types/config.test.d.ts +2 -0
- package/dist/tools/types/config.test.d.ts.map +1 -0
- package/dist/tools/types/config.test.js +125 -0
- package/dist/tools/types/config.test.js.map +1 -0
- package/dist/tools/utils/argv.test.d.ts +9 -0
- package/dist/tools/utils/argv.test.d.ts.map +1 -0
- package/dist/tools/utils/argv.test.js +42 -0
- package/dist/tools/utils/argv.test.js.map +1 -0
- package/package.json +8 -4
- package/readme.md +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../tools/bundle/bundle.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,MAAM,EAAa,MAAM,oBAAoB,CAAA;AAI1D,wBAAsB,MAAM,CAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../tools/bundle/bundle.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,MAAM,EAAa,MAAM,oBAAoB,CAAA;AAI1D,wBAAsB,MAAM,CAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,OAAO,CAAC,IAAI,CAAC,CAgDf"}
|
|
@@ -27,10 +27,10 @@ export async function bundle(config, srcFilenames) {
|
|
|
27
27
|
plugins: [HTMLPlugin(config)],
|
|
28
28
|
tsconfig: config.tsconfigFilename,
|
|
29
29
|
sourcemap: 'linked',
|
|
30
|
-
target: '
|
|
30
|
+
target: 'es2023' // https://esbuild.github.io/content-types/#tsconfig-json
|
|
31
31
|
};
|
|
32
32
|
const atlas = await packAtlas(config.atlas);
|
|
33
|
-
await
|
|
33
|
+
await writeVoidConfig(atlas, config);
|
|
34
34
|
await writeTagSchema(atlas, config);
|
|
35
35
|
if (config.watch) {
|
|
36
36
|
fs.watch(config.atlas.dir, { recursive: true }, (ev, type) => onWatchAssets(config, ev, type));
|
|
@@ -54,13 +54,15 @@ export async function bundle(config, srcFilenames) {
|
|
|
54
54
|
const onWatchAssets = V.debounce(async (config, ev, file) => {
|
|
55
55
|
console.log(`asset ${file} ${ev}.`);
|
|
56
56
|
const atlas = await packAtlas(config.atlas);
|
|
57
|
-
await
|
|
57
|
+
await writeVoidConfig(atlas, config);
|
|
58
|
+
await writeTagSchema(atlas, config);
|
|
58
59
|
}, 500);
|
|
59
60
|
const onWatchConfig = V.debounce(async (config) => {
|
|
60
61
|
const atlas = await packAtlas(config.atlas);
|
|
61
|
-
await
|
|
62
|
+
await writeVoidConfig(atlas, config);
|
|
63
|
+
await writeTagSchema(atlas, config);
|
|
62
64
|
}, 500);
|
|
63
|
-
async function
|
|
65
|
+
async function writeVoidConfig(atlas, config) {
|
|
64
66
|
const gameConfig = {
|
|
65
67
|
atlas,
|
|
66
68
|
input: config.input,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../tools/bundle/bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,CAAC,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAC,SAAS,EAAC,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAc,UAAU,EAAC,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAE3C,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAwB,EACxB,YAA+B;IAE/B,MAAM,IAAI,GAAyB;QACjC,MAAM,EAAE,MAAM,CAAC,KAAK;YAClB,CAAC,CAAC;gBACE,EAAE,EAAE,kFAAkF;aACvF;YACH,CAAC,CAAC,EAAE;QACN,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE;YACN,8DAA8D;YAC9D,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;SACnD;QACD,WAAW,EAAE,CAAC,GAAG,YAAY,CAAC;QAC9B,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,MAAM,EAAE,yCAAyC;QAC3D,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG;QACtB,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC,gBAAgB;QACjC,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,QAAQ,CAAC,yDAAyD;KAC3E,CAAA;IAED,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../tools/bundle/bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-file.test.d.ts","sourceRoot":"","sources":["../../../tools/types/config-file.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { test } from 'node:test';
|
|
3
|
+
import { assert } from "../../src/test/assert.js";
|
|
4
|
+
import { parse } from "./config-file.js";
|
|
5
|
+
test('defaults', () => {
|
|
6
|
+
const config = {
|
|
7
|
+
out: {
|
|
8
|
+
dir: undefined,
|
|
9
|
+
game: 'game',
|
|
10
|
+
name: undefined,
|
|
11
|
+
tagSchema: 'tagSchema'
|
|
12
|
+
},
|
|
13
|
+
atlas: { dir: 'dir', image: 'image' }
|
|
14
|
+
};
|
|
15
|
+
assert(parse('dirname/filename', JSON.stringify(config)), {
|
|
16
|
+
$schema: 'https://oidoid.github.io/void/config-file.v0.json',
|
|
17
|
+
entry: path.resolve('dirname', 'src/assets/index.html'),
|
|
18
|
+
meta: path.resolve('dirname', 'dist/meta.json'),
|
|
19
|
+
out: {
|
|
20
|
+
dir: path.resolve('dirname', 'dist/public'),
|
|
21
|
+
game: path.resolve('dirname', 'game'),
|
|
22
|
+
name: undefined,
|
|
23
|
+
tagSchema: path.resolve('dirname', 'tagSchema')
|
|
24
|
+
},
|
|
25
|
+
atlas: {
|
|
26
|
+
dir: path.resolve('dirname', 'dir'),
|
|
27
|
+
image: path.resolve('dirname', 'image')
|
|
28
|
+
},
|
|
29
|
+
input: 'Default',
|
|
30
|
+
mode: 'Int',
|
|
31
|
+
dirname: 'dirname',
|
|
32
|
+
filename: 'dirname/filename'
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
test('overrides', () => {
|
|
36
|
+
const config = {
|
|
37
|
+
$schema: '$schema',
|
|
38
|
+
entry: 'entry',
|
|
39
|
+
meta: 'meta',
|
|
40
|
+
out: { dir: 'outDir', game: 'game', name: 'name', tagSchema: 'tagSchema' },
|
|
41
|
+
atlas: { dir: 'dir/', image: 'image.webp' },
|
|
42
|
+
input: 'Custom',
|
|
43
|
+
mode: 'Float'
|
|
44
|
+
};
|
|
45
|
+
assert(parse('dirname/filename', JSON.stringify(config)), {
|
|
46
|
+
$schema: '$schema',
|
|
47
|
+
entry: path.resolve('dirname', 'entry'),
|
|
48
|
+
meta: path.resolve('dirname', 'meta'),
|
|
49
|
+
out: {
|
|
50
|
+
dir: path.resolve('dirname', 'outDir'),
|
|
51
|
+
game: path.resolve('dirname', 'game'),
|
|
52
|
+
name: 'name',
|
|
53
|
+
tagSchema: path.resolve('dirname', 'tagSchema')
|
|
54
|
+
},
|
|
55
|
+
atlas: {
|
|
56
|
+
dir: path.resolve('dirname', 'dir/'),
|
|
57
|
+
image: path.resolve('dirname', 'image.webp')
|
|
58
|
+
},
|
|
59
|
+
input: 'Custom',
|
|
60
|
+
mode: 'Float',
|
|
61
|
+
dirname: 'dirname',
|
|
62
|
+
filename: 'dirname/filename'
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
test('overrides', () => {
|
|
66
|
+
assert.throws(() => parse('dirname/filename', ''), /config dirname\/filename unparsable/);
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=config-file.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-file.test.js","sourceRoot":"","sources":["../../../tools/types/config-file.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../../../tools/types/config.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { describe, test } from 'node:test';
|
|
2
|
+
import { assert } from "../../src/test/assert.js";
|
|
3
|
+
import { Config, parseTSConfig } from "./config.js";
|
|
4
|
+
describe('Config()', () => {
|
|
5
|
+
const configFile = {
|
|
6
|
+
$schema: 'schema',
|
|
7
|
+
entry: '/project/src/index.ts',
|
|
8
|
+
meta: '/project/meta.json',
|
|
9
|
+
out: {
|
|
10
|
+
dir: '/project/dist',
|
|
11
|
+
game: '/project/game',
|
|
12
|
+
name: undefined,
|
|
13
|
+
tagSchema: '/project/tagSchema'
|
|
14
|
+
},
|
|
15
|
+
atlas: { dir: '/project/dir', image: '/project/image' },
|
|
16
|
+
input: 'Default',
|
|
17
|
+
mode: 'Int',
|
|
18
|
+
dirname: '/project',
|
|
19
|
+
filename: '/project/void.json'
|
|
20
|
+
};
|
|
21
|
+
const argv = {
|
|
22
|
+
args: [],
|
|
23
|
+
opts: {},
|
|
24
|
+
posargs: [],
|
|
25
|
+
argv: ['node', 'void.ts']
|
|
26
|
+
};
|
|
27
|
+
test('watch mode uses .html suffix', () => {
|
|
28
|
+
const config = Config({ ...argv, opts: { '--watch': true } }, configFile, 'abc1234', { version: '1.0.0', published: '2024-01-01' }, '/project/tsconfig.json', {});
|
|
29
|
+
assert(config.out.filename, 'index.html');
|
|
30
|
+
assert(config.watch, true);
|
|
31
|
+
});
|
|
32
|
+
test('build mode uses versioned suffix', () => {
|
|
33
|
+
const config = Config(argv, configFile, 'abc1234', { version: '1.0.0', published: '2024-01-01' }, '/project/tsconfig.json', {});
|
|
34
|
+
assert(config.out.filename, 'index-v1.0.0+2024-01-01.abc1234.html');
|
|
35
|
+
});
|
|
36
|
+
test('out.name overrides entry stem', () => {
|
|
37
|
+
const config = Config(argv, { ...configFile, out: { ...configFile.out, name: 'game' } }, 'abc1234', { version: '1.0.0' }, '/project/tsconfig.json', {});
|
|
38
|
+
assert(config.out.filename, 'game-v1.0.0.abc1234.html');
|
|
39
|
+
});
|
|
40
|
+
test('conditions from tsconfig', () => {
|
|
41
|
+
const config = Config(argv, configFile, '', {}, '/project/tsconfig.json', {
|
|
42
|
+
compilerOptions: { customConditions: ['dev', 'browser'] }
|
|
43
|
+
});
|
|
44
|
+
assert(config.conditions, ['dev', 'browser']);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('parseTSConfig()', () => {
|
|
48
|
+
test('JSON', () => {
|
|
49
|
+
const jsonc = '{"compilerOptions": {"customConditions": ["dev"]}}';
|
|
50
|
+
assert(parseTSConfig(jsonc, 'tsconfig.json'), {
|
|
51
|
+
compilerOptions: { customConditions: ['dev'] }
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
test('empty JSON', () => {
|
|
55
|
+
assert(parseTSConfig('{}', 'tsconfig.json'), {});
|
|
56
|
+
});
|
|
57
|
+
test('JSON: // in string', () => {
|
|
58
|
+
const jsonc = '{"url": "https://example.com"}';
|
|
59
|
+
assert(parseTSConfig(jsonc, 'tsconfig.json'), {
|
|
60
|
+
url: 'https://example.com'
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
test('JSONC: single-line', () => {
|
|
64
|
+
const jsonc = `{
|
|
65
|
+
// This is a comment.
|
|
66
|
+
"compilerOptions": {
|
|
67
|
+
// Another comment.
|
|
68
|
+
"customConditions": ["dev"]
|
|
69
|
+
}
|
|
70
|
+
}`;
|
|
71
|
+
assert(parseTSConfig(jsonc, 'tsconfig.json'), {
|
|
72
|
+
compilerOptions: { customConditions: ['dev'] }
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
test('JSONC: end-of-line', () => {
|
|
76
|
+
const jsonc = `{
|
|
77
|
+
"compilerOptions": { // inline comment.
|
|
78
|
+
"customConditions": ["dev"] // "another" inline.
|
|
79
|
+
}
|
|
80
|
+
}`;
|
|
81
|
+
assert(parseTSConfig(jsonc, 'tsconfig.json'), {
|
|
82
|
+
compilerOptions: { customConditions: ['dev'] }
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
test('JSONC: trailing commas', () => {
|
|
86
|
+
const jsonc = `{
|
|
87
|
+
"compilerOptions": {
|
|
88
|
+
"customConditions": ["dev"],
|
|
89
|
+
},
|
|
90
|
+
}`;
|
|
91
|
+
assert(parseTSConfig(jsonc, 'tsconfig.json'), {
|
|
92
|
+
compilerOptions: { customConditions: ['dev'] }
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
test('JSONC: // in string with adjacent comment', () => {
|
|
96
|
+
const jsonc = `{
|
|
97
|
+
"url": "https://example.com", // real comment
|
|
98
|
+
"path": "file://localhost/path"
|
|
99
|
+
}`;
|
|
100
|
+
assert(parseTSConfig(jsonc, 'tsconfig.json'), {
|
|
101
|
+
url: 'https://example.com',
|
|
102
|
+
path: 'file://localhost/path'
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
test('JSONC: commented out props', () => {
|
|
106
|
+
const jsonc = `{
|
|
107
|
+
"extends": "./tsconfig.prod.json",
|
|
108
|
+
"compilerOptions": {
|
|
109
|
+
"customConditions": ["dev"], // npm link
|
|
110
|
+
// "paths": {"@oidoid/void": ["../void/src"]} // esbuild
|
|
111
|
+
},
|
|
112
|
+
"references": [{"path": "../void"}] // ts build
|
|
113
|
+
}`;
|
|
114
|
+
assert(parseTSConfig(jsonc, 'tsconfig.json'), {
|
|
115
|
+
extends: './tsconfig.prod.json',
|
|
116
|
+
compilerOptions: { customConditions: ['dev'] },
|
|
117
|
+
references: [{ path: '../void' }]
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
test('invalid', () => {
|
|
121
|
+
const jsonc = '{';
|
|
122
|
+
assert.throws(() => parseTSConfig(jsonc, 'tsconfig.json'), /tsconfig\.json/);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
//# sourceMappingURL=config.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../../tools/types/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAC,MAAM,WAAW,CAAA;AACxC,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAA;AAE/C,OAAO,EAAC,MAAM,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAA;AAGhE,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,MAAM,UAAU,GAA6B;QAC3C,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,oBAAoB;QAC1B,GAAG,EAAE;YACH,GAAG,EAAE,eAAe;YACpB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,oBAAoB;SAChC;QACD,KAAK,EAAE,EAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAC;QACrD,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,oBAAoB;KAC/B,CAAA;IAED,MAAM,IAAI,GAAmB;QAC3B,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;KAC1B,CAAA;IAED,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,MAAM,CACnB,EAAC,GAAG,IAAI,EAAE,IAAI,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,EAAC,EAClC,UAAU,EACV,SAAS,EACT,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAC,EAC3C,wBAAwB,EACxB,EAAE,CACH,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QACzC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,CACnB,IAAI,EACJ,UAAU,EACV,SAAS,EACT,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAC,EAC3C,wBAAwB,EACxB,EAAE,CACH,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,CACnB,IAAI,EACJ,EAAC,GAAG,UAAU,EAAE,GAAG,EAAE,EAAC,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAC,EAAC,EACvD,SAAS,EACT,EAAC,OAAO,EAAE,OAAO,EAAC,EAClB,wBAAwB,EACxB,EAAE,CACH,CAAA;QACD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,wBAAwB,EAAE;YACxE,eAAe,EAAE,EAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAC;SACxD,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QAChB,MAAM,KAAK,GAAG,oDAAoD,CAAA;QAClE,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE;YAC5C,eAAe,EAAE,EAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,EAAC;SAC7C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;QACtB,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,EAAE,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC9B,MAAM,KAAK,GAAG,gCAAgC,CAAA;QAC9C,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE;YAC5C,GAAG,EAAE,qBAAqB;SACf,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC9B,MAAM,KAAK,GAAG;;;;;;MAMZ,CAAA;QACF,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE;YAC5C,eAAe,EAAE,EAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,EAAC;SAC7C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC9B,MAAM,KAAK,GAAG;;;;MAIZ,CAAA;QACF,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE;YAC5C,eAAe,EAAE,EAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,EAAC;SAC7C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAClC,MAAM,KAAK,GAAG;;;;MAIZ,CAAA;QACF,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE;YAC5C,eAAe,EAAE,EAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,EAAC;SAC7C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG;;;MAGZ,CAAA;QACF,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE;YAC5C,GAAG,EAAE,qBAAqB;YAC1B,IAAI,EAAE,uBAAuB;SAClB,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACtC,MAAM,KAAK,GAAG;;;;;;;MAOZ,CAAA;QACF,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE;YAC5C,OAAO,EAAE,sBAAsB;YAC/B,eAAe,EAAE,EAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,EAAC;YAC5C,UAAU,EAAE,CAAC,EAAC,IAAI,EAAE,SAAS,EAAC,CAAC;SACpB,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;QACnB,MAAM,KAAK,GAAG,GAAG,CAAA;QACjB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe,CAAC,EAAE,gBAAgB,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argv.test.d.ts","sourceRoot":"","sources":["../../../tools/utils/argv.test.ts"],"names":[],"mappings":"AAIA,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,IAAI;QACZ,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,UAAU,CAAC,EAAE,IAAI,CAAA;QACjB,SAAS,CAAC,EAAE,IAAI,CAAA;KACjB;CACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { test } from 'node:test';
|
|
2
|
+
import { assert } from "../../src/test/assert.js";
|
|
3
|
+
import { Argv } from "./argv.js";
|
|
4
|
+
test('parses empty.', () => {
|
|
5
|
+
assert(Argv(['/usr/local/bin/node', 'tools/void.ts']), {
|
|
6
|
+
args: [],
|
|
7
|
+
opts: {},
|
|
8
|
+
posargs: [],
|
|
9
|
+
argv: ['/usr/local/bin/node', 'tools/void.ts']
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
test('parses nonempty.', () => {
|
|
13
|
+
assert(Argv([
|
|
14
|
+
'/usr/local/bin/node',
|
|
15
|
+
'tools/void.ts',
|
|
16
|
+
'--config=config',
|
|
17
|
+
'--minify',
|
|
18
|
+
'--watch',
|
|
19
|
+
'a.aseprite',
|
|
20
|
+
'b.aseprite',
|
|
21
|
+
'--',
|
|
22
|
+
'posarg0',
|
|
23
|
+
'posarg1'
|
|
24
|
+
]), {
|
|
25
|
+
args: ['a.aseprite', 'b.aseprite'],
|
|
26
|
+
opts: { '--config': 'config', '--minify': true, '--watch': true },
|
|
27
|
+
posargs: ['posarg0', 'posarg1'],
|
|
28
|
+
argv: [
|
|
29
|
+
'/usr/local/bin/node',
|
|
30
|
+
'tools/void.ts',
|
|
31
|
+
'--config=config',
|
|
32
|
+
'--minify',
|
|
33
|
+
'--watch',
|
|
34
|
+
'a.aseprite',
|
|
35
|
+
'b.aseprite',
|
|
36
|
+
'--',
|
|
37
|
+
'posarg0',
|
|
38
|
+
'posarg1'
|
|
39
|
+
]
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=argv.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argv.test.js","sourceRoot":"","sources":["../../../tools/utils/argv.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAU9B,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;IACzB,MAAM,CAAC,IAAI,CAAC,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC,EAAE;QACrD,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,CAAC,qBAAqB,EAAE,eAAe,CAAC;KAC/C,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC5B,MAAM,CACJ,IAAI,CAAC;QACH,qBAAqB;QACrB,eAAe;QACf,iBAAiB;QACjB,UAAU;QACV,SAAS;QACT,YAAY;QACZ,YAAY;QACZ,IAAI;QACJ,SAAS;QACT,SAAS;KACV,CAAC,EACF;QACE,IAAI,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QAClC,IAAI,EAAE,EAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAC;QAC/D,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;QAC/B,IAAI,EAAE;YACJ,qBAAqB;YACrB,eAAe;YACf,iBAAiB;YACjB,UAAU;YACV,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,IAAI;YACJ,SAAS;YACT,SAAS;SACV;KACF,CACF,CAAA;AACH,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
},
|
|
6
6
|
"bugs": "https://github.com/oidoid/void/issues",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@biomejs/biome": "2.3.
|
|
8
|
+
"@biomejs/biome": "2.3.11",
|
|
9
9
|
"esbuild": "0.27.2",
|
|
10
10
|
"jsdom": "27.4.0",
|
|
11
11
|
"mem-font": "11.0.0-10"
|
|
12
12
|
},
|
|
13
13
|
"description": "basic 2D game library.",
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"@oidoid/config": "0.0.
|
|
15
|
+
"@oidoid/config": "0.0.6",
|
|
16
16
|
"@types/jsdom": "27.0.0",
|
|
17
17
|
"@types/node": "24.4.0",
|
|
18
18
|
"typescript": "5.9.3"
|
|
@@ -24,6 +24,10 @@
|
|
|
24
24
|
".": {
|
|
25
25
|
"dev": "./src/index.ts",
|
|
26
26
|
"default": "./dist/src/index.js"
|
|
27
|
+
},
|
|
28
|
+
"./test": {
|
|
29
|
+
"dev": "./src/test/index.ts",
|
|
30
|
+
"default": "./dist/src/test/index.js"
|
|
27
31
|
}
|
|
28
32
|
},
|
|
29
33
|
"files": [
|
|
@@ -43,7 +47,7 @@
|
|
|
43
47
|
"publishConfig": {
|
|
44
48
|
"access": "public"
|
|
45
49
|
},
|
|
46
|
-
"published": "
|
|
50
|
+
"published": "20260106",
|
|
47
51
|
"repository": {
|
|
48
52
|
"type": "git",
|
|
49
53
|
"url": "git+https://github.com/oidoid/void.git"
|
|
@@ -61,5 +65,5 @@
|
|
|
61
65
|
"version": "npm pkg set published=$(date +%Y%m%d) && npm run clean && npm test"
|
|
62
66
|
},
|
|
63
67
|
"type": "module",
|
|
64
|
-
"version": "0.1.
|
|
68
|
+
"version": "0.1.8"
|
|
65
69
|
}
|
package/readme.md
CHANGED
|
@@ -62,7 +62,7 @@ sprite is a kind of common denominator for position and area. if the ent should
|
|
|
62
62
|
|
|
63
63
|
### ECS Order
|
|
64
64
|
|
|
65
|
-
ents are updated in insertion order. the cam and then cursor _ents_ should appear first.
|
|
65
|
+
lists then ents are typically updated in insertion order. the cam and then cursor _ents_ should appear first.
|
|
66
66
|
|
|
67
67
|
components are parsed and updated in key order. the recommended order is:
|
|
68
68
|
|