Skip to content
/ bud Public

Commit f133de1

Browse files
authored
🗂️ types(none): improve typechecking (#2396)
- types: set strict mode for @roots/blade-loader - types: set strict mode for @roots/bud-babel - types: set strict mode for @roots/bud-build ## Type of change **PATCH: backwards compatible change**
1 parent 0945f3c commit f133de1

File tree

125 files changed

+930
-773
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

125 files changed

+930
-773
lines changed

config/vitest/alias.ts

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,49 @@ export default {
1212
...packages.reduce((aliases, packageRoot) => {
1313
const signifier = relative(path(), packageRoot)
1414
aliases[signifier] = join(packageRoot, `src`)
15-
aliases[join(signifier, `*`)] = join(packageRoot, `src`, `*`)
1615
return aliases
1716
}, {}),
17+
'@roots/blade-loader': path(`sources/@roots/blade-loader/src/plugin.ts`),
18+
'@roots/browserslist-config': path(`sources/@roots/browserslist-config`),
19+
'@roots/bud': path(`sources/@roots/bud/src`),
20+
'@roots/bud-api': path(`sources/@roots/bud-api/src`),
21+
'@roots/bud-babel': path(`sources/@roots/bud-babel/src`),
22+
'@roots/bud-build': path(`sources/@roots/bud-build/src`),
1823
'@roots/bud-cache': path(`sources/@roots/bud-cache/src`),
24+
'@roots/bud-client': path(`sources/@roots/bud-client/src`),
25+
'@roots/bud-compiler': path(`sources/@roots/bud-compiler/src`),
26+
'@roots/bud-compress': path(`sources/@roots/bud-compress/src`),
27+
'@roots/bud-criticalcss': path(`sources/@roots/bud-criticalcss/src`),
28+
'@roots/bud-dashboard': path(`sources/@roots/bud-dashboard/src`),
29+
'@roots/bud-emotion': path(`sources/@roots/bud-emotion/src`),
30+
'@roots/bud-entrypoints': path(`sources/@roots/bud-entrypoints/src`),
31+
'@roots/bud-esbuild': path(`sources/@roots/bud-esbuild/src`),
32+
'@roots/bud-eslint': path(`sources/@roots/bud-eslint/src`),
33+
'@roots/bud-extensions': path(`sources/@roots/bud-extensions/src`),
34+
'@roots/bud-framework': path(`sources/@roots/bud-framework/src`),
35+
'@roots/bud-hooks': path(`sources/@roots/bud-hooks/src`),
36+
'@roots/bud-imagemin': path(`sources/@roots/bud-imagemin/src`),
37+
'@roots/bud-mdx': path(`sources/@roots/bud-mdx/src`),
38+
'@roots/bud-minify': path(`sources/@roots/bud-minify/src`),
39+
'@roots/bud-postcss': path(`sources/@roots/bud-postcss/src`),
40+
'@roots/bud-preset-recommend': path(`sources/@roots/bud-preset-recommend/src`),
41+
'@roots/bud-preset-wordpress': path(`sources/@roots/bud-preset-wordpress/src`),
42+
'@roots/bud-prettier': path(`sources/@roots/bud-prettier/src`),
43+
'@roots/bud-purgecss': path(`sources/@roots/bud-purgecss/src`),
44+
'@roots/bud-react': path(`sources/@roots/bud-react/src`),
45+
'@roots/bud-sass': path(`sources/@roots/bud-sass/src`),
46+
'@roots/bud-server': path(`sources/@roots/bud-server/src`),
47+
'@roots/bud-solid': path(`sources/@roots/bud-solid/src`),
48+
'@roots/bud-stylelint': path(`sources/@roots/bud-stylelint/src`),
49+
'@roots/bud-support': path(`sources/@roots/bud-support/src`),
50+
'@roots/bud-swc': path(`sources/@roots/bud-swc/src`),
51+
'@roots/bud-tailwindcss': path(`sources/@roots/bud-tailwindcss/src`),
52+
'@roots/bud-tailwindcss-theme-json': path(`sources/@roots/bud-tailwindcss-theme-json/src`),
53+
'@roots/bud-typescript': path(`sources/@roots/bud-typescript/src`),
54+
'@roots/bud-vue': path(`sources/@roots/bud-vue/src`),
55+
'@roots/bud-wordpress-dependencies': path(`sources/@roots/bud-wordpress-dependencies/src`),
1956
'@roots/filesystem/src/vendor/sdk': path(
2057
`sources/@roots/filesystem/vendor/sdk`,
2158
),
59+
'@roots/sage': path(`sources/@roots/sage/src`),
2260
}

sources/@roots/blade-loader/package.json

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,10 @@
3939
],
4040
"type": "module",
4141
"exports": {
42-
".": {
43-
"import": "./lib/plugin.js",
44-
"default": "./lib/plugin.js"
45-
},
46-
"./plugin": {
47-
"import": "./lib/plugin.js",
48-
"default": "./lib/plugin.js"
49-
},
50-
"./module-loader": {
51-
"require": "./lib/module-loader.cjs",
52-
"default": "./lib/module-loader.cjs"
53-
},
54-
"./asset-loader": {
55-
"require": "./lib/asset-loader.cjs",
56-
"default": "./lib/asset-loader.cjs"
57-
}
42+
".": "./lib/plugin.js",
43+
"./plugin": "./lib/plugin.js",
44+
"./module-loader": "./lib/module-loader.cjs",
45+
"./asset-loader": "./lib/asset-loader.cjs"
5846
},
5947
"types": "./lib/plugin.d.ts",
6048
"main": "./lib/plugin.js",

