(existingNames: string[])
| 338 | * Uses lowercase with underscores to satisfy NAME_PATTERN validation. |
| 339 | */ |
| 340 | export function generateUniqueTableName(existingNames: string[]): string { |
| 341 | const taken = new Set(existingNames.map((n) => n.toLowerCase())) |
| 342 | const maxAttempts = 50 |
| 343 | |
| 344 | for (let i = 0; i < maxAttempts; i++) { |
| 345 | const adj = randomItem(TABLE_NAME_ADJECTIVES) |
| 346 | const noun = randomItem(TABLE_NAME_NOUNS) |
| 347 | const name = `${adj.toLowerCase()}_${noun.toLowerCase()}` |
| 348 | if (!taken.has(name)) return name |
| 349 | } |
| 350 | |
| 351 | const adj = randomItem(TABLE_NAME_ADJECTIVES) |
| 352 | const noun = randomItem(TABLE_NAME_NOUNS) |
| 353 | const suffix = randomInt(100, 1000) |
| 354 | return `${adj.toLowerCase()}_${noun.toLowerCase()}_${suffix}` |
| 355 | } |
no test coverage detected