fix: improve inngest support

This commit is contained in:
Mythie
2024-06-17 16:59:14 +10:00
parent 6977381e00
commit b8d6484ff0
7 changed files with 31 additions and 30 deletions

View File

@ -1,5 +1,8 @@
import { match } from 'ts-pattern';
import type { JobDefinition, TriggerJobOptions } from './_internal/job';
import type { BaseJobProvider as JobClientProvider } from './base';
import { InngestJobProvider } from './inngest';
import { LocalJobProvider } from './local';
import { TriggerJobProvider } from './trigger';
@ -9,35 +12,20 @@ export class JobClient<T extends Array<JobDefinition> = []> {
private _provider: JobClientProvider;
public constructor(definitions: T) {
if (process.env.NEXT_PRIVATE_JOBS_PROVIDER === 'trigger') {
this._provider = TriggerJobProvider.getInstance();
return;
}
this._provider = LocalJobProvider.getInstance();
this._provider = match(process.env.NEXT_PRIVATE_JOBS_PROVIDER)
.with('inngest', () => InngestJobProvider.getInstance())
.with('trigger', () => TriggerJobProvider.getInstance())
.otherwise(() => LocalJobProvider.getInstance());
definitions.forEach((definition) => {
this._provider.defineJob(definition);
});
}
// public static getInstance() {
// if (!this._instance) {
// this._instance = new JobClient();
// }
// return this._instance;
// }
public async triggerJob(options: TriggerJobOptions<T>) {
return this._provider.triggerJob(options);
}
// public defineJob<N extends string, T>(job: JobDefinition<N, T>) {
// return this._provider.defineJob(job);
// }
public getApiHandler() {
return this._provider.getApiHandler();
}