nuxi
Version:
Nuxt CLI
100 lines (99 loc) • 2.56 kB
JavaScript
import { t as defineCommand } from "./dist-B03QHgrC.mjs";
import { a as k } from "./dist-BkNIIgFa.mjs";
import { a as legacyRootDirArgs, i as extendsArgs, n as dotEnvArgs, o as logLevelArgs, t as cwdArgs } from "./_shared-D6pJgr6t.mjs";
import { c as resolve } from "./pathe.M-eThtNZ-BfnU2wdd.mjs";
import { a as resolveModulePath, t as loadKit } from "./kit-Bx45zdA5.mjs";
import { i as readTSConfig } from "./dist-BPzTdxaO.mjs";
import { t as V } from "./main-BD07ngkv.mjs";
import process from "node:process";
//#region src/commands/typecheck.ts
var typecheck_default = defineCommand({
meta: {
name: "typecheck",
description: "Runs `vue-tsc` to check types throughout your app."
},
args: {
...cwdArgs,
...logLevelArgs,
...dotEnvArgs,
...extendsArgs,
...legacyRootDirArgs
},
async run(ctx) {
process.env.NODE_ENV = process.env.NODE_ENV || "production";
const cwd = resolve(ctx.args.cwd || ctx.args.rootDir);
const [supportsProjects, resolvedTypeScript, resolvedVueTsc] = await Promise.all([
readTSConfig(cwd).then((r) => !!r.references?.length),
resolveModulePath("typescript", { try: true }),
resolveModulePath("vue-tsc/bin/vue-tsc.js", { try: true }),
writeTypes(cwd, ctx.args.dotenv, ctx.args.logLevel, {
...ctx.data?.overrides,
...ctx.args.extends && { extends: ctx.args.extends }
})
]);
const typeCheckArgs = supportsProjects ? ["-b", "--noEmit"] : ["--noEmit"];
if (resolvedTypeScript && resolvedVueTsc) return await V(resolvedVueTsc, typeCheckArgs, {
throwOnError: true,
nodeOptions: {
stdio: "inherit",
cwd
}
});
if (k) {
await V("bun", [
"install",
"typescript",
"vue-tsc",
"--global",
"--silent"
], {
throwOnError: true,
nodeOptions: {
stdio: "inherit",
cwd
}
});
return await V("bunx", ["vue-tsc", ...typeCheckArgs], {
throwOnError: true,
nodeOptions: {
stdio: "inherit",
cwd
}
});
}
await V("npx", [
"-p",
"vue-tsc",
"-p",
"typescript",
"vue-tsc",
...typeCheckArgs
], {
throwOnError: true,
nodeOptions: {
stdio: "inherit",
cwd
}
});
}
});
async function writeTypes(cwd, dotenv, logLevel, overrides) {
const { loadNuxt, buildNuxt, writeTypes } = await loadKit(cwd);
const nuxt = await loadNuxt({
cwd,
dotenv: {
cwd,
fileName: dotenv
},
overrides: {
_prepare: true,
logLevel,
...overrides
}
});
await writeTypes(nuxt);
await buildNuxt(nuxt);
await nuxt.close();
}
//#endregion
export { typecheck_default as default };