| const path = require('node:path'); |
| const { spawnSync } = require('node:child_process'); |
|
|
| const { createLogger, isVerbose, startTimer } = require('../src/generator/utils/logger'); |
|
|
| const log = createLogger('check'); |
|
|
| function runNode(scriptPath) { |
| const result = spawnSync(process.execPath, [scriptPath], { stdio: 'inherit' }); |
| return result && Number.isFinite(result.status) ? result.status : 1; |
| } |
|
|
| async function main() { |
| const elapsedMs = startTimer(); |
| log.info('开始', { version: process.env.npm_package_version }); |
|
|
| const repoRoot = path.resolve(__dirname, '..'); |
|
|
| const lintExit = runNode(path.join(repoRoot, 'scripts', 'lint.js')); |
| if (lintExit !== 0) { |
| log.error('lint 失败', { exit: lintExit }); |
| process.exitCode = lintExit; |
| return; |
| } |
|
|
| const testExit = runNode(path.join(repoRoot, 'scripts', 'test.js')); |
| if (testExit !== 0) { |
| log.error('test 失败', { exit: testExit }); |
| process.exitCode = testExit; |
| return; |
| } |
|
|
| const buildExit = runNode(path.join(repoRoot, 'scripts', 'build.js')); |
| if (buildExit !== 0) { |
| log.error('build 失败', { exit: buildExit }); |
| process.exitCode = buildExit; |
| return; |
| } |
|
|
| log.ok('完成', { ms: elapsedMs() }); |
| } |
|
|
| if (require.main === module) { |
| main().catch((error) => { |
| log.error('执行失败', { message: error && error.message ? error.message : String(error) }); |
| if (isVerbose() && error && error.stack) console.error(error.stack); |
| process.exitCode = 1; |
| }); |
| } |
|
|