cnpmcore
Version:
95 lines (94 loc) • 3.03 kB
TypeScript
import { Entity, EntityData } from './Entity';
import { TaskType, TaskState } from '../../common/enum/Task';
import { HookEvent } from './HookEvent';
export declare const HOST_NAME: string;
export declare const PID: number;
export interface TaskBaseData {
taskWorker: string;
}
export interface TaskData<T = TaskBaseData> extends EntityData {
taskId: string;
type: TaskType;
state: TaskState;
targetName: string;
authorId: string;
authorIp: string;
data: T;
logPath?: string;
logStorePosition?: string;
attempts?: number;
error?: string;
bizId?: string;
}
export type SyncPackageTaskOptions = {
authorId?: string;
authorIp?: string;
tips?: string;
skipDependencies?: boolean;
syncDownloadData?: boolean;
forceSyncHistory?: boolean;
registryId?: string;
specificVersions?: Array<string>;
};
export interface CreateHookTaskData extends TaskBaseData {
hookEvent: HookEvent;
}
export interface TriggerHookTaskData extends TaskBaseData {
hookEvent: HookEvent;
hookId: string;
responseStatus?: number;
}
export interface CreateSyncPackageTaskData extends TaskBaseData {
tips?: string;
skipDependencies?: boolean;
syncDownloadData?: boolean;
forceSyncHistory?: boolean;
specificVersions?: Array<string>;
}
export interface ChangesStreamTaskData extends TaskBaseData {
since: string;
last_package?: string;
last_package_created?: Date;
task_count?: number;
registryId?: string;
}
export interface TaskUpdateCondition {
taskId: string;
attempts: number;
}
export type CreateHookTask = Task<CreateHookTaskData>;
export type TriggerHookTask = Task<TriggerHookTaskData>;
export type CreateSyncPackageTask = Task<CreateSyncPackageTaskData>;
export type ChangesStreamTask = Task<ChangesStreamTaskData>;
export declare class Task<T extends TaskBaseData = TaskBaseData> extends Entity {
taskId: string;
type: TaskType;
state: TaskState;
targetName: string;
taskWorker: string;
authorId: string;
authorIp: string;
data: T;
logPath: string;
logStorePosition: string;
attempts: number;
error: string;
bizId?: string;
constructor(data: TaskData<T>);
resetLogPath(): void;
setExecuteWorker(): void;
private static create;
static createSyncPackage(fullname: string, options?: SyncPackageTaskOptions): CreateSyncPackageTask;
static createChangesStream(targetName: string, registryId?: string, since?: string): ChangesStreamTask;
updateSyncData({ lastSince, taskCount, lastPackage }: SyncInfo): void;
static createCreateHookTask(hookEvent: HookEvent): CreateHookTask;
static createTriggerHookTask(hookEvent: HookEvent, hookId: string): TriggerHookTask;
static createSyncBinary(targetName: string, lastData: any): Task;
static needMergeWhenWaiting(type: TaskType): boolean;
start(): TaskUpdateCondition;
}
export type SyncInfo = {
lastSince: string;
taskCount: number;
lastPackage?: string;
};