25 lines
1.2 KiB
JavaScript
25 lines
1.2 KiB
JavaScript
import fs from 'node:fs'
|
|
import process from 'node:process'
|
|
|
|
const exists=p=>fs.existsSync(p)
|
|
const pkg=JSON.parse(fs.readFileSync('package.json','utf8'))
|
|
const result={
|
|
generatedAt:new Date().toISOString(),
|
|
node:process.version,
|
|
packageManager:pkg.packageManager,
|
|
lockfile:exists('pnpm-lock.yaml'),
|
|
nodeModules:exists('node_modules'),
|
|
playwrightConfig:exists('playwright.config.ts'),
|
|
playwrightInstalled:exists('node_modules/@playwright/test'),
|
|
vitestInstalled:exists('node_modules/vitest'),
|
|
demoRuntimeScript:Boolean(pkg.scripts?.['dev:web:demo']),
|
|
e2eScript:Boolean(pkg.scripts?.['test:e2e']),
|
|
}
|
|
result.status=result.lockfile&&result.playwrightInstalled&&result.vitestInstalled?'ready':'blocked'
|
|
result.blockers=[]
|
|
if(!result.lockfile)result.blockers.push('pnpm-lock.yaml is absent; reproducible dependency install evidence is not available.')
|
|
if(!result.nodeModules)result.blockers.push('node_modules is absent in this artifact environment.')
|
|
if(!result.playwrightInstalled)result.blockers.push('@playwright/test is declared but not installed in this artifact environment.')
|
|
if(!result.vitestInstalled)result.blockers.push('vitest is declared but not installed in this artifact environment.')
|
|
console.log(JSON.stringify(result,null,2))
|