Made database migration compatible with plugins

This commit is contained in:
DJj123dj
2025-02-17 19:44:18 +01:00
parent 58674452d8
commit b12556120c
4 changed files with 48 additions and 5 deletions
+14 -2
View File
@@ -112,7 +112,7 @@ export interface ODUtilities {
*
* It shouldn't be used by plugins because this is an internal API feature!
*/
ODVersionMigration:new (version:api.ODVersion,func:() => void|Promise<void>) => ODVersionMigration
ODVersionMigration:new (version:api.ODVersion,func:() => void|Promise<void>,afterInitFunc:() => void|Promise<void>) => ODVersionMigration
}
/**## ODVersionMigration `utility class`
@@ -125,10 +125,13 @@ export class ODVersionMigration {
version: api.ODVersion
/**The migration function */
#func: () => void|Promise<void>
/**The migration function */
#afterInitFunc: () => void|Promise<void>
constructor(version:api.ODVersion,func:() => void|Promise<void>){
constructor(version:api.ODVersion,func:() => void|Promise<void>,afterInitFunc:() => void|Promise<void>){
this.version = version
this.#func = func
this.#afterInitFunc = afterInitFunc
}
/**Run this version migration as a plugin. Returns `false` when someting goes wrong. */
async migrate(): Promise<boolean> {
@@ -139,6 +142,15 @@ export class ODVersionMigration {
return false
}
}
/**Run this version migration as a plugin. Returns `false` when someting goes wrong. */
async migrateAfterInit(): Promise<boolean> {
try{
await this.#afterInitFunc()
return true
}catch{
return false
}
}
}
export const utilities: ODUtilities = {