feat(cron): refactor cron utility with validation and metadata
- Add input validation for name, schedule expression, and handler - Store full CronEntry metadata (handler, schedule, timezone, registeredAt) instead of raw job instance to support introspection - Add JSDoc typedefs for CronEntry and improve all function docs - Use globalThis symbol store to survive Next.js hot-reload - Remove verbose per-run info logs to reduce noise - Replace `||` with `??` for runOnInit default to handle falsy correctly - Fix stop/stopAll to access `entry.job` from new storage structure
This commit is contained in:
+2
-1
@@ -15,6 +15,7 @@ export default defineConfig([
|
||||
'src/features/admin/components/index.js',
|
||||
'src/core/api/index.js',
|
||||
'src/core/api/route-handler.js',
|
||||
'src/core/cron/index.js',
|
||||
'src/core/database/index.js',
|
||||
'src/cli/database.js',
|
||||
'src/core/email/index.js',
|
||||
@@ -41,7 +42,7 @@ export default defineConfig([
|
||||
splitting: false,
|
||||
sourcemap: false,
|
||||
clean: true,
|
||||
external: ['react', 'react-dom', 'next', 'pg', 'dotenv', 'dotenv/config', 'resend', '@react-email/components', 'node-cron', 'readline', 'crypto', 'url', 'fs', 'path', 'net', 'dns', 'tls', '@zen/core/api', '@zen/core/database', '@zen/core/email', '@zen/core/email/templates', '@zen/core/storage', '@zen/core/toast', '@zen/core/modules/actions', '@zen/core/modules/storage', '@aws-sdk/client-s3', '@aws-sdk/s3-request-presigner'],
|
||||
external: ['react', 'react-dom', 'next', 'pg', 'dotenv', 'dotenv/config', 'resend', '@react-email/components', 'node-cron', 'readline', 'crypto', 'url', 'fs', 'path', 'net', 'dns', 'tls', '@zen/core/api', '@zen/core/cron', '@zen/core/database', '@zen/core/email', '@zen/core/email/templates', '@zen/core/storage', '@zen/core/toast', '@zen/core/modules/actions', '@zen/core/modules/storage', '@aws-sdk/client-s3', '@aws-sdk/s3-request-presigner'],
|
||||
noExternal: [],
|
||||
bundle: true,
|
||||
banner: {
|
||||
|
||||
Reference in New Issue
Block a user