refactor(cli, ups-handler, daemon, migrations): remove thresholds handling and update migration order logic
This commit is contained in:
@@ -5,16 +5,14 @@
|
||||
* Migrations run in order based on the `order` field, allowing users to jump
|
||||
* multiple versions (e.g., v1 → v4 runs migrations 2, 3, and 4).
|
||||
*/
|
||||
/**
|
||||
* Abstract base class for configuration migrations
|
||||
*
|
||||
* Each migration represents an upgrade from one config version to another.
|
||||
* Migrations run in order based on the `toVersion` field, allowing users to jump
|
||||
* multiple versions (e.g., v1 → v4 runs migrations 2, 3, and 4).
|
||||
*/
|
||||
export abstract class BaseMigration {
|
||||
/**
|
||||
* Migration order number
|
||||
* - Order 2: v1 → v2
|
||||
* - Order 3: v2 → v3
|
||||
* - Order 4: v3 → v4
|
||||
* etc.
|
||||
*/
|
||||
abstract readonly order: number;
|
||||
|
||||
/**
|
||||
* Source version this migration upgrades from
|
||||
* e.g., "1.x", "3.x"
|
||||
@@ -23,7 +21,7 @@ export abstract class BaseMigration {
|
||||
|
||||
/**
|
||||
* Target version this migration upgrades to
|
||||
* e.g., "2.0", "4.0"
|
||||
* e.g., "2.0", "4.0", "4.1"
|
||||
*/
|
||||
abstract readonly toVersion: string;
|
||||
|
||||
@@ -51,4 +49,19 @@ export abstract class BaseMigration {
|
||||
getName(): string {
|
||||
return `Migration ${this.fromVersion} → ${this.toVersion}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse version string into a comparable number
|
||||
* Supports formats like "2.0", "4.1", etc.
|
||||
* Returns a number like 2.0, 4.1 for sorting
|
||||
*
|
||||
* @returns Parsed version number for ordering
|
||||
*/
|
||||
getVersionOrder(): number {
|
||||
const parsed = parseFloat(this.toVersion);
|
||||
if (isNaN(parsed)) {
|
||||
throw new Error(`Invalid version format: ${this.toVersion}`);
|
||||
}
|
||||
return parsed;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user