Skip to content

feat(dev): Cron Expression tool - #160

Merged
slaveofcode merged 1 commit into
developfrom
feat/cron-expression
Aug 4, 2026
Merged

feat(dev): Cron Expression tool#160
slaveofcode merged 1 commit into
developfrom
feat/cron-expression

Conversation

@slaveofcode

Copy link
Copy Markdown
Owner

Summary

  • 5-field cron expression parser, human-readable explainer, and next-run calculator — pure client-side, no new deps.
  • Live-updating input with per-field labels (Minute / Hour / Day / Month / Weekday), plain-English description, 13 presets, next-10-runs list.
  • 38 unit tests: parseField, parseCron, explainCron, matchesCron, nextRuns.
  • SEO content EN + ID.

Test plan

  • * * * * * → "Every minute"
  • 0 9 * * 1-5 → weekdays 09:00, correct next runs
  • */15 * * * * → "Every 15 minutes", runs 15 min apart
  • 0 0 1 1 * → "At 00:00, on the 1st of every month, in January"
  • Invalid expression shows error banner
  • Preset buttons populate the input
  • /id/tools/cron-expression renders in Indonesian

Adds a cron expression editor/explainer (like crontab.guru) to the Dev
category. Pure client-side, zero new dependencies.

- cron.lib.ts: 5-field parser, human-readable explainer, next-run calculator.
  Handles *, n, n-m, */n, a-b/n, a,b,c; normalises dow 7→0; DOM+DOW OR
  logic per unix cron spec.
- CronExplainer.tsx: live-updating expression input with per-field labels,
  plain-English description, 13 presets, next-10-runs list. EN + ID.
- 38 unit tests (parseField, parseCron, explainCron, matchesCron, nextRuns).
- SEO content (EN + ID) in tool-seo.ts.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013dqouzFP8vy9jaKhTDFj5H
@slaveofcode
slaveofcode merged commit 3fe2155 into develop Aug 4, 2026
1 of 2 checks passed
@slaveofcode
slaveofcode deleted the feat/cron-expression branch August 4, 2026 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant