queue/source/utilities/migrations/index.ts

27 lines
745 B
TypeScript

import {Queue} from '../../types.d';
import {debug} from '../log';
import {versionAsNumber} from '../version';
import {migration_2020_11_26} from './2020-11-26';
const migrations: Queue.Migration[] = [migration_2020_11_26];
export function migrate(
latestVersion: string,
previous: Record<string, any>,
): Record<string, any> {
let next = previous;
for (const migration of migrations) {
// If the saved version is >= the version from the migration, we've already
// handled it previously, so skip it.
if (versionAsNumber(latestVersion) >= versionAsNumber(migration.version)) {
continue;
}
debug(`Running migration ${migration.date.toISOString()}`);
next = migration.upgrade(next);
}
return next;
}