MCPcopy Index your code
hub / github.com/Effect-TS/effect / cron

Function cron

packages/effect/src/internal/schedule.ts:480–515  ·  view source on GitHub ↗
(expression: string | Cron.Cron, tz?: DateTime.TimeZone | string)

Source from the content-addressed store, hash-verified

478 (expression: Cron.Cron): Schedule.Schedule<[number, number]>
479 (expression: string, tz?: DateTime.TimeZone | string): Schedule.Schedule<[number, number]>
480} = (expression: string | Cron.Cron, tz?: DateTime.TimeZone | string): Schedule.Schedule<[number, number]> => {
481 const parsed = Cron.isCron(expression) ? Either.right(expression) : Cron.parse(expression, tz)
482 return makeWithState<[boolean, [number, number, number]], unknown, [number, number]>(
483 [true, [Number.MIN_SAFE_INTEGER, 0, 0]],
484 (now, _, [initial, previous]) => {
485 if (now < previous[0]) {
486 return core.succeed([
487 [false, previous],
488 [previous[1], previous[2]],
489 ScheduleDecision.continueWith(Interval.make(previous[1], previous[2]))
490 ])
491 }
492
493 if (Either.isLeft(parsed)) {
494 return core.die(parsed.left)
495 }
496
497 const cron = parsed.right
498 const date = new Date(now)
499
500 let next: number
501 if (initial && Cron.match(cron, date)) {
502 next = now
503 }
504
505 next = Cron.next(cron, date).getTime()
506 const start = beginningOfSecond(next)
507 const end = endOfSecond(next)
508 return core.succeed([
509 [false, [next, start, end]],
510 [start, end],
511 ScheduleDecision.continueWith(Interval.make(start, end))
512 ])
513 }
514 )
515}
516
517/** @internal */
518export const dayOfMonth = (day: number): Schedule.Schedule<number> => {

Callers

nothing calls this directly

Calls 7

makeWithStateFunction · 0.85
beginningOfSecondFunction · 0.85
endOfSecondFunction · 0.85
parseMethod · 0.80
makeMethod · 0.65
dieMethod · 0.65
nextMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…