cs-element
Version:
Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support
102 lines • 3.71 kB
TypeScript
/**
* Фабрика операций и построитель батчей
*/
import { ICSElement } from '../types/interfaces';
import { BatchOperation, BatchOperationFactory, BatchBuilder, BatchConfig, BatchResult, BatchExecutionContext, IBatchManager } from '../types/batch-interfaces';
/**
* Реализация фабрики операций
*/
export declare class DefaultBatchOperationFactory implements BatchOperationFactory {
/**
* Создать операцию создания элемента
*/
createElementOperation(elementData: any): BatchOperation;
/**
* Создать операцию обновления элемента
*/
updateElementOperation(element: ICSElement, updates: any): BatchOperation;
/**
* Создать операцию удаления элемента
*/
deleteElementOperation(element: ICSElement): BatchOperation;
/**
* Создать операцию перемещения элемента
*/
moveElementOperation(element: ICSElement, newParent: ICSElement): BatchOperation;
/**
* Создать операцию копирования элемента
*/
copyElementOperation(element: ICSElement, target: ICSElement): BatchOperation;
/**
* Создать операцию валидации
*/
validateElementOperation(element: ICSElement): BatchOperation;
/**
* Создать пользовательскую операцию
*/
customOperation(id: string, executor: (context: BatchExecutionContext) => Promise<any>): BatchOperation;
}
/**
* Построитель батчей
*/
export declare class DefaultBatchBuilder implements BatchBuilder {
private batchManager;
private operationFactory;
private batchId;
private config;
constructor(batchManager: IBatchManager, operationFactory?: BatchOperationFactory);
/**
* Установить конфигурацию
*/
withConfig(config: Partial<BatchConfig>): BatchBuilder;
/**
* Добавить операцию
*/
addOperation(operation: BatchOperation): BatchBuilder;
/**
* Добавить операции
*/
addOperations(operations: BatchOperation[]): BatchBuilder;
/**
* Добавить операцию создания
*/
createElement(elementData: any): BatchBuilder;
/**
* Добавить операцию обновления
*/
updateElement(element: ICSElement, updates: any): BatchBuilder;
/**
* Добавить операцию удаления
*/
deleteElement(element: ICSElement): BatchBuilder;
/**
* Добавить условную операцию
*/
when(condition: (context: BatchExecutionContext) => boolean, operation: BatchOperation): BatchBuilder;
/**
* Построить и выполнить батч
*/
execute(): Promise<BatchResult>;
/**
* Построить батч без выполнения
*/
build(): string;
}
/**
* Утилитарные функции для создания операций
*/
export declare const BatchOperations: {
/**
* Создать операцию задержки
*/
delay(ms: number): BatchOperation;
/**
* Создать операцию логирования
*/
log(message: string, level?: "info" | "warn" | "error"): BatchOperation;
/**
* Создать операцию проверки условия
*/
assert(condition: (context: BatchExecutionContext) => boolean, message: string): BatchOperation;
};
//# sourceMappingURL=BatchOperationFactory.d.ts.map