sources/@roots/blade-loader/tsconfig.json

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,8 @@
33
"compilerOptions": {
44
"rootDir": "./src",
55
"outDir": "./lib",
6-
"paths": {
7-
"@roots/blade-loader": ["./src/plugin.ts"],
8-
"@roots/blade-loader/asset-loader": ["./src/asset-loader.cts"],
9-
"@roots/blade-loader/module-loader": ["./src/module-loader.cts"],
10-
"@roots/blade-loader/plugin": ["./src/plugin.ts"]
11-
},
6+
"strict": true,
127
"verbatimModuleSyntax": false
138
},
149
"include": ["./src"],
15-
"exclude": ["./lib", "./node_modules", "**/*.test.ts"]
1610
}

sources/@roots/bud-api/package.json

Lines changed: 112 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -49,36 +49,140 @@
4949
"type": "module",
5050
"exports": {
5151
".": "./lib/index.js",
52-
"./api": "./lib/api/index.js",
5352
"./methods": "./lib/methods/index.js",
54-
"./methods/*": "./lib/methods/*/index.js"
53+
"./methods/alias": "./lib/methods/alias/index.js",
54+
"./methods/assets": "./lib/methods/assets/index.js",
55+
"./methods/bundle": "./lib/methods/bundle/index.js",
56+
"./methods/compilePaths": "./lib/methods/compilePaths/index.js",
57+
"./methods/config": "./lib/methods/config/index.js",
58+
"./methods/copyDir": "./lib/methods/copyDir/index.js",
59+
"./methods/copyFile": "./lib/methods/copyFile/index.js",
60+
"./methods/define": "./lib/methods/define/index.js",
61+
"./methods/devtool": "./lib/methods/devtool/index.js",
62+
"./methods/entry": "./lib/methods/entry/index.js",
63+
"./methods/experiments": "./lib/methods/experiments/index.js",
64+
"./methods/externals": "./lib/methods/externals/index.js",
65+
"./methods/hash": "./lib/methods/hash/index.js",
66+
"./methods/html": "./lib/methods/html/index.js",
67+
"./methods/minimize": "./lib/methods/minimize/index.js",
68+
"./methods/persist": "./lib/methods/persist/index.js",
69+
"./methods/provide": "./lib/methods/provide/index.js",
70+
"./methods/proxy": "./lib/methods/proxy/index.js",
71+
"./methods/runtime": "./lib/methods/runtime/index.js",
72+
"./methods/serve": "./lib/methods/serve/index.js",
73+
"./methods/setProxyUrl": "./lib/methods/setProxyUrl/index.js",
74+
"./methods/setPublicProxyUrl": "./lib/methods/setPublicProxyUrl/index.js",
75+
"./methods/setPublicUrl": "./lib/methods/setPublicUrl/index.js",
76+
"./methods/setUrl": "./lib/methods/setUrl/index.js",
77+
"./methods/splitChunks": "./lib/methods/splitChunks/index.js",
78+
"./methods/use": "./lib/methods/use/index.js",
79+
"./methods/watch": "./lib/methods/watch/index.js",
80+
"./service": "./lib/service/index.js"
5581
},
5682
"typesVersions": {
5783
"*": {
5884
".": [
5985
"./lib/index.d.ts"
6086
],
61-
"api": [
62-
"./lib/api/index.d.ts"
63-
],
6487
"methods": [
6588
"./lib/methods/index.d.ts"
6689
],
67-
"methods/*": [
68-
"./lib/methods/*/index.d.ts"
90+
"methods/alias": [
91+
"./lib/methods/alias/index.d.ts"
92+
],
93+
"methods/assets": [
94+
"./lib/methods/assets/index.d.ts"
95+
],
96+
"methods/bundle": [
97+
"./lib/methods/bundle/index.d.ts"
98+
],
99+
"methods/compilePaths": [
100+
"./lib/methods/compilePaths/index.d.ts"
101+
],
102+
"methods/config": [
103+
"./lib/methods/config/index.d.ts"
104+
],
105+
"methods/copyDir": [
106+
"./lib/methods/copyDir/index.d.ts"
107+
],
108+
"methods/copyFile": [
109+
"./lib/methods/copyFile/index.d.ts"
110+
],
111+
"methods/define": [
112+
"./lib/methods/define/index.d.ts"
113+
],
114+
"methods/devtool": [
115+
"./lib/methods/devtool/index.d.ts"
116+
],
117+
"methods/entry": [
118+
"./lib/methods/entry/index.d.ts"
119+
],
120+
"methods/experiments": [
121+
"./lib/methods/experiments/index.d.ts"
122+
],
123+
"methods/externals": [
124+
"./lib/methods/externals/index.d.ts"
125+
],
126+
"methods/hash": [
127+
"./lib/methods/hash/index.d.ts"
128+
],
129+
"methods/html": [
130+
"./lib/methods/html/index.d.ts"
131+
],
132+
"methods/minimize": [
133+
"./lib/methods/minimize/index.d.ts"
134+
],
135+
"methods/persist": [
136+
"./lib/methods/persist/index.d.ts"
137+
],
138+
"methods/provide": [
139+
"./lib/methods/provide/index.d.ts"
140+
],
141+
"methods/proxy": [
142+
"./lib/methods/proxy/index.d.ts"
143+
],
144+
"methods/runtime": [
145+
"./lib/methods/runtime/index.d.ts"
146+
],
147+
"methods/serve": [
148+
"./lib/methods/serve/index.d.ts"
149+
],
150+
"methods/setProxyUrl": [
151+
"./lib/methods/setProxyUrl/index.d.ts"
152+
],
153+
"methods/setPublicProxyUrl": [
154+
"./lib/methods/setPublicProxyUrl/index.d.ts"
155+
],
156+
"methods/setPublicUrl": [
157+
"./lib/methods/setPublicUrl/index.d.ts"
158+
],
159+
"methods/setUrl": [
160+
"./lib/methods/setUrl/index.d.ts"
161+
],
162+
"methods/splitChunks": [
163+
"./lib/methods/splitChunks/index.d.ts"
164+
],
165+
"methods/use": [
166+
"./lib/methods/use/index.d.ts"
167+
],
168+
"methods/watch": [
169+
"./lib/methods/watch/index.d.ts"
170+
],
171+
"service": [
172+
"./lib/service/index.d.ts"
69173
]
70174
}
71175
},
72176
"types": "./lib/index.d.ts",
73177
"module": "./lib/index.js",
74178
"devDependencies": {
75-
"@roots/bud-minify": "workspace:*",
76179
"@skypack/package-check": "0.2.2",
77180
"@types/node": "18.16.19"
78181
},
79182
"dependencies": {
80183
"@roots/bud-extensions": "workspace:*",
81184
"@roots/bud-framework": "workspace:*",
185+
"@roots/bud-minify": "workspace:*",
82186
"@roots/bud-support": "workspace:*",
83187
"@roots/container": "workspace:*",
84188
"chalk": "5.3.0",

sources/@roots/bud-api/src/index.ts

Lines changed: 40 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -8,34 +8,35 @@
88
* @see https://github.com/roots/bud
99
*/
1010

11-
import type {Api as Service} from './api/service.js'
12-
import type * as Alias from './methods/alias/index.js'
13-
import type * as Assets from './methods/assets/index.js'
14-
import type * as Bundle from './methods/bundle/index.js'
15-
import type * as CompilePaths from './methods/compilePaths/index.js'
16-
import type * as Config from './methods/config/index.js'
17-
import type * as CopyDir from './methods/copyDir/index.js'
18-
import type * as CopyFile from './methods/copyFile/index.js'
19-
import type * as Define from './methods/define/index.js'
20-
import type * as Devtool from './methods/devtool/index.js'
21-
import type * as Entry from './methods/entry/index.js'
22-
import type * as Experiments from './methods/experiments/index.js'
23-
import type * as Externals from './methods/externals/index.js'
24-
import type * as Hash from './methods/hash/index.js'
25-
import type * as Html from './methods/html/index.js'
26-
import type * as Minimize from './methods/minimize/index.js'
27-
import type * as Persist from './methods/persist/index.js'
28-
import type * as Provide from './methods/provide/index.js'
29-
import type * as Proxy from './methods/proxy/index.js'
30-
import type * as Runtime from './methods/runtime/index.js'
31-
import type * as Serve from './methods/serve/index.js'
32-
import type * as SetProxyUrl from './methods/setProxyUrl/index.js'
33-
import type * as SetPublicProxyUrl from './methods/setPublicProxyUrl/index.js'
34-
import type * as SetPublicUrl from './methods/setPublicUrl/index.js'
35-
import type * as SetUrl from './methods/setUrl/index.js'
36-
import type * as SplitChunks from './methods/splitChunks/index.js'
37-
import type * as Use from './methods/use/index.js'
38-
import type * as Watch from './methods/watch/index.js'
11+
import type * as Alias from '@roots/bud-api/methods/alias'
12+
import type * as Assets from '@roots/bud-api/methods/assets'
13+
import type * as Bundle from '@roots/bud-api/methods/bundle'
14+
import type * as CompilePaths from '@roots/bud-api/methods/compilePaths'
15+
import type * as Config from '@roots/bud-api/methods/config'
16+
import type * as CopyDir from '@roots/bud-api/methods/copyDir'
17+
import type * as CopyFile from '@roots/bud-api/methods/copyFile'
18+
import type * as Define from '@roots/bud-api/methods/define'
19+
import type * as Devtool from '@roots/bud-api/methods/devtool'
20+
import type * as Entry from '@roots/bud-api/methods/entry'
21+
import type * as Experiments from '@roots/bud-api/methods/experiments'
22+
import type * as Externals from '@roots/bud-api/methods/externals'
23+
import type * as Hash from '@roots/bud-api/methods/hash'
24+
import type * as Html from '@roots/bud-api/methods/html'
25+
import type * as Minimize from '@roots/bud-api/methods/minimize'
26+
import type * as Persist from '@roots/bud-api/methods/persist'
27+
import type * as Provide from '@roots/bud-api/methods/provide'
28+
import type * as Proxy from '@roots/bud-api/methods/proxy'
29+
import type * as Runtime from '@roots/bud-api/methods/runtime'
30+
import type * as Serve from '@roots/bud-api/methods/serve'
31+
import type * as SetProxyUrl from '@roots/bud-api/methods/setProxyUrl'
32+
import type * as SetPublicProxyUrl from '@roots/bud-api/methods/setPublicProxyUrl'
33+
import type * as SetPublicUrl from '@roots/bud-api/methods/setPublicUrl'
34+
import type * as SetUrl from '@roots/bud-api/methods/setUrl'
35+
import type * as SplitChunks from '@roots/bud-api/methods/splitChunks'
36+
import type * as Use from '@roots/bud-api/methods/use'
37+
import type * as Watch from '@roots/bud-api/methods/watch'
38+
39+
import {default as Service} from '@roots/bud-api/service'
3940

4041
declare module '@roots/bud-framework' {
4142
interface Bud {
@@ -171,6 +172,11 @@ declare module '@roots/bud-framework' {
171172
*/
172173
html(...params: Html.Parameters): Bud
173174

175+
/**
176+
* @roots/bud-minify
177+
*/
178+
minify: import('@roots/bud-minify').default
179+
174180
/**
175181
* ## bud.minimize
176182
*
@@ -298,6 +304,11 @@ declare module '@roots/bud-framework' {
298304
}
299305

300306
type Api = Service
307+
308+
interface Services {
309+
api: Service
310+
extensions: import('@roots/bud-extensions').default
311+
}
301312
}
302313

303-
export {Api as default} from './api/service.js'
314+
export {Service as default}

sources/@roots/bud-api/src/methods/assets/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export const assets: assets = async function assets(
4343

4444
app.extensions
4545
.get(`@roots/bud-extensions/copy-webpack-plugin`)
46-
.set(`patterns`, (patterns = []) => [
46+
?.set(`patterns`, (patterns = []) => [
4747
...patterns,
4848
...arrayedRequest.map(valueMapper),
4949
])

sources/@roots/bud-api/src/api/service.ts renamed to sources/@roots/bud-api/src/service/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import * as methods from '../methods/index.js'
88
/**
99
* Bud.API {@link ServiceContainer}
1010
*/
11-
export class Api extends ServiceContainer implements BudApi {
11+
class Api extends ServiceContainer implements BudApi {
1212
/**
1313
* {@link BudApi.label}
1414
*/
@@ -23,3 +23,5 @@ export class Api extends ServiceContainer implements BudApi {
2323
)
2424
}
2525
}
26+
27+
export {Api as default}

sources/@roots/bud-api/src/methods/assets/index.test.ts renamed to sources/@roots/bud-api/test/assets.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import {factory} from '@repo/test-kit'
1+
import {type Bud, factory} from '@repo/test-kit'
22
import {assets} from '@roots/bud-api/methods/assets'
33
import {beforeEach, describe, expect, it} from 'vitest'
44

55
describe(`bud.assets`, () => {
6-
let bud
6+
let bud: Bud
77
let assetsFn: typeof assets
88

99
beforeEach(async () => {

sources/@roots/bud-api/tsconfig.json

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
{
22
"extends": "../../../config/tsconfig.json",
33
"compilerOptions": {
4-
"strict": true,
5-
"rootDir": "./src",
64
"outDir": "./lib",
5+
"paths": {
6+
"@roots/bud-api": ["./src/index.ts"],
7+
"@roots/bud-api/methods": ["./src/methods/index.ts"],
8+
"@roots/bud-api/methods/*": ["./src/methods/*/index.ts"],
9+
"@roots/bud-api/service": ["./src/service/index.ts"],
10+
},
11+
"rootDir": "./src",
12+
"strict": true,
713
"types": ["node", "@roots/bud-framework", "@roots/bud-extensions", "@roots/bud-minify"]
814
},
9-
"include": ["./src/**/*.ts"],
10-
"exclude": ["./src/**/*.test.ts"],
15+
"include": ["./src"],
1116
"references": [
1217
{"path": "../bud-build/tsconfig.json"},
1318
{"path": "../bud-extensions/tsconfig.json"},

0 commit comments

Comments
 (0)