diff --git a/consumer-prices-core/package.json b/consumer-prices-core/package.json index 63f971b44..9559ba516 100644 --- a/consumer-prices-core/package.json +++ b/consumer-prices-core/package.json @@ -8,7 +8,6 @@ "start": "node dist/api/server.js", "dev": "tsx watch src/api/server.ts", "jobs:scrape": "tsx src/jobs/scrape.ts", - "jobs:validate": "tsx src/jobs/validate.ts", "jobs:aggregate": "tsx src/jobs/aggregate.ts", "jobs:publish": "tsx src/jobs/publish.ts", "migrate": "tsx src/db/migrate.ts", diff --git a/consumer-prices-core/src/jobs/aggregate.ts b/consumer-prices-core/src/jobs/aggregate.ts index 37761f445..2f9d7c6a6 100644 --- a/consumer-prices-core/src/jobs/aggregate.ts +++ b/consumer-prices-core/src/jobs/aggregate.ts @@ -5,6 +5,7 @@ */ import { query, closePool } from '../db/client.js'; import { loadAllBasketConfigs } from '../config/loader.js'; +import { validateAll } from './validate.js'; const logger = { info: (msg: string, ...args: unknown[]) => console.log(`[aggregate] ${msg}`, ...args), @@ -275,6 +276,11 @@ export async function aggregateAll() { if (failed > 0) throw new Error(`${failed}/${configs.length} basket(s) failed`); } -if (import.meta.url === `file://${process.argv[1]}`) { - aggregateAll().finally(() => closePool()).catch(console.error); +export async function validateAndAggregateAll() { + await validateAll(); + await aggregateAll(); +} + +if (import.meta.url === `file://${process.argv[1]}`) { + validateAndAggregateAll().finally(() => closePool()).catch(console.error); }