Skip to content

Commit 104caf9

Browse files
authored
chore: enable @typescript-eslint/explicit-module-boundary-types (#8372)
1 parent cd21abf commit 104caf9

File tree

16 files changed

+72
-41
lines changed

16 files changed

+72
-41
lines changed

.eslintrc.cjs

+4
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ module.exports = defineConfig({
7373

7474
'@typescript-eslint/ban-ts-comment': 'off', // TODO: we should turn this on in a new PR
7575
'@typescript-eslint/ban-types': 'off', // TODO: we should turn this on in a new PR
76+
'@typescript-eslint/explicit-module-boundary-types': [
77+
'error',
78+
{ allowArgumentsExplicitlyTypedAsAny: true }
79+
],
7680
'@typescript-eslint/no-empty-function': [
7781
'error',
7882
{ allow: ['arrowFunctions'] }

packages/plugin-legacy/src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,7 @@ export async function detectPolyfills(
517517
code: string,
518518
targets: any,
519519
list: Set<string>
520-
) {
520+
): Promise<void> {
521521
const babel = await loadBabel()
522522
const { ast } = babel.transform(code, {
523523
ast: true,

packages/vite/src/node/config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -861,7 +861,7 @@ async function loadConfigFromBundledFile(
861861
return config
862862
}
863863

864-
export function isDepsOptimizerEnabled(config: ResolvedConfig) {
864+
export function isDepsOptimizerEnabled(config: ResolvedConfig): boolean {
865865
const { command, optimizeDeps } = config
866866
const { disabled } = optimizeDeps
867867
return !(

packages/vite/src/node/optimizer/index.ts

+13-5
Original file line numberDiff line numberDiff line change
@@ -595,19 +595,22 @@ export function newDepOptimizationProcessing(): DepOptimizationProcessing {
595595
// Convert to { id: src }
596596
export function depsFromOptimizedDepInfo(
597597
depsInfo: Record<string, OptimizedDepInfo>
598-
) {
598+
): Record<string, string> {
599599
return Object.fromEntries(
600600
Object.entries(depsInfo).map((d) => [d[0], d[1].src!])
601601
)
602602
}
603603

604-
export function getOptimizedDepPath(id: string, config: ResolvedConfig) {
604+
export function getOptimizedDepPath(
605+
id: string,
606+
config: ResolvedConfig
607+
): string {
605608
return normalizePath(
606609
path.resolve(getDepsCacheDir(config), flattenId(id) + '.js')
607610
)
608611
}
609612

610-
export function getDepsCacheDir(config: ResolvedConfig) {
613+
export function getDepsCacheDir(config: ResolvedConfig): string {
611614
const dirName = config.command === 'build' ? 'depsBuild' : 'deps'
612615
return normalizePath(path.resolve(config.cacheDir, dirName))
613616
}
@@ -617,11 +620,16 @@ function getProcessingDepsCacheDir(config: ResolvedConfig) {
617620
return normalizePath(path.resolve(config.cacheDir, dirName))
618621
}
619622

620-
export function isOptimizedDepFile(id: string, config: ResolvedConfig) {
623+
export function isOptimizedDepFile(
624+
id: string,
625+
config: ResolvedConfig
626+
): boolean {
621627
return id.startsWith(getDepsCacheDir(config))
622628
}
623629

624-
export function createIsOptimizedDepUrl(config: ResolvedConfig) {
630+
export function createIsOptimizedDepUrl(
631+
config: ResolvedConfig
632+
): (url: string) => boolean {
625633
const { root } = config
626634
const depsCacheDir = getDepsCacheDir(config)
627635

packages/vite/src/node/optimizer/optimizer.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ const debounceMs = 100
3434

3535
const depsOptimizerMap = new WeakMap<ResolvedConfig, DepsOptimizer>()
3636

37-
export function getDepsOptimizer(config: ResolvedConfig) {
37+
export function getDepsOptimizer(
38+
config: ResolvedConfig
39+
): DepsOptimizer | undefined {
3840
// Workers compilation shares the DepsOptimizer from the main build
3941
return depsOptimizerMap.get(config.mainConfig || config)
4042
}

packages/vite/src/node/plugins/css.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1197,7 +1197,7 @@ async function minifyCSS(css: string, config: ResolvedConfig) {
11971197
}
11981198
}
11991199

1200-
export async function hoistAtRules(css: string) {
1200+
export async function hoistAtRules(css: string): Promise<string> {
12011201
const s = new MagicString(css)
12021202
const cleanCss = emptyCssComments(css)
12031203
let match: RegExpExecArray | null

packages/vite/src/node/plugins/importAnalysis.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ const debug = createDebugger('vite:import-analysis')
6161
const clientDir = normalizePath(CLIENT_DIR)
6262

6363
const skipRE = /\.(map|json)$/
64-
export const canSkipImportAnalysis = (id: string) =>
64+
export const canSkipImportAnalysis = (id: string): boolean =>
6565
skipRE.test(id) || isDirectCSSRequest(id)
6666

6767
const optimizedDepChunkRE = /\/chunk-[A-Z0-9]{8}\.js/

packages/vite/src/node/plugins/importMetaGlob.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ export interface ParsedImportGlob {
3333
end: number
3434
}
3535

36-
export function getAffectedGlobModules(file: string, server: ViteDevServer) {
36+
export function getAffectedGlobModules(
37+
file: string,
38+
server: ViteDevServer
39+
): ModuleNode[] {
3740
const modules: ModuleNode[] = []
3841
for (const [id, allGlobs] of server._importGlobMap!) {
3942
if (allGlobs.some((glob) => isMatch(file, glob)))
@@ -501,7 +504,7 @@ export function getCommonBase(globsResolved: string[]): null | string {
501504
return commonAncestor
502505
}
503506

504-
export function isVirtualModule(id: string) {
507+
export function isVirtualModule(id: string): boolean {
505508
// https://vitejs.dev/guide/api-plugin.html#virtual-modules-convention
506509
return id.startsWith('virtual:') || id.startsWith('\0') || !id.includes('/')
507510
}

packages/vite/src/node/plugins/optimizedDeps.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@ function getRunProcessingInfo(config: ResolvedConfig): RunProcessingInfo {
4343
)
4444
}
4545

46-
export function registerWorkersSource(config: ResolvedConfig, id: string) {
46+
export function registerWorkersSource(
47+
config: ResolvedConfig,
48+
id: string
49+
): void {
4750
const info = getRunProcessingInfo(config)
4851
info.workersSources.add(id)
4952
if (info.waitingOn === id) {
@@ -55,7 +58,7 @@ export function delayDepsOptimizerUntil(
5558
config: ResolvedConfig,
5659
id: string,
5760
done: () => Promise<any>
58-
) {
61+
): void {
5962
const info = getRunProcessingInfo(config)
6063
if (
6164
!getDepsOptimizer(config)?.isOptimizedDepFile(id) &&

packages/vite/src/node/plugins/splitVendorChunk.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export class SplitVendorChunkCache {
2727
constructor() {
2828
this.cache = new Map<string, boolean>()
2929
}
30-
reset() {
30+
reset(): void {
3131
this.cache = new Map<string, boolean>()
3232
}
3333
}

packages/vite/src/node/server/hmr.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export interface HmrContext {
3434
server: ViteDevServer
3535
}
3636

37-
export function getShortName(file: string, root: string) {
37+
export function getShortName(file: string, root: string): string {
3838
return file.startsWith(root + '/') ? path.posix.relative(root, file) : file
3939
}
4040

@@ -130,7 +130,7 @@ export function updateModules(
130130
modules: ModuleNode[],
131131
timestamp: number,
132132
{ config, ws }: ViteDevServer
133-
) {
133+
): void {
134134
const updates: Update[] = []
135135
const invalidatedModules = new Set<ModuleNode>()
136136
let needFullReload = false

packages/vite/src/node/server/sourcemap.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ export async function injectSourcesContent(
5959
}
6060
}
6161

62-
export function genSourceMapUrl(map: SourceMap | string | undefined) {
62+
export function genSourceMapUrl(map: SourceMap | string | undefined): string {
6363
if (typeof map !== 'string') {
6464
map = JSON.stringify(map)
6565
}
@@ -70,7 +70,7 @@ export function getCodeWithSourcemap(
7070
type: 'js' | 'css',
7171
code: string,
7272
map: SourceMap | null
73-
) {
73+
): string {
7474
if (isDebug) {
7575
code += `\n/*${JSON.stringify(map, null, 2).replace(/\*\//g, '*\\/')}*/\n`
7676
}

packages/vite/src/node/ssr/ssrExternal.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const debug = createDebugger('vite:ssr-external')
1818
/**
1919
* Converts "parent > child" syntax to just "child"
2020
*/
21-
export function stripNesting(packages: string[]) {
21+
export function stripNesting(packages: string[]): string[] {
2222
return packages.map((s) => {
2323
const arr = s.split('>')
2424
return arr[arr.length - 1].trim()

packages/vite/src/node/utils.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,10 @@ export const isJSRequest = (url: string): boolean => {
234234

235235
const knownTsRE = /\.(ts|mts|cts|tsx)$/
236236
const knownTsOutputRE = /\.(js|mjs|cjs|jsx)$/
237-
export const isTsRequest = (url: string) => knownTsRE.test(url)
238-
export const isPossibleTsOutput = (url: string) =>
237+
export const isTsRequest = (url: string): boolean => knownTsRE.test(url)
238+
export const isPossibleTsOutput = (url: string): boolean =>
239239
knownTsOutputRE.test(cleanUrl(url))
240-
export function getPotentialTsSrcPaths(filePath: string) {
240+
export function getPotentialTsSrcPaths(filePath: string): string[] {
241241
const [name, type, query = ''] = filePath.split(/(\.(?:[cm]?js|jsx))(\?.*)?$/)
242242
const paths = [name + type.replace('js', 'ts') + query]
243243
if (!type.endsWith('x')) {
@@ -781,7 +781,7 @@ export function parseRequest(id: string): Record<string, string> | null {
781781
return Object.fromEntries(new URLSearchParams(search))
782782
}
783783

784-
export const blankReplacer = (match: string) => ' '.repeat(match.length)
784+
export const blankReplacer = (match: string): string => ' '.repeat(match.length)
785785

786786
export function getHash(text: Buffer | string): string {
787787
return createHash('sha256').update(text).digest('hex').substring(0, 8)
@@ -856,7 +856,7 @@ function gracefulRemoveDir(
856856
})
857857
}
858858

859-
export function emptyCssComments(raw: string) {
859+
export function emptyCssComments(raw: string): string {
860860
return raw.replace(multilineCommentsRE, (s) => ' '.repeat(s.length))
861861
}
862862

playground/legacy/__tests__/ssr/serve.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { ports, rootDir } from '~utils'
55

66
export const port = ports['legacy/ssr']
77

8-
export async function serve() {
8+
export async function serve(): Promise<{ close(): Promise<void> }> {
99
const { build } = await import('vite')
1010
await build({
1111
root: rootDir,

scripts/releaseUtils.ts

+26-15
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import { existsSync, readdirSync, writeFileSync } from 'fs'
55
import path from 'path'
66
import colors from 'picocolors'
7-
import type { Options as ExecaOptions } from 'execa'
7+
import type { Options as ExecaOptions, ExecaReturnValue } from 'execa'
88
import execa from 'execa'
99
import type { ReleaseType } from 'semver'
1010
import semver from 'semver'
@@ -39,19 +39,26 @@ export const versionIncrements: ReleaseType[] = [
3939
// 'prerelease'
4040
]
4141

42-
export function getPackageInfo(pkgName: string) {
42+
interface Pkg {
43+
name: string
44+
version: string
45+
private?: boolean
46+
}
47+
export function getPackageInfo(pkgName: string): {
48+
pkg: Pkg
49+
pkgName: string
50+
pkgDir: string
51+
pkgPath: string
52+
currentVersion: string
53+
} {
4354
const pkgDir = path.resolve(__dirname, '../packages/' + pkgName)
4455

4556
if (!existsSync(pkgDir)) {
4657
throw new Error(`Package ${pkgName} not found`)
4758
}
4859

4960
const pkgPath = path.resolve(pkgDir, 'package.json')
50-
const pkg: {
51-
name: string
52-
version: string
53-
private?: boolean
54-
} = require(pkgPath)
61+
const pkg: Pkg = require(pkgPath)
5562
const currentVersion = pkg.version
5663

5764
if (pkg.private) {
@@ -71,15 +78,15 @@ export async function run(
7178
bin: string,
7279
args: string[],
7380
opts: ExecaOptions<string> = {}
74-
) {
81+
): Promise<ExecaReturnValue<string>> {
7582
return execa(bin, args, { stdio: 'inherit', ...opts })
7683
}
7784

7885
export async function dryRun(
7986
bin: string,
8087
args: string[],
8188
opts?: ExecaOptions<string>
82-
) {
89+
): Promise<void> {
8390
return console.log(
8491
colors.blue(`[dryrun] ${bin} ${args.join(' ')}`),
8592
opts || ''
@@ -88,11 +95,15 @@ export async function dryRun(
8895

8996
export const runIfNotDry = isDryRun ? dryRun : run
9097

91-
export function step(msg: string) {
98+
export function step(msg: string): void {
9299
return console.log(colors.cyan(msg))
93100
}
94101

95-
export function getVersionChoices(currentVersion: string) {
102+
interface VersionChoice {
103+
title: string
104+
value: string
105+
}
106+
export function getVersionChoices(currentVersion: string): VersionChoice[] {
96107
const currentBeta = currentVersion.includes('beta')
97108
const currentAlpha = currentVersion.includes('alpha')
98109
const isStable = !currentBeta && !currentAlpha
@@ -101,7 +112,7 @@ export function getVersionChoices(currentVersion: string) {
101112
return semver.inc(currentVersion, i, tag)!
102113
}
103114

104-
let versionChoices = [
115+
let versionChoices: VersionChoice[] = [
105116
{
106117
title: 'next',
107118
value: inc(isStable ? 'patch' : 'prerelease')
@@ -175,7 +186,7 @@ export async function publishPackage(
175186
})
176187
}
177188

178-
export async function getLatestTag(pkgName: string) {
189+
export async function getLatestTag(pkgName: string): Promise<string> {
179190
const tags = (await run('git', ['tag'], { stdio: 'pipe' })).stdout
180191
.split(/\n/)
181192
.filter(Boolean)
@@ -186,7 +197,7 @@ export async function getLatestTag(pkgName: string) {
186197
.reverse()[0]
187198
}
188199

189-
export async function logRecentCommits(pkgName: string) {
200+
export async function logRecentCommits(pkgName: string): Promise<void> {
190201
const tag = await getLatestTag(pkgName)
191202
if (!tag) return
192203
const sha = await run('git', ['rev-list', '-n', '1', tag], {
@@ -214,7 +225,7 @@ export async function logRecentCommits(pkgName: string) {
214225
console.log()
215226
}
216227

217-
export async function updateTemplateVersions() {
228+
export async function updateTemplateVersions(): Promise<void> {
218229
const viteVersion = (await fs.readJSON('../packages/vite/package.json'))
219230
.version
220231
if (/beta|alpha|rc/.test(viteVersion)) return

0 commit comments

Comments
 (0)