Skip to content

Commit b3229ed

Browse files
committed
perf(typecheck): resolve typescript alongside preparing nuxt types
1 parent 810220d commit b3229ed

1 file changed

Lines changed: 42 additions & 49 deletions

File tree

‎packages/nuxi/src/commands/typecheck.ts‎

Lines changed: 42 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -26,67 +26,60 @@ export default defineCommand({
2626

2727
constcwd=resolve(ctx.args.cwd||ctx.args.rootDir)
2828

29-
const{ loadNuxt, buildNuxt, writeTypes }=awaitloadKit(cwd)
30-
constnuxt=awaitloadNuxt({
31-
cwd,
32-
dotenv: { cwd,fileName: ctx.args.dotenv},
33-
overrides: {
34-
_prepare: true,
35-
logLevel: ctx.args.logLevelas'silent'|'info'|'verbose',
36-
},
37-
})
38-
39-
// Generate types and build Nuxt instance
40-
awaitwriteTypes(nuxt)
41-
awaitbuildNuxt(nuxt)
42-
awaitnuxt.close()
43-
44-
constsupportsProjects=awaitreadTSConfig(cwd).then(r=>!!(r.references?.length))
45-
consttypeCheckArgs=supportsProjects ? ['-b','--noEmit'] : ['--noEmit']
46-
47-
// Prefer local install if possible
48-
const[resolvedTypeScript,resolvedVueTsc]=awaitPromise.all([
29+
const[supportsProjects,resolvedTypeScript,resolvedVueTsc]=awaitPromise.all([
30+
readTSConfig(cwd).then(r=>!!(r.references?.length)),
31+
// Prefer local install if possible
4932
resolveModulePath('typescript',{try: true}),
5033
resolveModulePath('vue-tsc/bin/vue-tsc.js',{try: true}),
34+
writeTypes(cwd,ctx.args.dotenv,ctx.args.logLevelas'silent'|'info'|'verbose'),
5135
])
36+
37+
consttypeCheckArgs=supportsProjects ? ['-b','--noEmit'] : ['--noEmit']
5238
if(resolvedTypeScript&&resolvedVueTsc){
53-
awaitx(resolvedVueTsc,typeCheckArgs,{
39+
returnawaitx(resolvedVueTsc,typeCheckArgs,{
5440
throwOnError: true,
5541
nodeOptions: {
5642
stdio: 'inherit',
5743
cwd,
5844
},
5945
})
6046
}
61-
else{
62-
if(isBun){
63-
awaitx(
64-
'bun',
65-
'install typescript vue-tsc --global --silent'.split(' '),
66-
{
67-
throwOnError: true,
68-
nodeOptions: {stdio: 'inherit', cwd },
69-
},
70-
)
7147

72-
awaitx('bunx',['vue-tsc', ...typeCheckArgs],{
73-
throwOnError: true,
74-
nodeOptions: {
75-
stdio: 'inherit',
76-
cwd,
77-
},
78-
})
79-
}
80-
else{
81-
awaitx(
82-
'npx',
83-
['-p','vue-tsc','-p','typescript','vue-tsc', ...typeCheckArgs],
84-
{
85-
throwOnError: true,
86-
nodeOptions: {stdio: 'inherit', cwd },
87-
},
88-
)
89-
}
48+
if(isBun){
49+
awaitx('bun',['install','typescript','vue-tsc','--global','--silent'],{
50+
throwOnError: true,
51+
nodeOptions: {stdio: 'inherit', cwd },
52+
})
53+
54+
returnawaitx('bunx',['vue-tsc', ...typeCheckArgs],{
55+
throwOnError: true,
56+
nodeOptions: {
57+
stdio: 'inherit',
58+
cwd,
59+
},
60+
})
9061
}
62+
63+
awaitx('npx',['-p','vue-tsc','-p','typescript','vue-tsc', ...typeCheckArgs],{
64+
throwOnError: true,
65+
nodeOptions: {stdio: 'inherit', cwd },
66+
})
9167
},
9268
})
69+
70+
asyncfunctionwriteTypes(cwd: string,dotenv?: string,logLevel?: 'silent'|'info'|'verbose'){
71+
const{ loadNuxt, buildNuxt, writeTypes }=awaitloadKit(cwd)
72+
constnuxt=awaitloadNuxt({
73+
cwd,
74+
dotenv: { cwd,fileName: dotenv},
75+
overrides: {
76+
_prepare: true,
77+
logLevel,
78+
},
79+
})
80+
81+
// Generate types and build Nuxt instance
82+
awaitwriteTypes(nuxt)
83+
awaitbuildNuxt(nuxt)
84+
awaitnuxt.close()
85+
}

0 commit comments

Comments
 (0)