Some checks failed
Test examples / Test Examples (20) (push) Has been cancelled
Test examples / Test Examples (22) (push) Has been cancelled
Lock Threads / action (push) Has been cancelled
Trigger Release / start (push) Has been cancelled
Stale issue handler / stale (push) Has been cancelled
Update Font Data / create-pull-request (push) Has been cancelled
build-and-deploy / deploy-target (push) Has been cancelled
build-and-deploy / build (push) Has been cancelled
build-and-deploy / stable - aarch64-unknown-linux-musl - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-unknown-linux-musl - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-unknown-linux-gnu - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-unknown-linux-gnu - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-pc-windows-msvc - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-pc-windows-msvc - node@16 (push) Has been cancelled
build-and-deploy / stable - aarch64-apple-darwin - node@16 (push) Has been cancelled
build-and-deploy / stable - x86_64-apple-darwin - node@16 (push) Has been cancelled
build-and-deploy / build-wasm (nodejs) (push) Has been cancelled
build-and-deploy / build-wasm (web) (push) Has been cancelled
build-and-deploy / Deploy preview tarball (push) Has been cancelled
build-and-deploy / Potentially publish release (push) Has been cancelled
build-and-deploy / publish-turbopack-npm-packages (push) Has been cancelled
build-and-deploy / Deploy examples (push) Has been cancelled
build-and-deploy / thank you, build (push) Has been cancelled
build-and-deploy / Upload Turbopack Bytesize metrics to Datadog (push) Has been cancelled
Rspack Next.js development integration tests / Rspack integration tests (push) Has been cancelled
Rspack Next.js production integration tests / Rspack integration tests (push) Has been cancelled
Turbopack Next.js development integration tests / Next.js integration tests (push) Has been cancelled
Turbopack Next.js production integration tests / Next.js integration tests (push) Has been cancelled
Update Rspack test manifest / Update and upload Rspack development test manifest (push) Has been cancelled
Update Rspack test manifest / Update and upload Rspack production test manifest (push) Has been cancelled
Upload bundler test manifests to areweturboyet.com / Upload test results (push) Has been cancelled
Update React / create-pull-request (push) Has been cancelled
test-e2e-project-reset-cron / reset-test-project (push) Has been cancelled
Notify about the top 15 issues/PRs/feature requests (most reacted) in the last 90 days / run (push) Has been cancelled
67 lines
1.5 KiB
JavaScript
67 lines
1.5 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
const globOrig = require('glob')
|
|
const { promisify } = require('util')
|
|
const glob = promisify(globOrig)
|
|
|
|
function collectPaths(routes, paths = []) {
|
|
for (const route of routes) {
|
|
if (route.path && !route.redirect) {
|
|
paths.push(route.path)
|
|
}
|
|
|
|
if (route.routes) {
|
|
collectPaths(route.routes, paths)
|
|
}
|
|
}
|
|
}
|
|
|
|
async function main() {
|
|
const manifest = 'errors/manifest.json'
|
|
let hadError = false
|
|
|
|
const dir = path.dirname(manifest)
|
|
const files = await glob(path.join(dir, '**/*.md'))
|
|
|
|
const manifestData = JSON.parse(await fs.promises.readFile(manifest, 'utf8'))
|
|
|
|
const paths = []
|
|
collectPaths(manifestData.routes, paths)
|
|
|
|
const missingFiles = files.filter(
|
|
(file) => !paths.includes(`/${file}`) && file !== 'errors/template.md'
|
|
)
|
|
|
|
if (missingFiles.length) {
|
|
hadError = true
|
|
console.log(`Missing paths in ${manifest}:\n${missingFiles.join('\n')}`)
|
|
} else {
|
|
console.log(`No missing paths in ${manifest}`)
|
|
}
|
|
|
|
for (const filePath of paths) {
|
|
if (
|
|
!(await fs.promises
|
|
.access(path.join(process.cwd(), filePath), fs.constants.F_OK)
|
|
.then(() => true)
|
|
.catch(() => false))
|
|
) {
|
|
console.log('Could not find path:', filePath)
|
|
hadError = true
|
|
}
|
|
}
|
|
|
|
if (hadError) {
|
|
throw new Error('missing/incorrect manifest items detected see above')
|
|
}
|
|
}
|
|
|
|
main()
|
|
.then(() => console.log('success'))
|
|
.catch((err) => {
|
|
console.error(err)
|
|
process.exit(1)
|
|
})
|