@cron-zen/core
v0.2.5
Published
Framework-agnostic Quartz/cron.ren Cron parser, generator, validator, describe, and next-run estimates
Downloads
2,083
Maintainers
Readme
@cron-zen/core
cron-zen 核心逻辑层:Cron 表达式解析、生成与校验。无框架依赖——原生 JS、Node、非 Vue 前端都应优先用本包。
需要可视化时另装 vanilla / react / vue2 / vue3(不能用 UI 包替代 core)。
完整函数说明(参数 / 返回 / 示例) → 文档 · API · core
在线引擎沙箱 → examples/core.html
选包:选哪个包
Install
npm install @cron-zen/core
# or
pnpm add @cron-zen/coreAPI (当前)
parseCron(expression: string): ParseResult
解析 5 / 6 / 7 段 Cron 表达式为可视化状态。
import { parseCron } from '@cron-zen/core';
const res = parseCron('0 0 2 * * ? *');
if (res.success) {
console.log(res.state);
} else {
console.error(res.error);
}validateCronState(state): ValidateResult
校验范围、日周互斥、非法日期(如 2 月 31 日)。
import { validateCronState, createDefaultCronState } from '@cron-zen/core';
const res = validateCronState(createDefaultCronState());
console.log(res.valid, res.errors, res.warnings);generateCron(state, options?): GenerateResult
由可视化状态生成 7 段表达式(默认自动日周互斥)。
import { generateCron, createDefaultCronState } from '@cron-zen/core';
const res = generateCron(createDefaultCronState());
// { success: true, expression: '* * * * * ? *' }getNextRuns / getPrevRuns
估算最近 N 次触发(未来)与已触发(新→旧)。已覆盖日 L / LW / nW、周 nL / n#m / 裸 L,以及倒序区间回绕。
import { getNextRuns, getPrevRuns, parseCron, formatRunTime } from '@cron-zen/core';
const { state } = parseCron('0 0 9 ? * 6#3');
const from = new Date('2026-01-01');
console.log(getNextRuns(state!, 3, from).map(formatRunTime));
console.log(getPrevRuns(state!, 3, from).map(formatRunTime));getCronPresets / listCronPresetDefs
常用模板(每分钟 / 工作日 9 点 / 月末…);getCronPresets(locale) 带中英标签。
其他导出
parseField/stringifyField— 单字段解析 / 序列化escapeCronPercent/unescapeCronPercent—%转义enforceDayWeekMutex/assertDayWeekMutex— 日周互斥describeCron/formatRunTime/getUiMessages— 自然语言与 UI 文案lastDayOfMonth/lastWeekdayOfMonth/nearestWeekdayOfMonth— 日日历lastQuartzWeekdayOfMonth/nthQuartzWeekdayOfMonth— 周日历(nL / #)QUARTZ_MONTH_LABELS/quartzMonthLabel— 月标签getCronTabs— UI Tab 元数据createDefaultCronState— 默认 UI 状态generateCronOrThrow— 生成失败时抛错
Build
pnpm --filter @cron-zen/core build产物:dist/(ESM / CJS + .d.ts),仅 dist 会随 npm 包发布。
License
MIT
