UNPKG

cs-element

Version:

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

194 lines 5.95 kB
/** * Плагин трансформации данных для CSElement * Обеспечивает преобразование данных при операциях */ import { CSElementPlugin, LifecycleHooks, PluginOptions } from '../types/plugin-interfaces'; import { ICSElement } from '../types/interfaces'; import { CSElement } from '../core/CSElement'; /** * Типы трансформации */ export declare enum TransformType { INPUT = "input",// При входе данных OUTPUT = "output",// При выходе данных STORAGE = "storage",// При сохранении DISPLAY = "display",// При отображении JSON_STRINGIFY = "json_stringify", JSON_PARSE = "json_parse", BASE64_ENCODE = "base64_encode", BASE64_DECODE = "base64_decode", UPPERCASE = "uppercase", LOWERCASE = "lowercase", CUSTOM = "custom" } /** * Направление трансформации */ export declare enum TransformDirection { ENCODE = "encode",// Кодирование DECODE = "decode",// Декодирование BOTH = "both" } /** * Функция трансформации */ export type TransformFunction<T = any, R = any> = (value: T, context: TransformContext) => R | Promise<R>; /** * Контекст трансформации */ export interface TransformContext { element: ICSElement; key: string; type: TransformType; direction: TransformDirection; metadata: Record<string, any>; originalValue: any; } /** * Правило трансформации */ export interface TransformRule { name: string; type: TransformType; direction: TransformDirection; keyPattern?: string | RegExp; valueType?: string; condition?: (context: TransformContext) => boolean; transform: TransformFunction; priority?: number; enabled?: boolean; field?: string; transformer?: (value: any) => any; } /** * Результат трансформации */ export interface TransformResult<T = any> { success: boolean; value: T; error?: string; metadata?: Record<string, any>; appliedRules: string[]; } /** * Конфигурация трансформации */ export interface TransformConfig { enabled: boolean; enabledTypes: TransformType[]; rules: TransformRule[]; maxTransformTime: number; enableCache: boolean; enableStats: boolean; } /** * Статистика трансформаций */ export interface TransformStats { totalTransforms: number; successfulTransforms: number; failedTransforms: number; averageTime: number; ruleStats: Map<string, { executions: number; successes: number; failures: number; totalTime: number; averageTime: number; }>; } /** * Плагин трансформации */ export declare class TransformPlugin implements CSElementPlugin { readonly name = "TransformPlugin"; readonly version = "1.0.0"; readonly description = "\u041F\u043B\u0430\u0433\u0438\u043D \u0434\u043B\u044F \u0442\u0440\u0430\u043D\u0441\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438 \u0434\u0430\u043D\u043D\u044B\u0445"; private config; private transformCache; private stats; constructor(options?: PluginOptions); install(CSElementClass: typeof CSElement): void; getLifecycleHooks(): LifecycleHooks; /** * Применение трансформаций */ applyTransforms(value: any, context: TransformContext): Promise<TransformResult>; /** * Получение применимых правил */ private getApplicableRules; /** * Проверка соответствия паттерну ключа */ private matchesKeyPattern; /** * Проверка соответствия типу значения */ private matchesValueType; /** * Применение трансформации с таймаутом */ private applyTransformWithTimeout; /** * Добавление правила трансформации */ addRule(rule: TransformRule): void; /** * Удаление правила трансформации */ removeRule(name: string): boolean; /** * Получение правила по имени */ getRule(name: string): TransformRule | undefined; /** * Получение всех правил */ getRules(): TransformRule[]; /** * Включение/отключение правила */ toggleRule(name: string, enabled: boolean): boolean; /** * Трансформация значения напрямую */ transform(value: any, type: TransformType, direction: TransformDirection, element: ICSElement, key?: string): Promise<TransformResult>; /** * Добавление встроенных трансформаций */ private addBuiltInTransforms; /** * Обновление статистики */ private updateStats; /** * Обновление статистики правила */ private updateRuleStats; /** * Получение статистики */ getStats(): TransformStats; /** * Сброс статистики */ resetStats(): void; /** * Очистка кэша */ clearCache(): void; /** * Обновление конфигурации */ updateConfig(config: Partial<TransformConfig>): void; /** * Получение конфигурации */ getConfig(): TransformConfig; } /** * Фабричная функция для создания плагина трансформации */ export declare function transformPlugin(config?: Partial<TransformConfig>): TransformPlugin; //# sourceMappingURL=TransformPlugin.d.ts.map