diff --git a/packages/job-manager/lib/JobManager.js b/packages/job-manager/lib/JobManager.js index 79e0c85e1..988e4017d 100644 --- a/packages/job-manager/lib/JobManager.js +++ b/packages/job-manager/lib/JobManager.js @@ -4,7 +4,6 @@ const setTimeoutPromise = util.promisify(setTimeout); const fastq = require('fastq'); const later = require('@breejs/later'); const Bree = require('bree'); -const pWaitFor = require('p-wait-for'); const {UnhandledJobError, IncorrectUsageError} = require('@tryghost/errors'); const logging = require('@tryghost/logging'); const isCronExpression = require('./is-cron-expression'); @@ -407,7 +406,7 @@ class JobManager { } /** - * @param {import('p-wait-for').Options} [options] + * @param {object} [options] */ async shutdown(options) { await this.bree.stop(); @@ -418,6 +417,7 @@ class JobManager { logging.warn('Waiting for busy job in inline job queue'); + const {default: pWaitFor} = await import('p-wait-for'); await pWaitFor(() => this.inlineQueue.idle() === true, options); logging.warn('Inline job queue finished'); diff --git a/packages/job-manager/package.json b/packages/job-manager/package.json index 091b38b70..0ac9fdeee 100644 --- a/packages/job-manager/package.json +++ b/packages/job-manager/package.json @@ -35,7 +35,7 @@ "bree": "9.2.9", "cron-validate": "1.5.3", "fastq": "1.20.1", - "p-wait-for": "3.2.0", + "p-wait-for": "6.0.0", "workerpool": "10.0.1" }, "repository": { diff --git a/packages/job-manager/test/examples/graceful-shutdown.js b/packages/job-manager/test/examples/graceful-shutdown.js index 14d9ef789..dd479cae9 100644 --- a/packages/job-manager/test/examples/graceful-shutdown.js +++ b/packages/job-manager/test/examples/graceful-shutdown.js @@ -1,6 +1,5 @@ /* eslint-disable no-console */ -const pWaitFor = require('p-wait-for'); const path = require('path'); const setTimeoutPromise = require('util').promisify(setTimeout); const JobManager = require('../../lib/job-manager'); @@ -29,6 +28,7 @@ async function shutdown(signal) { await setTimeoutPromise(100); // allow job to get scheduled + const {default: pWaitFor} = await import('p-wait-for'); await pWaitFor(() => (Object.keys(jobManager.bree.workers).length === 0) && (Object.keys(jobManager.bree.intervals).length === 0)); process.exit(0); diff --git a/packages/job-manager/test/examples/scheduled-one-off.js b/packages/job-manager/test/examples/scheduled-one-off.js index b2ef2d408..ae10fac15 100644 --- a/packages/job-manager/test/examples/scheduled-one-off.js +++ b/packages/job-manager/test/examples/scheduled-one-off.js @@ -1,5 +1,4 @@ const path = require('path'); -const pWaitFor = require('p-wait-for'); const addSeconds = require('date-fns/addSeconds'); const JobManager = require('../../lib/job-manager'); @@ -23,6 +22,7 @@ const isJobQueueEmpty = (bree) => { name: 'one-off-scheduled-job' }); + const {default: pWaitFor} = await import('p-wait-for'); await pWaitFor(() => (isJobQueueEmpty(jobManager.bree))); process.exit(0); diff --git a/packages/webhook-mock-receiver/lib/WebhookMockReceiver.js b/packages/webhook-mock-receiver/lib/WebhookMockReceiver.js index 83c485176..9e2e6d8e1 100644 --- a/packages/webhook-mock-receiver/lib/WebhookMockReceiver.js +++ b/packages/webhook-mock-receiver/lib/WebhookMockReceiver.js @@ -1,8 +1,6 @@ const {AssertionError} = require('assert'); const {URL} = require('url'); const nock = require('nock'); -const pWaitFor = require('p-wait-for'); - class WebhookMockReceiver { constructor({snapshotManager}) { this.body; @@ -19,6 +17,7 @@ class WebhookMockReceiver { async receivedRequest() { // @NOTE: figure out a better waiting mechanism here, don't allow it to hang forever + const {default: pWaitFor} = await import('p-wait-for'); await pWaitFor(() => this._receiver.isDone()); } diff --git a/packages/webhook-mock-receiver/package.json b/packages/webhook-mock-receiver/package.json index 0f8d2d79b..e12f6129f 100644 --- a/packages/webhook-mock-receiver/package.json +++ b/packages/webhook-mock-receiver/package.json @@ -31,6 +31,6 @@ "sinon": "21.0.1" }, "dependencies": { - "p-wait-for": "3.2.0" + "p-wait-for": "6.0.0" } } diff --git a/yarn.lock b/yarn.lock index 6d80c2bd7..b8410aeaf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8111,13 +8111,18 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -p-wait-for@3, p-wait-for@3.2.0: +p-wait-for@3: version "3.2.0" resolved "https://registry.yarnpkg.com/p-wait-for/-/p-wait-for-3.2.0.tgz#640429bcabf3b0dd9f492c31539c5718cb6a3f1f" integrity sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA== dependencies: p-timeout "^3.0.0" +p-wait-for@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-wait-for/-/p-wait-for-6.0.0.tgz#c31fdf0a40e2154968a26abc835688d1226dcaa3" + integrity sha512-2kKzMtjS8TVcpCOU/gr3vZ4K/WIyS1AsEFXFWapM/0lERCdyTbB6ZeuCIp+cL1aeLZfQoMdZFCBTHiK4I9UtOw== + package-json-from-dist@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505"