Files
waoowaoo/scripts/guards/no-duplicate-endpoint-entry.mjs

46 lines
1.1 KiB
JavaScript

#!/usr/bin/env node
import fs from 'fs'
import path from 'path'
const ROOT = process.cwd()
const API_ROOT = path.join(ROOT, 'src', 'app', 'api')
const KNOWN_DUPLICATE_GROUPS = [
{
key: 'user-llm-test-connection',
candidates: [
'src/app/api/user/api-config/test-connection/route.ts',
'src/app/api/user/test-llm-provider/route.ts',
],
},
]
const exists = (relPath) => fs.existsSync(path.join(ROOT, relPath))
const failures = []
for (const group of KNOWN_DUPLICATE_GROUPS) {
const present = group.candidates.filter(exists)
if (present.length > 1) {
failures.push({ key: group.key, present })
}
}
if (!fs.existsSync(API_ROOT)) {
process.stdout.write('[no-duplicate-endpoint-entry] PASS (api dir missing)\n')
process.exit(0)
}
if (failures.length === 0) {
process.stdout.write('[no-duplicate-endpoint-entry] PASS\n')
process.exit(0)
}
process.stderr.write('[no-duplicate-endpoint-entry] FAIL: duplicated endpoint entry detected\n')
for (const failure of failures) {
process.stderr.write(`- ${failure.key}\n`)
for (const relPath of failure.present) {
process.stderr.write(` - ${relPath}\n`)
}
}
process.exit(1)