import { dirname, join } from 'node:path' import { fileURLToPath } from 'node:url' import later from '@breejs/later' import Bree, { BreeOptions } from 'bree' import { NODE_ENV } from './config.js' const __dirname = dirname(fileURLToPath(import.meta.url)) // Doc for interval : https://breejs.github.io/later/parsers.html#text const jobs: BreeOptions['jobs'] = [ { name: 'refresh-token', interval: 'at 2:00', }, // { // name: 'daily-stand-up', // interval: 'on Monday through Thursday at 16:42', // }, // { // name: 'weekly-randomizer', // interval: 'on Thursday at 16:40', // }, ] const badJob = jobs.findIndex( (job) => typeof job === 'object' && 'interval' in job && // eslint-disable-next-line later.parse.text(job.interval).error >= 0 ) if (badJob >= 0) { throw new Error(`Bad interval in job n°${badJob}`) } const bree = new Bree({ root: join(__dirname, 'jobs'), defaultExtension: NODE_ENV === 'production' ? 'js' : 'ts', timezone: 'Europe/Paris', jobs, }) await bree.start() export { bree }