cnpmcore
Version:
Private NPM Registry for Enterprise
114 lines (113 loc) • 3.77 kB
TypeScript
import { TaskState, TaskType } from '../../common/enum/Task.ts';
import { Entity, type EntityData } from './Entity.ts';
import type { HookEvent } from './HookEvent.ts';
import { type DIST_NAMES } from './Package.ts';
export declare const HOST_NAME: string;
export declare const PID: number;
export interface TaskBaseData {
taskWorker: string;
shouldNotMerge?: boolean;
}
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 interface SyncPackageTaskOptions {
authorId?: string;
authorIp?: string;
tips?: string;
skipDependencies?: boolean;
syncDownloadData?: boolean;
forceSyncHistory?: boolean;
force?: boolean;
registryId?: string;
specificVersions?: string[];
}
export interface UpdateProxyCacheTaskOptions {
fullname: string;
version?: string;
fileType: DIST_NAMES;
}
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;
force?: boolean;
specificVersions?: string[];
}
export interface CreateUpdateProxyCacheTaskData extends TaskBaseData {
fullname: string;
version?: string;
fileType: DIST_NAMES;
filePath: string;
}
export type SyncBinaryTaskData = Record<string, unknown> & TaskBaseData;
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 type CreateUpdateProxyCacheTask = Task<CreateUpdateProxyCacheTaskData>;
export type SyncBinaryTask = Task<SyncBinaryTaskData>;
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?: Record<string, unknown>): Task;
needMergeWhenWaiting(): boolean;
static createUpdateProxyCache(targetName: string, options: UpdateProxyCacheTaskOptions): CreateUpdateProxyCacheTask;
start(): TaskUpdateCondition;
}
export interface SyncInfo {
lastSince: string;
taskCount: number;
lastPackage?: string;
}