UNPKG

2.56 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../src/utils/runCron.js"],"names":["runCron","bot","initedCrons","rules","forEach","rule","cron","action","times","Array","isArray","time","nodecron","validate","Err","data","push","schedule","log","trace","module","actionModule","runAction","length","debug","map"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEe,SAASA,OAAT,OAA0B;AAAA;;AAAA,MAAPC,GAAO,QAAPA,GAAO;AACvC,MAAMC,WAAW,GAAG,EAApB;AACA,MAAI,CAAC,KAAKC,KAAV,EAAiB,OAAO,EAAP;AACjB,OAAKA,KAAL,CAAWC,OAAX,CAAmB,UAACC,IAAD,EAAU;AAC3B,QAAI,CAACA,IAAI,CAACC,IAAV,EAAgB;AAChB,QAAQC,MAAR,GAAmBF,IAAnB,CAAQE,MAAR;AACA,QAAMC,KAAK,GAAGC,KAAK,CAACC,OAAN,CAAcL,IAAI,CAACC,IAAnB,IAA2BD,IAAI,CAACC,IAAhC,GAAuC,CAACD,IAAI,CAACC,IAAN,CAArD;AACAE,IAAAA,KAAK,CAACJ,OAAN,CAAc,UAACO,IAAD,EAAU;AACtB,UAAI,CAACC,qBAASC,QAAT,CAAkBF,IAAlB,CAAL,EAA8B,MAAM,IAAIG,eAAJ,CAAQ,gBAAR,EAA0B;AAAEC,QAAAA,IAAI,EAAE;AAAEJ,UAAAA,IAAI,EAAJA;AAAF;AAAR,OAA1B,CAAN;AAC9BT,MAAAA,WAAW,CAACc,IAAZ,CAAiB;AACfL,QAAAA,IAAI,EAAJA,IADe;AAEfN,QAAAA,IAAI,EAAJA,IAFe;AAGfY,QAAAA,QAAQ,EAAEL,qBAASK,QAAT,CAAkBN,IAAlB,6FAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAChC,kBAAA,KAAI,CAACO,GAAL,CAASC,KAAT,2BAAkCR,IAAlC,QAA2CN,IAA3C;;AADgC;AAAA,yBAEL,KAAI,CAACe,MAAL,CAAY,QAAZ,CAFK;;AAAA;AAE1BC,kBAAAA,YAF0B;AAGhCA,kBAAAA,YAAY,CAACC,SAAb,CAAuBf,MAAvB;AAAiCN,oBAAAA,GAAG,EAAHA;AAAjC,qBAAyCI,IAAzC;;AAHgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAxB;AAHK,OAAjB;AASD,KAXD;AAYD,GAhBD;;AAiBA,MAAIH,WAAW,CAACqB,MAAhB,EAAwB;AACtB,SAAKL,GAAL,CAASM,KAAT,CACE,SADF,EAEEtB,WAAW,CAACuB,GAAZ,CAAgB,UAACnB,IAAD;AAAA,aAAUA,IAAI,CAACK,IAAf;AAAA,KAAhB,CAFF;AAID;;AACD,SAAOT,WAAP;AACD","sourcesContent":["import Err from '@lskjs/err';\nimport nodecron from 'node-cron';\n\nexport default function runCron({ bot }) {\n const initedCrons = [];\n if (!this.rules) return [];\n this.rules.forEach((rule) => {\n if (!rule.cron) return;\n const { action } = rule;\n const times = Array.isArray(rule.cron) ? rule.cron : [rule.cron];\n times.forEach((time) => {\n if (!nodecron.validate(time)) throw new Err('CRON_NOT_VALID', { data: { time } });\n initedCrons.push({\n time,\n rule,\n schedule: nodecron.schedule(time, async () => {\n this.log.trace(`CRON action on '${time}'`, rule);\n const actionModule = await this.module('action');\n actionModule.runAction(action, { bot, ...rule });\n }),\n });\n });\n });\n if (initedCrons.length) {\n this.log.debug(\n 'runCron',\n initedCrons.map((cron) => cron.time),\n );\n }\n return initedCrons;\n}\n"],"file":"runCron.js"}
\No newline at end of file