@lou.codes/cron
Version:
⏲️ Cron Quartz and Cron UNIX expression parser
20 lines (19 loc) • 609 B
JavaScript
import { keys } from "@lou.codes/constants/Object.js";
import { build, or } from "functional-expression";
import { normalizeMap } from "./normalizeMap.js";
/**
* Normalizes day and month 3 letter aliases into their number counterparts.
*
* @category Cron String
* @example
* ```typescript
* normalizeAliases("* * 13 oct fri"); // "* * 13 10 5"
* ```
* @param expression String expression.
* @returns Normalized expression
*/
export const normalizeAliases = expression =>
expression.replaceAll(
build("giu")(or(...keys(normalizeMap))),
alias => `${normalizeMap[alias.toLocaleLowerCase()]}`,
);