| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- const defs = [
- require("./setup"),
- require("./heartbeat")
- ]
-
- class Job {
- constructor({ jobName, timeout, interval }) {
- this.name = jobName
- this.timeout = timeout
- this.interval = interval
- }
- }
-
- class JobFactory {
- constructor() {
- this.jobs = []
- this.addJobsFromDefs({ defs })
- }
- /**
- * Force using of Job objects for validating
- */
- createJob({ jobName, timeout, interval }) {
- return new Job({ jobName, timeout, interval })
- }
- /**
- * Only store the job if it is
- * a valid Job instance
- */
- addJobFromDef(jobDef) {
- const job = this.createJob(jobDef)
- if (job) {
- this.jobs.push(job)
- }
- }
- /**
- * Take in job definitions from accompanying
- * job files. Job files must include and
- * execute a jobRun()
- */
- addJobsFromDefs({ defs }) {
- defs.forEach(def => this.addJobFromDef(def))
- }
- }
-
- const jobFactory = new JobFactory()
- module.exports = jobFactory
|