(routine: RoutineSummary)
| 299 | } |
| 300 | |
| 301 | function getRoutineSubtitle(routine: RoutineSummary): string { |
| 302 | const parts = [describeEnabled(routine.enabled)] |
| 303 | if (routine.cronExpression) { |
| 304 | parts.push(cronToHuman(routine.cronExpression, { utc: true })) |
| 305 | } |
| 306 | if (routine.nextRunAt) { |
| 307 | parts.push(`next ${formatTimestamp(routine.nextRunAt)}`) |
| 308 | } |
| 309 | return parts.join(' · ') |
| 310 | } |
| 311 | |
| 312 | function listDescription(routine: RoutineSummary): string { |
| 313 | const parts = [describeEnabled(routine.enabled)] |
no test coverage detected