@oidoid/void 0.1.7 → 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 +1 -1
- package/dist/public/index.js.map +1 -1
- package/dist/public/{void-v0.1.7+20260106.c6b562a.html → void-v0.1.8+20260106.f2ce523.html} +2 -2
- 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.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/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.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.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.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.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/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.js +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 +7 -3
|
@@ -27,7 +27,7 @@ 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
33
|
await writeVoidConfig(atlas, config);
|
|
@@ -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":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAA;AAC/C,OAAO,EAAC,KAAK,EAA4B,MAAM,kBAAkB,CAAA;AAEjE,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;IACpB,MAAM,MAAM,GAAyB;QACnC,GAAG,EAAE;YACH,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,WAAW;SACvB;QACD,KAAK,EAAE,EAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAC;KACpC,CAAA;IACD,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE;QACxD,OAAO,EAAE,mDAAmD;QAC5D,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,uBAAuB,CAAC;QACvD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC;QAC/C,GAAG,EAAE;YACH,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC;YAC3C,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;YACrC,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC;SAChD;QACD,KAAK,EAAE;YACL,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;YACnC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;SACxC;QACD,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,KAAK;QAEX,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,kBAAkB;KAC7B,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IACrB,MAAM,MAAM,GAAmC;QAC7C,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,EAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAC;QACxE,KAAK,EAAE,EAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAC;QACzC,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,OAAO;KACd,CAAA;IACD,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE;QACxD,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;QACvC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;QACrC,GAAG,EAAE;YACH,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC;YACtC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;YACrC,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC;SAChD;QACD,KAAK,EAAE;YACL,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;YACpC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC;SAC7C;QACD,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,OAAO;QAEb,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,kBAAkB;KAC7B,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IACrB,MAAM,CAAC,MAAM,CACX,GAAG,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,CAAC,EACnC,qCAAqC,CACtC,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -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":"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"}
|
|
@@ -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": [
|
|
@@ -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
|
}
|