const { registerBackgroundTaskHandlers } = require('./background-task-handlers'); const { registerBackgroundTaskScheduling } = require('./background-task-scheduling'); function createBackgroundTaskSetup(options) { const pool = options && options.pool; const common = options && options.common; const backgroundTaskQueue = options && options.backgroundTaskQueue; const collectUploadPathsFromDirectory = options && options.collectUploadPathsFromDirectory; const removeUnusedUploadFiles = options && options.removeUnusedUploadFiles; const refreshApiSource = options && options.refreshApiSource; const refreshRssFeed = options && options.refreshRssFeed; const uploadsDir = String(options && options.uploadsDir || '').trim(); const dataSourceStartupRefreshStaggerMs = Math.max(100, Number(options && options.dataSourceStartupRefreshStaggerMs || 250)); if (!pool || !common || !backgroundTaskQueue || !collectUploadPathsFromDirectory || !removeUnusedUploadFiles || !refreshApiSource || !refreshRssFeed || !uploadsDir) { throw new Error('createBackgroundTaskSetup requires the background task dependencies.'); } async function initialize() { registerBackgroundTaskHandlers(options); const backgroundTaskScheduling = registerBackgroundTaskScheduling(options); if (backgroundTaskScheduling && typeof backgroundTaskScheduling.initialize === 'function') { await backgroundTaskScheduling.initialize(); } } return { initialize: initialize }; } module.exports = { createBackgroundTaskSetup };