UNPKG

cs-element

Version:

Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support

99 lines 3.48 kB
/** * Builder для создания миграций с fluent API */ import { IMigration, MigrationResult, MigrationContext, MigrationType } from '../types/migration-interfaces'; import { ICSElement } from '../types/interfaces'; export declare class MigrationBuilder { private migration; /** * Устанавливает ID миграции */ id(id: string): this; /** * Устанавливает версию миграции */ version(version: string): this; /** * Устанавливает описание миграции */ description(description: string): this; /** * Устанавливает тип миграции */ type(type: MigrationType): this; /** * Добавляет зависимость от другой миграции */ dependsOn(migrationId: string): this; /** * Добавляет несколько зависимостей */ dependsOnMany(migrationIds: string[]): this; /** * Устанавливает функцию применения миграции */ up(upFunction: (context: MigrationContext) => Promise<MigrationResult>): this; /** * Устанавливает функцию отката миграции */ down(downFunction: (context: MigrationContext) => Promise<MigrationResult>): this; /** * Устанавливает функцию проверки возможности применения */ canApply(canApplyFunction: (context: MigrationContext) => Promise<boolean>): this; /** * Устанавливает функцию проверки возможности отката */ canRollback(canRollbackFunction: (context: MigrationContext) => Promise<boolean>): this; /** * Устанавливает функцию валидации */ validate(validateFunction: (context: MigrationContext) => Promise<boolean>): this; /** * Создает миграцию для изменения схемы */ schemaChange(config: { schemaName: string; oldVersion: string; newVersion: string; fieldChanges?: { added?: string[]; removed?: string[]; renamed?: Record<string, string>; typeChanged?: Record<string, { from: string; to: string; }>; }; }): this; /** * Создает миграцию для трансформации данных */ dataTransform(config: { elementType?: string; transformer: (element: ICSElement) => Promise<ICSElement>; rollbackTransformer?: (element: ICSElement) => Promise<ICSElement>; batchSize?: number; }): this; /** * Создает миграцию для выполнения SQL-подобных операций */ sqlLike(config: { up: string; down: string; executor?: (query: string) => Promise<any>; }): this; /** * Создает миграцию с автоматическими проверками */ withAutoChecks(): this; /** * Создает финальную миграцию */ build(): IMigration; } /** * Создает новый builder для миграции */ export declare function createMigration(): MigrationBuilder; //# sourceMappingURL=MigrationBuilder.d.ts.map