From 95b80d53c60ebff9cd13696d6e8ded7afadf1bda Mon Sep 17 00:00:00 2001 From: olzzon Date: Thu, 25 Mar 2021 12:11:20 +0100 Subject: [PATCH] fix: migrations version handling as numeric values --- server/utils/migrations.ts | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/server/utils/migrations.ts b/server/utils/migrations.ts index a4774daf..59d9c0e4 100644 --- a/server/utils/migrations.ts +++ b/server/utils/migrations.ts @@ -3,12 +3,15 @@ const path = require('path') import { logger } from './logger' import { ISettings } from '../reducers/settingsReducer' -import { getSnapShotList, IShotStorage, saveSettings } from './SettingsStorage' +import { getSnapShotList, IShotStorage } from './SettingsStorage' const version = process.env.npm_package_version export const checkVersion = (currentSettings: ISettings): ISettings => { - if (version > (currentSettings.sisyfosVersion || '0')) { + if ( + versionAsNumber(version) > + versionAsNumber(currentSettings.sisyfosVersion) + ) { currentSettings = migrateVersion(currentSettings) } return currentSettings @@ -22,13 +25,13 @@ const migrateVersion = (currentSettings: ISettings): ISettings => { version ) let newSettings = currentSettings - if (version === '4.6.0') { - newSettings = migrate45to46(currentSettings) + if (versionAsNumber(version) >= versionAsNumber('4.7.0')) { + newSettings = migrate45to47(currentSettings) } return newSettings } -const migrate45to46 = (currentSettings: ISettings): ISettings => { +const migrate45to47 = (currentSettings: ISettings): ISettings => { let files: string[] = getSnapShotList() files.push('default.shot') @@ -81,3 +84,12 @@ const migrate45to46 = (currentSettings: ISettings): ISettings => { ) return currentSettings } + +const versionAsNumber = (versionString: string): number => { + if (!versionString) return 0 + let versionArray: string[] = versionString.split('.') + let versionValue: number = + parseInt(versionArray[0]) * 100 + parseInt(versionArray[1]) + + return versionValue +}