@grouparoo/core
Version:
The Grouparoo Core
82 lines (81 loc) • 2.87 kB
TypeScript
import { Schedule } from "./Schedule";
import { Import } from "./Import";
import { CommonModel } from "../classes/commonModel";
export interface HighWaterMark {
[key: string]: string | number | Date;
}
declare const RUN_CREATORS: readonly ["schedule", "property", "group", "grouparooModel", "task", "teamMember"];
declare const STATES: readonly ["draft", "running", "complete", "stopped"];
export declare class Run extends CommonModel<Run> {
idPrefix(): string;
creatorId: string;
creatorType: typeof RUN_CREATORS[number];
state: typeof STATES[number];
completedAt: Date;
importsCreated: number;
recordsCreated: number;
recordsImported: number;
error: string;
get highWaterMark(): HighWaterMark;
set highWaterMark(value: HighWaterMark);
sourceOffset: string | number;
memberLimit: number;
memberOffset: number;
method: string;
percentComplete: number;
destinationId: string;
schedule: Schedule;
imports: Import[];
determinePercentComplete(logPercentMessage?: boolean, write?: boolean): Promise<number>;
afterBatch(newSate?: Run["state"]): Promise<void>;
updateTotals(): Promise<void>;
buildErrorMessage(): Promise<this>;
stop(): Promise<void>;
/**
* Used to find the previous run for this connection. Useful in Connection#run to get the timestamp of the last time the connection was run.
* Will ensure that the run returned did not error and read at least one record
*/
previousRun(): Promise<Run>;
/**
* This method tries to import a random record to check if the Properties are valid
*/
test(): Promise<void>;
quantizedTimeline(steps?: number): Promise<{
lastBoundary: number;
nextBoundary: number;
steps: {
associate: number;
imported: number;
};
}[]>;
apiData(): Promise<{
id: string;
creatorId: string;
creatorName: string;
creatorType: "group" | "task" | "schedule" | "property" | "grouparooModel" | "teamMember";
state: "stopped" | "running" | "complete" | "draft";
percentComplete: number;
importsCreated: number;
recordsCreated: number;
recordsImported: number;
error: string;
highWaterMark: HighWaterMark;
sourceOffset: string | number;
memberLimit: number;
memberOffset: number;
method: string;
destinationId: string;
createdAt: number;
updatedAt: number;
completedAt: number;
}>;
getCreatorName(): Promise<string>;
static ensureCreatorReady(instance: Run): Promise<void>;
static updateState(instance: Run): Promise<void>;
static testRun(instance: Run): Promise<void>;
static sweep(limit: number): Promise<{
count: number;
days: number;
}>;
}
export {};