@lokalise/background-jobs-common
Advanced tools
Comparing version 1.0.2 to 1.0.3
@@ -1,8 +0,8 @@ | ||
import type { Job } from 'bullmq'; | ||
import type { BaseLogger, Bindings, ChildLoggerOptions, Logger } from 'pino'; | ||
import type pino from 'pino'; | ||
import type { SafeJob } from './types'; | ||
export declare class BackgroundJobProcessorLogger implements BaseLogger { | ||
private readonly logger; | ||
private readonly job; | ||
constructor(logger: Logger, job: Job<unknown>); | ||
constructor(logger: Logger, job: SafeJob<unknown>); | ||
get level(): pino.LevelWithSilentOrString; | ||
@@ -9,0 +9,0 @@ set level(level: pino.LevelWithSilentOrString); |
@@ -5,3 +5,3 @@ import type { Queue, Worker, WorkerOptions, JobsOptions, Job, QueueOptions } from 'bullmq'; | ||
import pino from 'pino'; | ||
import type { BackgroundJobProcessorConfig, BackgroundJobProcessorDependencies, BullmqProcessor } from '../types'; | ||
import type { BackgroundJobProcessorConfig, BackgroundJobProcessorDependencies, BullmqProcessor, SafeJob, SafeQueue } from '../types'; | ||
import { BackgroundJobProcessorSpy } from './spy/BackgroundJobProcessorSpy'; | ||
@@ -13,3 +13,3 @@ import type { BackgroundJobProcessorSpyInterface } from './spy/types'; | ||
} | ||
export declare abstract class AbstractBackgroundJobProcessor<JobPayload extends object, JobReturn = void, JobType extends Job<JobPayload, JobReturn> = Job, QueueType extends Queue<JobPayload, JobReturn> = Queue<JobPayload, JobReturn>, QueueOptionsType extends QueueOptions = QueueOptions, WorkerType extends Worker<JobPayload, JobReturn> = Worker<JobPayload, JobReturn>, WorkerOptionsType extends WorkerOptions = WorkerOptions, ProcessorType extends BullmqProcessor<JobType, JobPayload, JobReturn> = BullmqProcessor<JobType, JobPayload, JobReturn>, JobOptionsType extends JobsOptions = JobsOptions> { | ||
export declare abstract class AbstractBackgroundJobProcessor<JobPayload extends object, JobReturn = void, JobType extends SafeJob<JobPayload, JobReturn> = Job, QueueType extends SafeQueue<JobOptionsType, JobPayload, JobReturn> = Queue<JobPayload, JobReturn>, QueueOptionsType extends QueueOptions = QueueOptions, WorkerType extends Worker<JobPayload, JobReturn> = Worker<JobPayload, JobReturn>, WorkerOptionsType extends WorkerOptions = WorkerOptions, ProcessorType extends BullmqProcessor<JobType, JobPayload, JobReturn> = BullmqProcessor<JobType, JobPayload, JobReturn>, JobOptionsType extends JobsOptions = JobsOptions> { | ||
protected readonly logger: Logger; | ||
@@ -24,3 +24,3 @@ private readonly redis; | ||
private factory; | ||
protected constructor(dependencies: BackgroundJobProcessorDependencies<JobPayload, JobReturn, JobType, QueueType, QueueOptionsType, WorkerType, WorkerOptionsType, ProcessorType>, config: BackgroundJobProcessorConfig<QueueOptionsType, WorkerOptionsType>); | ||
protected constructor(dependencies: BackgroundJobProcessorDependencies<JobPayload, JobReturn, JobType, JobOptionsType, QueueType, QueueOptionsType, WorkerType, WorkerOptionsType, ProcessorType>, config: BackgroundJobProcessorConfig<QueueOptionsType, WorkerOptionsType>); | ||
static getActiveQueueIds(redis: Redis): Promise<string[]>; | ||
@@ -38,4 +38,4 @@ get spy(): BackgroundJobProcessorSpyInterface<JobPayload>; | ||
private get initializedQueue(); | ||
protected abstract process(job: Job<JobPayload>, requestContext: RequestContext): Promise<JobReturn>; | ||
protected abstract onFailed(job: Job<JobPayload>, error: Error, requestContext: RequestContext): Promise<void>; | ||
protected abstract process(job: JobType, requestContext: RequestContext): Promise<JobReturn>; | ||
protected abstract onFailed(job: JobType, error: Error, requestContext: RequestContext): Promise<void>; | ||
} |
@@ -1,6 +0,7 @@ | ||
import type { Queue, QueueOptions, Worker, WorkerOptions } from 'bullmq'; | ||
import type { BullmqProcessor, SafeJob } from '../../types'; | ||
export declare abstract class AbstractBullmqFactory<QueueType extends Queue<JobPayload, JobReturn>, QueueOptionsType extends QueueOptions, WorkerType extends Worker<JobPayload, JobReturn>, WorkerOptionsType extends WorkerOptions, ProcessorType extends BullmqProcessor<JobType, JobPayload, JobReturn>, JobType extends SafeJob<JobPayload, JobReturn>, JobPayload extends object, JobReturn> { | ||
import type { QueueOptions, Worker, WorkerOptions } from 'bullmq'; | ||
import type { JobsOptions } from 'bullmq/dist/esm/types'; | ||
import type { BullmqProcessor, SafeJob, SafeQueue } from '../../types'; | ||
export declare abstract class AbstractBullmqFactory<QueueType extends SafeQueue<JobsOptionsType, JobPayload, JobReturn>, QueueOptionsType extends QueueOptions, WorkerType extends Worker<JobPayload, JobReturn>, WorkerOptionsType extends WorkerOptions, ProcessorType extends BullmqProcessor<JobType, JobPayload, JobReturn>, JobType extends SafeJob<JobPayload, JobReturn>, JobPayload extends object, JobReturn, JobsOptionsType extends JobsOptions> { | ||
abstract buildQueue(queueId: string, options?: QueueOptionsType): QueueType; | ||
abstract buildWorker(queueId: string, processor?: ProcessorType, options?: WorkerOptionsType): WorkerType; | ||
} |
@@ -1,8 +0,8 @@ | ||
import type { Processor, QueueOptions, WorkerOptions, Job } from 'bullmq'; | ||
import { Queue, Worker } from 'bullmq'; | ||
import type { Processor, QueueOptions, WorkerOptions, Job, JobsOptions } from 'bullmq'; | ||
import type { BullmqProcessor } from '../../types'; | ||
import type { AbstractBullmqFactory } from './AbstractBullmqFactory'; | ||
export declare class CommonBullmqFactory<JobPayload extends object, JobReturn = void> implements AbstractBullmqFactory<Queue<JobPayload, JobReturn>, QueueOptions, Worker<JobPayload, JobReturn>, WorkerOptions, BullmqProcessor<Job, JobPayload, JobReturn>, Job<JobPayload, JobReturn>, JobPayload, JobReturn> { | ||
export declare class CommonBullmqFactory<JobPayload extends object, JobReturn = void> implements AbstractBullmqFactory<Queue<JobPayload, JobReturn>, QueueOptions, Worker<JobPayload, JobReturn>, WorkerOptions, BullmqProcessor<Job, JobPayload, JobReturn>, Job<JobPayload, JobReturn>, JobPayload, JobReturn, JobsOptions> { | ||
buildQueue(queueId: string, options: QueueOptions): Queue; | ||
buildWorker(queueId: string, processor?: string | URL | null | Processor, options?: WorkerOptions): Worker; | ||
} |
@@ -1,3 +0,2 @@ | ||
import type { Job } from 'bullmq'; | ||
import type { JobFinalState } from '../../types'; | ||
import type { JobFinalState, SafeJob } from '../../types'; | ||
import type { BackgroundJobProcessorSpyInterface, JobSpyResult, JobDataSelector } from './types'; | ||
@@ -21,3 +20,3 @@ export declare class BackgroundJobProcessorSpy<JobData extends object> implements BackgroundJobProcessorSpyInterface<JobData> { | ||
*/ | ||
addJobProcessingResult(job: Job<JobData>, state: JobFinalState): void; | ||
addJobProcessingResult(job: SafeJob<JobData>, state: JobFinalState): void; | ||
} |
import type { ErrorReporter } from '@lokalise/node-core'; | ||
import type { Job, FinishedStatus, Queue, QueueOptions, Worker, WorkerOptions } from 'bullmq'; | ||
import type { Job, FinishedStatus, Queue, QueueOptions, Worker, WorkerOptions, JobsOptions } from 'bullmq'; | ||
import type Redis from 'ioredis'; | ||
@@ -18,4 +18,7 @@ import type { Logger } from 'pino'; | ||
export type SafeJob<T = any, R = any, N extends string = string> = Omit<Job<T, R, N>, 'scripts'>; | ||
export type SafeQueue<JobsOptionsType = JobsOptions, DataType = any, ResultType = any, NameType extends string = string> = Omit<Queue<DataType, ResultType, NameType>, 'add'> & { | ||
add(name: NameType, data: DataType, opts?: JobsOptionsType): Promise<SafeJob<DataType, ResultType, NameType>>; | ||
}; | ||
export type BullmqProcessor<J extends SafeJob<T, R, N>, T = any, R = any, N extends string = string> = (job: J, token?: string) => Promise<R>; | ||
export type BackgroundJobProcessorDependencies<JobPayload extends object, JobReturn = void, JobType extends SafeJob<JobPayload, JobReturn> = Job, QueueType extends Queue<JobPayload, JobReturn> = Queue<JobPayload, JobReturn>, QueueOptionsType extends QueueOptions = QueueOptions, WorkerType extends Worker<JobPayload, JobReturn> = Worker<JobPayload, JobReturn>, WorkerOptionsType extends WorkerOptions = WorkerOptions, ProcessorType extends BullmqProcessor<JobType, JobPayload, JobReturn> = BullmqProcessor<JobType, JobPayload, JobReturn>> = { | ||
export type BackgroundJobProcessorDependencies<JobPayload extends object, JobReturn = void, JobType extends SafeJob<JobPayload, JobReturn> = Job, JobsOptionsType extends JobsOptions = JobsOptions, QueueType extends SafeQueue<JobsOptionsType, JobPayload, JobReturn> = Queue<JobPayload, JobReturn>, QueueOptionsType extends QueueOptions = QueueOptions, WorkerType extends Worker<JobPayload, JobReturn> = Worker<JobPayload, JobReturn>, WorkerOptionsType extends WorkerOptions = WorkerOptions, ProcessorType extends BullmqProcessor<JobType, JobPayload, JobReturn> = BullmqProcessor<JobType, JobPayload, JobReturn>> = { | ||
redis: Redis; | ||
@@ -25,3 +28,3 @@ transactionObservabilityManager: TransactionObservabilityManager; | ||
errorReporter: ErrorReporter; | ||
bullmqFactory: AbstractBullmqFactory<QueueType, QueueOptionsType, WorkerType, WorkerOptionsType, ProcessorType, JobType, JobPayload, JobReturn>; | ||
bullmqFactory: AbstractBullmqFactory<QueueType, QueueOptionsType, WorkerType, WorkerOptionsType, ProcessorType, JobType, JobPayload, JobReturn, JobsOptionsType>; | ||
}; |
@@ -1,5 +0,5 @@ | ||
import type { Job } from 'bullmq'; | ||
import type { SafeJob } from './types'; | ||
export declare const daysToSeconds: (days: number) => number; | ||
export declare const daysToMilliseconds: (days: number) => number; | ||
export declare const resolveJobId: (job?: Job<unknown>) => string; | ||
export declare const resolveJobId: (job?: SafeJob<unknown>) => string; | ||
export declare const isStalledJobError: (error: Error) => boolean; |
{ | ||
"name": "@lokalise/background-jobs-common", | ||
"version": "1.0.2", | ||
"version": "1.0.3", | ||
"files": [ | ||
@@ -5,0 +5,0 @@ "dist", |
40706
582