-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathtsconfig.json
More file actions
43 lines (43 loc) · 2.38 KB
/
Copy pathtsconfig.json
File metadata and controls
43 lines (43 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "./dist",
// [#11663 L2] Widened from `./src` as a CONSEQUENCE of the `paths` rule
// below, exactly as `packages/plugins/plugin-security/tsconfig.json`
// documents (#11184, itself following `packages/rest` / #9960):
// redirecting `@objectstack/types` to its source puts
// `packages/types/src/**` into this program, and `rootDir` is enforced over
// every program file even under `--noEmit`. `..` (= `packages/`) is the
// directory that contains every file in the program. Emit is unaffected:
// this package builds with tsup.
"rootDir": "..",
"types": ["node"],
// [#11663 L2] `@objectstack/types` is imported as a VALUE by
// `src/security/platform-admin.ts` (`resolvePlatformOwnerEmail`,
// `isEmailVerifiedUserRow`). Without this rule its TYPES resolve through
// the workspace link to `dist/*.d.ts` — a build artifact — so a stale dist
// would make this package's type verdict a function of build state rather
// than of the source in the checkout (`check:type-source-resolution`
// refuses exactly that). Anchored to the bare specifier only: nothing here
// imports an `@objectstack/types/*` subpath, and a `paths` target matching
// nothing on disk would silently fall back to node resolution.
"paths": {
"@objectstack/types": ["../types/src/index.ts"]
}
},
"include": ["src/**/*"],
// [#14613] The TEST layer moved to the `tsconfig.test.json` sibling, which
// `package.json`'s `typecheck` NAMES via `check:test-typecheck --project`.
// This stays the BUILD config. Splitting the two is what let a `typecheck`
// script exist here at all: this package carried a `check:type-check-coverage`
// DEBT entry of 98, and all 98 sat in `src/**/*.test.ts` while the 63
// non-test source files measured ZERO — so the build program graduates as it
// stands, and the test layer keeps a per-file, shrink-only ledger instead of
// being repaired in the PR that opens the gate.
//
// ⚠️ 22 of the 98 were TS2835 ("dynamic import needs .js") and are an
// artifact of checking vitest-executed ESM under this config's NodeNext, not
// a fact about the tests. The sibling config answers that with vitest's own
// module semantics; ⛔ it loosens no strictness flag.
"exclude": ["node_modules", "dist", "**/*.spec.ts", "**/*.test.ts"]
}