37 lines
1.3 KiB
Plaintext
37 lines
1.3 KiB
Plaintext
|
import path from "node:path";
|
||
|
import { createLoggerFromFlags, flagsToAstroInlineConfig } from "../flags.js";
|
||
|
import { getPackage } from "../install-package.js";
|
||
|
import { ensureProcessNodeEnv } from "../../core/util.js";
|
||
|
async function check(flags) {
|
||
|
ensureProcessNodeEnv("production");
|
||
|
const logger = createLoggerFromFlags(flags);
|
||
|
const getPackageOpts = { skipAsk: flags.yes || flags.y, cwd: flags.root };
|
||
|
const checkPackage = await getPackage(
|
||
|
"@astrojs/check",
|
||
|
logger,
|
||
|
getPackageOpts,
|
||
|
["typescript"]
|
||
|
);
|
||
|
const typescript = await getPackage("typescript", logger, getPackageOpts);
|
||
|
if (!checkPackage || !typescript) {
|
||
|
logger.error(
|
||
|
"check",
|
||
|
"The `@astrojs/check` and `typescript` packages are required for this command to work. Please manually install them into your project and try again."
|
||
|
);
|
||
|
return;
|
||
|
}
|
||
|
const { default: sync } = await import("../../core/sync/index.js");
|
||
|
const inlineConfig = flagsToAstroInlineConfig(flags);
|
||
|
const exitCode = await sync(inlineConfig);
|
||
|
if (exitCode !== 0) {
|
||
|
process.exit(exitCode);
|
||
|
}
|
||
|
const { check: checker, parseArgsAsCheckConfig } = checkPackage;
|
||
|
const config = parseArgsAsCheckConfig(process.argv);
|
||
|
logger.info("check", `Getting diagnostics for Astro files in ${path.resolve(config.root)}...`);
|
||
|
return await checker(config);
|
||
|
}
|
||
|
export {
|
||
|
check
|
||
|
};
|