1import fs from 'node:fs';
2import path from 'node:path';
3
4const migrationsDir = path.join(import.meta.dirname, '..', 'server', 'migrations');
5const outputFile = path.join(migrationsDir, 'index.js');
6
7const files = fs.readdirSync(migrationsDir)
8 .filter(f => /^\d{4}-.+\.js$/.test(f))
9 .sort();
10
11if (files.length === 0) {
12 console.error('No migration files found in server/migrations/');
13 process.exit(1);
14}
15
16const imports = files.map((file) => {
17 const varName = `m${file.slice(0, 4)}`;
18 return `import { up as ${varName} } from './${file}';`;
19}).join('\n');
20
21const entries = files.map((file) => {
22 const varName = `m${file.slice(0, 4)}`;
23 return ` { name: '${file}', up: ${varName} },`;
24}).join('\n');
25
26const output = `${imports}
27
28const migrations = [
29${entries}
30];
31
32export default migrations;
33`;
34
35fs.writeFileSync(outputFile, output);
36console.log(`Generated ${outputFile} with ${files.length} migration(s)`);
37