@lou.codes/cron
Version:
⏲️ Cron Quartz and Cron UNIX expression parser
26 lines (25 loc) • 734 B
JavaScript
import { isAllToken } from "./isAllToken.js";
import { stringifyList } from "./stringifyList.js";
import { stringifyRange } from "./stringifyRange.js";
/**
* Takes a cron object and returns a string expression.
*
* @category Cron Object
* @example
* ```typescript
* stringifyField("*"); // "*"
* stringifyField(13); // "13"
* stringifyField([10, 11, 13]); // "10,11,13"
* stringifyField({ from: 1, to: 10 }); // "1-10"
* ```
* @see {@link isAllToken}
* @see {@link stringifyList}
* @see {@link stringifyRange}
*
* @param field Cron object field.
* @returns Cron string field.
*/
export const stringifyField = field =>
isAllToken(field) ? field : (
(stringifyList(field) ?? stringifyRange(field) ?? `${field}`)
);