MCPcopy Create free account
hub / github.com/claude-code-best/claude-code / cronToHuman

Function cronToHuman

src/utils/cron.ts:224–314  ·  view source on GitHub ↗
(cron: string, opts?: { utc?: boolean })

Source from the content-addressed store, hash-verified

222}
223
224export function cronToHuman(cron: string, opts?: { utc?: boolean }): string {
225 const utc = opts?.utc ?? false
226 const parts = cron.trim().split(/\s+/)
227 if (parts.length !== 5) return cron
228
229 const [minute, hour, dayOfMonth, month, dayOfWeek] = parts as [
230 string,
231 string,
232 string,
233 string,
234 string,
235 ]
236
237 // Every N minutes: step/N * * * *
238 const everyMinMatch = minute.match(/^\*\/(\d+)$/)
239 if (
240 everyMinMatch &&
241 hour === '*' &&
242 dayOfMonth === '*' &&
243 month === '*' &&
244 dayOfWeek === '*'
245 ) {
246 const n = parseInt(everyMinMatch[1]!, 10)
247 return n === 1 ? 'Every minute' : `Every ${n} minutes`
248 }
249
250 // Every hour: 0 * * * *
251 if (
252 minute.match(/^\d+$/) &&
253 hour === '*' &&
254 dayOfMonth === '*' &&
255 month === '*' &&
256 dayOfWeek === '*'
257 ) {
258 const m = parseInt(minute, 10)
259 if (m === 0) return 'Every hour'
260 return `Every hour at :${m.toString().padStart(2, '0')}`
261 }
262
263 // Every N hours: 0 step/N * * *
264 const everyHourMatch = hour.match(/^\*\/(\d+)$/)
265 if (
266 minute.match(/^\d+$/) &&
267 everyHourMatch &&
268 dayOfMonth === '*' &&
269 month === '*' &&
270 dayOfWeek === '*'
271 ) {
272 const n = parseInt(everyHourMatch[1]!, 10)
273 const m = parseInt(minute, 10)
274 const suffix = m === 0 ? '' : ` at :${m.toString().padStart(2, '0')}`
275 return n === 1 ? `Every hour${suffix}` : `Every ${n} hours${suffix}`
276 }
277
278 // --- Remaining cases reference hour+minute: branch on utc ----------------
279
280 if (!minute.match(/^\d+$/) || !hour.match(/^\d+$/)) return cron
281 const m = parseInt(minute, 10)

Callers 9

cron.test.tsFile · 0.90
callFunction · 0.85
callFunction · 0.85
formatCronSectionFunction · 0.85
AgentRowFunction · 0.85
AgentsPlatformViewFunction · 0.85
TriggerRowFunction · 0.85
ScheduleViewFunction · 0.85

Calls 1

toStringMethod · 0.65

Tested by

no test coverage detected