@typed-sql/config 2.0.0 → 2.1.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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,55 @@
|
|
|
1
1
|
# @typed-sql/config
|
|
2
2
|
|
|
3
|
+
## 2.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 1041bfa: Add deterministic conformance failure injection and expose the bounded config and language-server cache defaults used by reliability suites.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 1041bfa: Reuse a bounded content-addressed config module cache so repeated project and editor lifecycles do not retain a new TypeScript loader for unchanged configuration.
|
|
12
|
+
- Updated dependencies [1041bfa]
|
|
13
|
+
- Updated dependencies [1041bfa]
|
|
14
|
+
- Updated dependencies [1041bfa]
|
|
15
|
+
- Updated dependencies [1041bfa]
|
|
16
|
+
- Updated dependencies [1041bfa]
|
|
17
|
+
- Updated dependencies [1041bfa]
|
|
18
|
+
- Updated dependencies [1041bfa]
|
|
19
|
+
- Updated dependencies [1041bfa]
|
|
20
|
+
- Updated dependencies [1041bfa]
|
|
21
|
+
- Updated dependencies [1041bfa]
|
|
22
|
+
- Updated dependencies [1041bfa]
|
|
23
|
+
- @typed-sql/core@2.1.0
|
|
24
|
+
|
|
25
|
+
## 2.1.0-rc.1
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- Publish the coherent 2.1.0-rc.1 release-candidate train.
|
|
30
|
+
|
|
31
|
+
## 2.1.0-rc.0
|
|
32
|
+
|
|
33
|
+
### Minor Changes
|
|
34
|
+
|
|
35
|
+
- 5d5d849: Add deterministic conformance failure injection and expose the bounded config and language-server cache defaults used by reliability suites.
|
|
36
|
+
|
|
37
|
+
### Patch Changes
|
|
38
|
+
|
|
39
|
+
- f902a97: Reuse a bounded content-addressed config module cache so repeated project and editor lifecycles do not retain a new TypeScript loader for unchanged configuration.
|
|
40
|
+
- Updated dependencies [58bd4d1]
|
|
41
|
+
- Updated dependencies [58aa9ef]
|
|
42
|
+
- Updated dependencies [65b662f]
|
|
43
|
+
- Updated dependencies [e433feb]
|
|
44
|
+
- Updated dependencies [0efc90c]
|
|
45
|
+
- Updated dependencies [ff0e3bb]
|
|
46
|
+
- Updated dependencies [6f5b977]
|
|
47
|
+
- Updated dependencies [1c64475]
|
|
48
|
+
- Updated dependencies [1c64475]
|
|
49
|
+
- Updated dependencies [1c64475]
|
|
50
|
+
- Updated dependencies [1c64475]
|
|
51
|
+
- @typed-sql/core@2.1.0-rc.0
|
|
52
|
+
|
|
3
53
|
## 2.0.0
|
|
4
54
|
|
|
5
55
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAuB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAShG,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAIrC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAWD,wBAAsB,cAAc,CAAC,KAAK,SAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAW3E;AAcD,wBAAsB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAiCvF;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAElE"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
1
2
|
import { constants } from "node:fs";
|
|
2
|
-
import { access } from "node:fs/promises";
|
|
3
|
+
import { access, readFile } from "node:fs/promises";
|
|
3
4
|
import { dirname, join, resolve } from "node:path";
|
|
4
5
|
import { pathToFileURL } from "node:url";
|
|
5
6
|
import { assertDialectPlugin } from "@typed-sql/core";
|
|
6
|
-
import {
|
|
7
|
+
import { register } from "tsx/esm/api";
|
|
7
8
|
const configNames = [
|
|
8
9
|
"typed-sql.config.ts",
|
|
9
10
|
"typed-sql.config.mts",
|
|
10
11
|
"typed-sql.config.mjs",
|
|
11
12
|
"typed-sql.config.js",
|
|
12
13
|
];
|
|
14
|
+
export const CONFIG_CACHE_LIMIT = 32;
|
|
15
|
+
const configLoader = register({ namespace: "typed-sql-config" });
|
|
16
|
+
const configCache = new Map();
|
|
13
17
|
async function exists(path) {
|
|
14
18
|
try {
|
|
15
19
|
await access(path, constants.F_OK);
|
|
@@ -51,10 +55,36 @@ export async function loadConfig(options = {}) {
|
|
|
51
55
|
const file = options.file === undefined
|
|
52
56
|
? await discoverConfig(options.cwd)
|
|
53
57
|
: resolve(options.cwd ?? process.cwd(), options.file);
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
const source = await readFile(file);
|
|
59
|
+
const hash = createHash("sha256").update(source).digest("hex");
|
|
60
|
+
const key = `${file}\0${hash}`;
|
|
61
|
+
const cached = configCache.get(key);
|
|
62
|
+
if (cached !== undefined) {
|
|
63
|
+
configCache.delete(key);
|
|
64
|
+
configCache.set(key, cached);
|
|
65
|
+
return cached;
|
|
66
|
+
}
|
|
67
|
+
const specifier = new URL(pathToFileURL(file));
|
|
68
|
+
specifier.searchParams.set("typed-sql-config", hash);
|
|
69
|
+
const loading = configLoader
|
|
70
|
+
.import(specifier.href, pathToFileURL(join(dirname(file), "package.json")).href)
|
|
71
|
+
.then((module) => {
|
|
72
|
+
if (!isConfig(module.default))
|
|
73
|
+
throw new TypeError(`${file} must default-export defineConfig({...})`);
|
|
74
|
+
return { file, directory: dirname(file), config: module.default };
|
|
75
|
+
})
|
|
76
|
+
.catch((error) => {
|
|
77
|
+
configCache.delete(key);
|
|
78
|
+
throw error;
|
|
79
|
+
});
|
|
80
|
+
configCache.set(key, loading);
|
|
81
|
+
while (configCache.size > CONFIG_CACHE_LIMIT) {
|
|
82
|
+
const oldest = configCache.keys().next().value;
|
|
83
|
+
if (oldest === undefined)
|
|
84
|
+
break;
|
|
85
|
+
configCache.delete(oldest);
|
|
86
|
+
}
|
|
87
|
+
return loading;
|
|
58
88
|
}
|
|
59
89
|
export function fromConfig(directory, path) {
|
|
60
90
|
return resolve(directory, path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typed-sql/config",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Shared typed-sql config discovery and TypeScript config loading.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Lojhan",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"tsx": "4.23.12",
|
|
40
|
-
"@typed-sql/core": "2.
|
|
40
|
+
"@typed-sql/core": "2.1.0"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
43
|
"test": "poku test --reporter=compact --enforce",
|