27 lines
823 B
JavaScript
27 lines
823 B
JavaScript
import { readdirSync, writeFileSync } from 'node:fs'
|
|
import { join } from 'node:path'
|
|
|
|
const migrationsDir = join(import.meta.dirname, '../src/migrations')
|
|
const outFile = join(migrationsDir, 'index.ts')
|
|
|
|
const files = readdirSync(migrationsDir)
|
|
.filter((f) => f.endsWith('.ts') && f !== 'index.ts')
|
|
.sort()
|
|
|
|
const imports = files.map((f, i) => `import * as m${i} from './${f.replace('.ts', '')}.js'`).join('\n')
|
|
|
|
const entries = files.map((f, i) => `\t'${f.replace('.ts', '')}': m${i}`).join(',\n')
|
|
|
|
const content = `// Auto-generated by scripts/generate-migrations.js — do not edit
|
|
import type { Migration } from 'kysely'
|
|
|
|
${imports}
|
|
|
|
export const migrations: Record<string, Migration> = {
|
|
${entries}
|
|
}
|
|
`
|
|
|
|
writeFileSync(outFile, content)
|
|
console.log(`Generated ${files.length} migrations in src/migrations/index.ts`)
|