@mieweb/wikigdrive
Version:
Google Drive to MarkDown synchronization
79 lines • 2.44 kB
TypeScript
import { Container, ContainerConfig, ContainerEngine } from '../../ContainerEngine.js';
import { FileId } from '../../model/model.js';
import { FileContentService } from '../../utils/FileContentService.js';
export type JobType = 'sync' | 'sync_all' | 'transform' | 'git_fetch' | 'git_pull' | 'git_push' | 'git_reset' | 'git_commit' | 'run_action' | 'upload';
export type JobState = 'waiting' | 'running' | 'failed' | 'done';
export declare function initJob(): {
id: string;
state: JobState;
};
export interface Job {
id: string;
state: JobState;
progress?: {
total: number;
completed: number;
warnings: number;
failed?: number;
};
type: JobType;
title: string;
trigger?: string;
action_id?: string;
payload?: string;
access_token?: string;
ts?: number;
started?: number;
finished?: number;
startAfter?: number;
user?: {
name: string;
email: string;
};
}
export interface Toast {
title: string;
message: string;
}
export interface DriveJobs {
driveId: FileId;
jobs: Job[];
archive: Job[];
}
export interface DriveJobsMap {
[driveId: FileId]: DriveJobs;
}
export declare function clearCachedChanges(googleFileSystem: FileContentService): Promise<void>;
export declare class JobManagerContainer extends Container {
readonly params: ContainerConfig;
private driveJobsMap;
private workerPool;
constructor(params: ContainerConfig);
init(engine: ContainerEngine): Promise<void>;
getDriveJobs(driveId: FileId): Promise<DriveJobs>;
setDriveJobs(driveId: FileId, driveJobs: DriveJobs): Promise<void>;
scheduleWorker(type: string, payload: unknown): Promise<unknown>;
schedule(driveId: FileId, job: Job): Promise<void>;
ps(): Promise<DriveJobsMap>;
inspect(driveId: FileId): Promise<DriveJobs>;
run(): Promise<void>;
private upload;
private sync;
private runAction;
private gitFetch;
private gitPull;
private gitPush;
private gitCommit;
private gitReset;
private scheduleRetry;
private runJob;
clearGitCache(driveId: FileId): Promise<void>;
destroy(): Promise<void>;
progressJob(folderId: FileId, jobId: string, { completed, total, warnings, failed }: {
completed: any;
total: any;
warnings: any;
failed: any;
}): void;
}
//# sourceMappingURL=JobManagerContainer.d.ts.map