@oidoid/void 0.1.2 → 0.1.4
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 +6 -6
- package/dist/public/index.js.map +3 -3
- package/dist/public/{void-v0.1.2+20260102.6a74610.html → void-v0.1.4+20260103.39142b2.html} +7 -7
- package/dist/src/demo/index.js +0 -2
- package/dist/src/demo/index.js.map +1 -1
- package/dist/src/graphics/renderer.d.ts.map +1 -1
- package/dist/src/graphics/renderer.js +0 -2
- package/dist/src/graphics/renderer.js.map +1 -1
- package/dist/src/void.d.ts.map +1 -1
- package/dist/src/void.js +3 -0
- package/dist/src/void.js.map +1 -1
- package/dist/tools/bundle/bundle.d.ts.map +1 -1
- package/dist/tools/bundle/bundle.js +2 -1
- package/dist/tools/bundle/bundle.js.map +1 -1
- package/dist/tools/types/config.d.ts +11 -3
- package/dist/tools/types/config.d.ts.map +1 -1
- package/dist/tools/types/config.js +35 -4
- package/dist/tools/types/config.js.map +1 -1
- package/package.json +6 -3
- package/readme.md +19 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
1
2
|
import path from 'node:path';
|
|
2
3
|
import { Argv } from "../utils/argv.js";
|
|
3
4
|
import { exec } from "../utils/exec.js";
|
|
@@ -5,11 +6,18 @@ import { parseConfigFile } from "./config-file.js";
|
|
|
5
6
|
export async function readConfig(args) {
|
|
6
7
|
const argv = Argv(args);
|
|
7
8
|
const configFile = await parseConfigFile(argv.opts['--config'] ?? 'void.json');
|
|
8
|
-
|
|
9
|
+
let hash = '0000000';
|
|
10
|
+
try {
|
|
11
|
+
hash = (await exec('git', 'rev-parse', '--short', 'HEAD')).trim();
|
|
12
|
+
}
|
|
13
|
+
catch { }
|
|
9
14
|
const packageJSON = JSON.parse((await exec('npm', 'pkg', 'get', 'version', 'published')) || '{}');
|
|
10
|
-
|
|
15
|
+
const tsconfigFilename = path.resolve(configFile.dirname, argv.opts['--tsconfig'] ?? 'tsconfig.json');
|
|
16
|
+
const tsconfig = await readTSConfig(tsconfigFilename);
|
|
17
|
+
return Config(argv, configFile, hash, packageJSON, tsconfigFilename, tsconfig);
|
|
11
18
|
}
|
|
12
|
-
|
|
19
|
+
/** @internal */
|
|
20
|
+
export function Config(argv, configFile, hash, packageJSON, tsconfigFilename, tsconfig) {
|
|
13
21
|
let fileStem = path.basename(configFile.entry).replace(/\.[^.]+$/, '');
|
|
14
22
|
if (configFile.out.name && !argv.opts['--watch'])
|
|
15
23
|
fileStem = configFile.out.name;
|
|
@@ -35,7 +43,8 @@ export function Config(argv, configFile, hash, packageJSON) {
|
|
|
35
43
|
init: configFile.init,
|
|
36
44
|
dirname: configFile.dirname,
|
|
37
45
|
filename: configFile.filename,
|
|
38
|
-
|
|
46
|
+
tsconfigFilename,
|
|
47
|
+
conditions: tsconfig.compilerOptions?.customConditions ?? [],
|
|
39
48
|
minify: argv.opts['--minify'] ?? false,
|
|
40
49
|
oneFile: argv.opts['--one-file'] ?? false,
|
|
41
50
|
watch: argv.opts['--watch'] ?? false,
|
|
@@ -47,4 +56,26 @@ export function Config(argv, configFile, hash, packageJSON) {
|
|
|
47
56
|
argv
|
|
48
57
|
};
|
|
49
58
|
}
|
|
59
|
+
async function readTSConfig(filename) {
|
|
60
|
+
let str;
|
|
61
|
+
try {
|
|
62
|
+
str = await readFile(filename, 'utf8');
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
throw Error(`tsconfig ${filename} unreadable`, { cause: err });
|
|
66
|
+
}
|
|
67
|
+
return parseTSConfig(str, filename);
|
|
68
|
+
}
|
|
69
|
+
/** @internal */
|
|
70
|
+
export function parseTSConfig(jsonc, filename) {
|
|
71
|
+
const stripped = jsonc
|
|
72
|
+
.replace(/("(?:\\.|[^"\\])*")|\/\/[^\r\n]*/g, (_match, group0) => group0 ?? '')
|
|
73
|
+
.replace(/,(\s*[}\]])/g, '$1'); // trailing commas.
|
|
74
|
+
try {
|
|
75
|
+
return JSON.parse(stripped);
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
throw Error(`tsconfig ${filename} unparseable`, { cause: err });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
50
81
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../tools/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAGL,eAAe,EAChB,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../tools/types/config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -21,7 +21,10 @@
|
|
|
21
21
|
"node": ">=24.0"
|
|
22
22
|
},
|
|
23
23
|
"exports": {
|
|
24
|
-
".":
|
|
24
|
+
".": {
|
|
25
|
+
"dev": "./src/index.ts",
|
|
26
|
+
"default": "./dist/src/index.js"
|
|
27
|
+
}
|
|
25
28
|
},
|
|
26
29
|
"files": [
|
|
27
30
|
"dist/",
|
|
@@ -39,7 +42,7 @@
|
|
|
39
42
|
"publishConfig": {
|
|
40
43
|
"access": "public"
|
|
41
44
|
},
|
|
42
|
-
"published": "
|
|
45
|
+
"published": "20260103",
|
|
43
46
|
"repository": {
|
|
44
47
|
"type": "git",
|
|
45
48
|
"url": "git+https://github.com/oidoid/void.git"
|
|
@@ -57,5 +60,5 @@
|
|
|
57
60
|
"version": "npm pkg set published=$(date +%Y%m%d) && npm run clean && npm test"
|
|
58
61
|
},
|
|
59
62
|
"type": "module",
|
|
60
|
-
"version": "0.1.
|
|
63
|
+
"version": "0.1.4"
|
|
61
64
|
}
|
package/readme.md
CHANGED
|
@@ -15,6 +15,25 @@ npm install --save @oidoid/void
|
|
|
15
15
|
|
|
16
16
|
## Development
|
|
17
17
|
|
|
18
|
+
### Local Development
|
|
19
|
+
|
|
20
|
+
1. clone void as a sibling directory of the game.
|
|
21
|
+
2. `npm link ../void` from the game.
|
|
22
|
+
3. add `customConditions` to the root `tsconfig` for esbuild and a void reference for tsc. Eg:
|
|
23
|
+
|
|
24
|
+
```jsonc
|
|
25
|
+
{
|
|
26
|
+
"extends": "./tsconfig.prod.json",
|
|
27
|
+
"compilerOptions": {
|
|
28
|
+
"customConditions": ["dev"],
|
|
29
|
+
},
|
|
30
|
+
"references": [{"path": "../void"}]
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
it's possible to use `"paths": {"@oidoid/void": ["../void/src"]}` instead of or in addition to `customConditions`.
|
|
35
|
+
4. for unit tests, run with `NODE_OPTIONS=--conditions=development`.
|
|
36
|
+
|
|
18
37
|
### Declaration Merging
|
|
19
38
|
|
|
20
39
|
to avoid threading template parameters throughout all code, declaration merging is used for the following:
|