46 lines
1.1 KiB
JavaScript
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)
|