From 109f9e79793b36b46ab1987a56f7c206e21d32e4 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Fri, 23 May 2025 22:20:47 +0200 Subject: [PATCH] fix(deps): update dependency node-cron to v4 (#3075) Co-authored-by: Manuel <30572287+manuel-rw@users.noreply.github.com> --- packages/cron-job-runner/src/register.ts | 2 +- packages/cron-jobs-core/package.json | 2 +- packages/cron-jobs-core/src/creator.ts | 12 ++++++------ packages/cron-jobs-core/src/group.ts | 16 ++++++++-------- pnpm-lock.yaml | 12 +++++------- 5 files changed, 21 insertions(+), 23 deletions(-) diff --git a/packages/cron-job-runner/src/register.ts b/packages/cron-job-runner/src/register.ts index a58eb72a0..f97c56718 100644 --- a/packages/cron-job-runner/src/register.ts +++ b/packages/cron-job-runner/src/register.ts @@ -7,6 +7,6 @@ import { cronJobRunnerChannel } from "."; */ export const registerCronJobRunner = () => { cronJobRunnerChannel.subscribe((jobName) => { - jobGroup.runManually(jobName); + void jobGroup.runManuallyAsync(jobName); }); }; diff --git a/packages/cron-jobs-core/package.json b/packages/cron-jobs-core/package.json index 82b72ee75..12ff380fd 100644 --- a/packages/cron-jobs-core/package.json +++ b/packages/cron-jobs-core/package.json @@ -25,7 +25,7 @@ "prettier": "@homarr/prettier-config", "dependencies": { "@homarr/common": "workspace:^0.1.0", - "node-cron": "^3.0.3" + "node-cron": "^4.0.7" }, "devDependencies": { "@homarr/eslint-config": "workspace:^0.2.0", diff --git a/packages/cron-jobs-core/src/creator.ts b/packages/cron-jobs-core/src/creator.ts index 56b92c34a..e257a3843 100644 --- a/packages/cron-jobs-core/src/creator.ts +++ b/packages/cron-jobs-core/src/creator.ts @@ -1,5 +1,6 @@ import { AxiosError } from "axios"; -import cron from "node-cron"; +import type { ScheduledTask } from "node-cron"; +import { schedule, validate } from "node-cron"; import { Stopwatch } from "@homarr/common"; import type { MaybePromise } from "@homarr/common/types"; @@ -64,12 +65,11 @@ const createCallback = void catchingCallbackAsync(), { - scheduled: false, + scheduledTask = schedule(cronExpression, () => void catchingCallbackAsync(), { name, timezone: creatorOptions.timezone, }); @@ -110,7 +110,7 @@ export const createCronJobCreator = ( options: CreateCronJobOptions = { runOnStart: false }, ) => { creatorOptions.logger.logDebug(`Validating cron expression '${cronExpression}' for job: ${name}`); - if (cronExpression !== "never" && !cron.validate(cronExpression)) { + if (cronExpression !== "never" && !validate(cronExpression)) { throw new Error(`Invalid cron expression '${cronExpression}' for job '${name}'`); } creatorOptions.logger.logDebug(`Cron job expression '${cronExpression}' for job ${name} is valid`); diff --git a/packages/cron-jobs-core/src/group.ts b/packages/cron-jobs-core/src/group.ts index af68ed566..d51143cd3 100644 --- a/packages/cron-jobs-core/src/group.ts +++ b/packages/cron-jobs-core/src/group.ts @@ -34,33 +34,33 @@ export const createJobGroupCreator = ( options.logger.logInfo(`Starting schedule cron job ${job.name}.`); await job.onStartAsync(); - job.scheduledTask?.start(); + await job.scheduledTask?.start(); }, startAllAsync: async () => { for (const job of jobRegistry.values()) { options.logger.logInfo(`Starting schedule of cron job ${job.name}.`); await job.onStartAsync(); - job.scheduledTask?.start(); + await job.scheduledTask?.start(); } }, - runManually: (name: keyof TJobs) => { + runManuallyAsync: async (name: keyof TJobs) => { const job = jobRegistry.get(name as string); if (!job) return; options.logger.logInfo(`Running schedule cron job ${job.name} manually.`); - job.scheduledTask?.now(); + await job.scheduledTask?.execute(); }, - stop: (name: keyof TJobs) => { + stopAsync: async (name: keyof TJobs) => { const job = jobRegistry.get(name as string); if (!job) return; options.logger.logInfo(`Stopping schedule cron job ${job.name}.`); - job.scheduledTask?.stop(); + await job.scheduledTask?.stop(); }, - stopAll: () => { + stopAllAsync: async () => { for (const job of jobRegistry.values()) { options.logger.logInfo(`Stopping schedule cron job ${job.name}.`); - job.scheduledTask?.stop(); + await job.scheduledTask?.stop(); } }, getJobRegistry() { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 65eee37d4..1f6a013f0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -996,8 +996,8 @@ importers: specifier: workspace:^0.1.0 version: link:../common node-cron: - specifier: ^3.0.3 - version: 3.0.3 + specifier: ^4.0.7 + version: 4.0.7 devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -8100,8 +8100,8 @@ packages: resolution: {integrity: sha512-8VOpLHFrOQlAH+qA0ZzuGRlALRA6/LVh8QJldbrC4DY0hXoMP0l4Acq8TzFC018HztWiRqyCEj2aTWY2UvnJUg==} engines: {node: ^18 || ^20 || >= 21} - node-cron@3.0.3: - resolution: {integrity: sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==} + node-cron@4.0.7: + resolution: {integrity: sha512-A37UUDpxRT/kWanELr/oMayCWQFk9Zx9BEUoXrAKuKwKzH4XuAX+vMixMBPkgZBkADgJwXv91w5cMRTNSVP/mA==} engines: {node: '>=6.0.0'} node-domexception@1.0.0: @@ -17209,9 +17209,7 @@ snapshots: node-addon-api@8.3.0: {} - node-cron@3.0.3: - dependencies: - uuid: 8.3.2 + node-cron@4.0.7: {} node-domexception@1.0.0: {}