22 lines
626 B
TypeScript
22 lines
626 B
TypeScript
import type { AllSettings } from '@server/lib/settings';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
|
|
const migrationsDir = path.join(__dirname, 'migrations');
|
|
|
|
export const runMigrations = (settings: AllSettings): AllSettings => {
|
|
const migrations = fs
|
|
.readdirSync(migrationsDir)
|
|
.filter((file) => file.endsWith('.js') || file.endsWith('.ts'))
|
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
.map((file) => require(path.join(migrationsDir, file)).default);
|
|
|
|
let migrated = settings;
|
|
|
|
for (const migration of migrations) {
|
|
migrated = migration(migrated);
|
|
}
|
|
|
|
return migrated;
|
|
};
|