@williamthorsen/tsconfig 0.11.0 → 0.12.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/.meta/changelog.json +34 -0
- package/.readyup/kits/default.js +6 -6
- package/.readyup/manifest.json +7 -7
- package/CHANGELOG.md +12 -0
- package/README.md +13 -13
- package/package.json +2 -2
- package/tsconfig.base.json +2 -1
package/.meta/changelog.json
CHANGED
|
@@ -1,4 +1,38 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"version": "0.12.0",
|
|
4
|
+
"date": "2026-10-18",
|
|
5
|
+
"sections": [
|
|
6
|
+
{
|
|
7
|
+
"title": "🎉 Features",
|
|
8
|
+
"audience": "all",
|
|
9
|
+
"items": [
|
|
10
|
+
{
|
|
11
|
+
"description": "Adds `ESNext.Array` to the `lib` in `tsconfig.base.json`, so that a call to `Array.fromAsync`, which `unicorn/prefer-array-from-async` recommends, typechecks without a local `lib` override. (#284)",
|
|
12
|
+
"hash": "2d85c299036a8dbd6b385a976398d477ee6c5b83",
|
|
13
|
+
"entry": 1
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"version": "0.11.1",
|
|
21
|
+
"date": "2026-10-17",
|
|
22
|
+
"sections": [
|
|
23
|
+
{
|
|
24
|
+
"title": "♻️ Refactoring",
|
|
25
|
+
"audience": "dev",
|
|
26
|
+
"items": [
|
|
27
|
+
{
|
|
28
|
+
"description": "Returns the single value directly from `flatMap` callbacks in the readiness predicates and kits of `@williamthorsen/tsconfig` and `@williamthorsen/eslint-config-typescript`, rather than wrapping it in a one-element array. (#273)",
|
|
29
|
+
"hash": "1041ba308e4415a8f7a0ebd80d3aad743a848fe1",
|
|
30
|
+
"entry": 4
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
},
|
|
2
36
|
{
|
|
3
37
|
"version": "0.11.0",
|
|
4
38
|
"date": "2026-10-16",
|
package/.readyup/kits/default.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** @noformat -- @generated. Do not edit. Compiled by rdy. */
|
|
2
2
|
/* eslint-disable */
|
|
3
|
-
export const __readyupVersion = "0.41.
|
|
3
|
+
export const __readyupVersion = "0.41.1";
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
// .readyup/kits/default.ts
|
|
@@ -62,7 +62,7 @@ function readDeclaredEsYear(compilerOptions) {
|
|
|
62
62
|
if (targetYear !== void 0) return targetYear;
|
|
63
63
|
const libYears = toStringArray(compilerOptions["lib"]).flatMap((entry) => {
|
|
64
64
|
const year = parseEsYear(entry);
|
|
65
|
-
return year === void 0 ? [] :
|
|
65
|
+
return year === void 0 ? [] : year;
|
|
66
66
|
});
|
|
67
67
|
return libYears.toSorted().at(-1);
|
|
68
68
|
}
|
|
@@ -97,7 +97,7 @@ function findEscapingPathsInField(entries, field, judgedDir) {
|
|
|
97
97
|
const declaredDir = dirname(declaring.path);
|
|
98
98
|
return declared.filter((value) => typeof value === "string").flatMap((value) => {
|
|
99
99
|
const outward = findOutwardPath(value, declaredDir, judgedDir);
|
|
100
|
-
return outward === void 0 ? [] :
|
|
100
|
+
return outward === void 0 ? [] : { declaredIn: declaring.path, field, path: outward };
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
103
|
function findOutwardPath(value, declaredDir, judgedDir) {
|
|
@@ -155,7 +155,7 @@ function classifyNodeEsYear(major, esYearForMajor) {
|
|
|
155
155
|
function findLowestNodeMajor(floors) {
|
|
156
156
|
const majors = floors.flatMap((floor) => {
|
|
157
157
|
const major = readNodeMajor(floor);
|
|
158
|
-
return major === void 0 ? [] :
|
|
158
|
+
return major === void 0 ? [] : major;
|
|
159
159
|
});
|
|
160
160
|
return majors.length === 0 ? void 0 : Math.min(...majors);
|
|
161
161
|
}
|
|
@@ -306,7 +306,7 @@ function listDeclaredNodeFloors() {
|
|
|
306
306
|
const manifest = readJsonFile(resolveDirPath(dir, "package.json"));
|
|
307
307
|
if (manifest === void 0) return [];
|
|
308
308
|
const floor = readEnginesNodeFloor(manifest);
|
|
309
|
-
return floor.kind === "found" ?
|
|
309
|
+
return floor.kind === "found" ? floor.floor : [];
|
|
310
310
|
});
|
|
311
311
|
if (engineFloors.length > 0) return engineFloors;
|
|
312
312
|
const toolVersionsFloor = readToolVersionsNode();
|
|
@@ -325,7 +325,7 @@ function nodeFloorSupportsBaseEsYear() {
|
|
|
325
325
|
function noEscapingPaths() {
|
|
326
326
|
const judged = findTsconfigs().flatMap((path) => {
|
|
327
327
|
const chain = readChain(path);
|
|
328
|
-
return chain === void 0 ? [] :
|
|
328
|
+
return chain === void 0 ? [] : { escapes: findEscapingPaths(chain.entries), path };
|
|
329
329
|
});
|
|
330
330
|
const offenders = judged.filter((judgedConfig) => judgedConfig.escapes.length > 0);
|
|
331
331
|
const progress = {
|
package/.readyup/manifest.json
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"esbuildVersion": "0.28.2",
|
|
34
34
|
"inputs": [
|
|
35
35
|
{
|
|
36
|
-
"hash": "
|
|
36
|
+
"hash": "76ef7a7e",
|
|
37
37
|
"kind": "module",
|
|
38
38
|
"path": "kits/default.ts"
|
|
39
39
|
},
|
|
@@ -48,12 +48,12 @@
|
|
|
48
48
|
"path": "../src/readiness/classifyChain.ts"
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
|
-
"hash": "
|
|
51
|
+
"hash": "a640083e",
|
|
52
52
|
"kind": "module",
|
|
53
53
|
"path": "../src/readiness/es-year.ts"
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
|
-
"hash": "
|
|
56
|
+
"hash": "cba222cb",
|
|
57
57
|
"kind": "module",
|
|
58
58
|
"path": "../src/readiness/findEscapingPaths.ts"
|
|
59
59
|
},
|
|
@@ -68,17 +68,17 @@
|
|
|
68
68
|
"path": "../src/readiness/listSearchDirs.ts"
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
|
-
"hash": "
|
|
71
|
+
"hash": "82ff91b4",
|
|
72
72
|
"kind": "module",
|
|
73
73
|
"path": "../src/readiness/node-floor.ts"
|
|
74
74
|
}
|
|
75
75
|
],
|
|
76
76
|
"name": "default",
|
|
77
77
|
"path": "kits/default.js",
|
|
78
|
-
"readyupVersion": "0.41.
|
|
78
|
+
"readyupVersion": "0.41.1",
|
|
79
79
|
"source": "kits/default.ts",
|
|
80
|
-
"sourceHash": "
|
|
81
|
-
"targetHash": "
|
|
80
|
+
"sourceHash": "76ef7a7e",
|
|
81
|
+
"targetHash": "c3b50bc8"
|
|
82
82
|
}
|
|
83
83
|
]
|
|
84
84
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## 0.12.0 — 2026-10-18
|
|
6
|
+
|
|
7
|
+
### 🎉 Features
|
|
8
|
+
|
|
9
|
+
- Adds `ESNext.Array` to the `lib` in `tsconfig.base.json`, so that a call to `Array.fromAsync`, which `unicorn/prefer-array-from-async` recommends, typechecks without a local `lib` override. (#284)
|
|
10
|
+
|
|
11
|
+
## 0.11.1 — 2026-10-17
|
|
12
|
+
|
|
13
|
+
### ♻️ Refactoring
|
|
14
|
+
|
|
15
|
+
- Returns the single value directly from `flatMap` callbacks in the readiness predicates and kits of `@williamthorsen/tsconfig` and `@williamthorsen/eslint-config-typescript`, rather than wrapping it in a one-element array. (#273)
|
|
16
|
+
|
|
5
17
|
## 0.11.0 — 2026-10-16
|
|
6
18
|
|
|
7
19
|
### 🎉 Features
|
package/README.md
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
Shared TypeScript base config for Node-only projects. Inlines the settings of [`@tsconfig/strictest`](https://www.npmjs.com/package/@tsconfig/strictest) and adds the Node and build options that it leaves out, so a consuming repo declares only what is genuinely its own.
|
|
6
6
|
|
|
7
7
|
<!-- section:release-notes -->
|
|
8
|
-
## Release notes — v0.
|
|
8
|
+
## Release notes — v0.12.0 (2026-10-18)
|
|
9
9
|
|
|
10
10
|
### 🎉 Features
|
|
11
11
|
|
|
12
|
-
-
|
|
12
|
+
- Adds `ESNext.Array` to the `lib` in `tsconfig.base.json`, so that a call to `Array.fromAsync`, which `unicorn/prefer-array-from-async` recommends, typechecks without a local `lib` override. (#284)
|
|
13
13
|
<!-- /section:release-notes -->
|
|
14
14
|
|
|
15
15
|
## Installation
|
|
@@ -52,17 +52,17 @@ A package that extends a framework base such as `astro/tsconfigs/base` or `@tsco
|
|
|
52
52
|
|
|
53
53
|
Everything `@tsconfig/strictest` sets, plus the Node and build options it omits:
|
|
54
54
|
|
|
55
|
-
| Option | Value
|
|
56
|
-
| ---------------------------- |
|
|
57
|
-
| `allowImportingTsExtensions` | `true`
|
|
58
|
-
| `lib` | `["ES2025", "ESNext.Disposable"]` |
|
|
59
|
-
| `module` | `"NodeNext"`
|
|
60
|
-
| `moduleDetection` | `"force"`
|
|
61
|
-
| `noEmit` | `true`
|
|
62
|
-
| `removeComments` | `true`
|
|
63
|
-
| `target` | `"ES2025"`
|
|
64
|
-
|
|
65
|
-
`target` and `lib` are pinned to a Node 24 floor. `ESNext.Disposable` supplies the explicit-resource-management declarations (`using`, `Disposable`, `DisposableStack`),
|
|
55
|
+
| Option | Value |
|
|
56
|
+
| ---------------------------- | ------------------------------------------------- |
|
|
57
|
+
| `allowImportingTsExtensions` | `true` |
|
|
58
|
+
| `lib` | `["ES2025", "ESNext.Disposable", "ESNext.Array"]` |
|
|
59
|
+
| `module` | `"NodeNext"` |
|
|
60
|
+
| `moduleDetection` | `"force"` |
|
|
61
|
+
| `noEmit` | `true` |
|
|
62
|
+
| `removeComments` | `true` |
|
|
63
|
+
| `target` | `"ES2025"` |
|
|
64
|
+
|
|
65
|
+
`target` and `lib` are pinned to a Node 24 floor. `ESNext.Disposable` supplies the explicit-resource-management declarations (`using`, `Disposable`, `DisposableStack`), and `ESNext.Array` supplies `Array.fromAsync`; Node 24 implements both, but the numbered libs do not yet include them.
|
|
66
66
|
|
|
67
67
|
## What the consumer owns
|
|
68
68
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@williamthorsen/tsconfig",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Shared TypeScript base config for Node-only projects",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tsconfig",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@tsconfig/strictest": "2.0.8",
|
|
35
35
|
"esbuild": "0.28.2",
|
|
36
|
-
"readyup": "0.41.
|
|
36
|
+
"readyup": "0.41.1",
|
|
37
37
|
"vitest": "4.1.11"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
package/tsconfig.base.json
CHANGED
|
@@ -33,7 +33,8 @@
|
|
|
33
33
|
"rewriteRelativeImportExtensions": true,
|
|
34
34
|
// Without this, `lib` follows `target` into the `.full` variant, admitting DOM globals.
|
|
35
35
|
// `ESNext.Disposable` contains the explicit-resource-management declarations; no numbered lib has them.
|
|
36
|
-
|
|
36
|
+
// `ESNext.Array` contains `Array.fromAsync`, which Node 24 implements; no numbered lib has it.
|
|
37
|
+
"lib": ["ES2025", "ESNext.Disposable", "ESNext.Array"],
|
|
37
38
|
// Default is `ES2022` with `Bundler` resolution: wrong for published Node packages.
|
|
38
39
|
"module": "NodeNext",
|
|
39
40
|
// Files with no import or export would otherwise be scripts sharing global scope.
|