@agility/cli
Version:
Agility CLI for working with your content. (Public Beta)
72 lines (71 loc) • 2.24 kB
TypeScript
import { GuidEntities } from "./guid-data-loader";
import { PushOperationConfig } from "./push-operations-config";
export interface PushResults {
successful: string[];
failed: Array<{
operation: string;
error: string;
}>;
skipped: string[];
totalDuration: number;
sourceGuidProcessed: string;
targetGuidProcessed: string;
logFilePath?: string;
totalSuccess: number;
totalFailures: number;
totalSkipped: number;
publishableContentIds: number[];
publishablePageIds: number[];
}
export interface PusherConfig {
onOperationStart?: (operationName: string, sourceGuid: string, targetGuid: string) => void;
onOperationComplete?: (operationName: string, sourceGuid: string, targetGuid: string, success: boolean) => void;
}
export declare class Pushers {
private config;
private startTime;
private fileOps;
constructor(config?: PusherConfig);
/**
* Execute all push operations for source to target GUID
*/
guidPusher(sourceGuid: string, targetGuid: string): Promise<PushResults>;
/**
* Orchestrate push operations (MAIN METHOD)
*/
instanceOrchestrator(): Promise<PushResults[]>;
/**
* Execute pushers in dependency order - moved from sync.ts
*/
private executePushersInOrder;
executePushOperation({ config, sourceData, targetData, locale, totalSuccess, totalFailures, totalSkipped, publishableContentIds, publishablePageIds, elements, }: {
config: PushOperationConfig;
sourceData: GuidEntities;
targetData: GuidEntities;
locale: string;
totalSuccess: number;
totalSkipped: number;
totalFailures: number;
publishableContentIds?: number[];
publishablePageIds?: number[];
elements: string[];
}): Promise<void>;
/**
* Get push summary
*/
getPushSummary(): {
totalOperations: number;
successfulOperations: number;
failedOperations: number;
overallSuccess: boolean;
duration: number;
};
/**
* Reset orchestrator state
*/
reset(): void;
/**
* Update configuration
*/
updateConfig(config: Partial<PusherConfig>): void;
}