feat: make jobs client type safe

This commit is contained in:
Mythie
2024-05-22 21:57:05 +10:00
parent 002dc0fdae
commit f28334bff7
11 changed files with 252 additions and 172 deletions

View File

@@ -1,25 +1,23 @@
import { z } from 'zod';
import { sendConfirmationToken } from '../../server-only/user/send-confirmation-token';
import type { JobClient } from '../client/client';
import type { JobDefinition } from '../client/_internal/job';
export const registerSendConfirmationEmailJob = (client: JobClient) => {
client.defineJob({
id: 'send.confirmation.email',
name: 'Send Confirmation Email',
version: '1.0.0',
trigger: {
name: 'send.confirmation.email',
schema: z.object({
email: z.string().email(),
force: z.boolean().optional(),
}),
},
handler: async ({ payload }) => {
await sendConfirmationToken({
email: payload.email,
force: payload.force,
});
},
});
};
export const SEND_CONFIRMATION_EMAIL_JOB_DEFINITION = {
id: 'send.confirmation.email',
name: 'Send Confirmation Email',
version: '1.0.0',
trigger: {
name: 'send.confirmation.email',
schema: z.object({
email: z.string().email(),
force: z.boolean().optional(),
}),
},
handler: async ({ payload }) => {
await sendConfirmationToken({
email: payload.email,
force: payload.force,
});
},
} as const satisfies JobDefinition;