appSchedules
uses tcmts.cli.roles.codebaseRoles, which uses tcmts.cli.roles.rolesIn, which uses tcmts.cli.roles.manifestsIn, which uses tcmts.cli.config.configValue, which uses node:path
An app's recurring jobs: the definitions beside it, in its namespace, whose value every(...) makes.
import type { Codebase } from "#codebase/tcmts/cli/codebase"; import { isSchedule } from "#codebase/tcmts/cli/pages"; import { codebaseRoles } from "#codebase/tcmts/cli/roles"; import type { NameRow } from "#codebase/tcmts/store"; export function appSchedules(cb: Codebase, app: string): NameRow[] { const roles = codebaseRoles(cb); const ns = app.includes(".") ? app.slice(0, app.lastIndexOf(".")) : ""; return cb.store .names() .filter( (n) => n.kind === "term" && (ns ? n.path.startsWith(`${ns}.`) && !n.path.slice(ns.length + 1).includes(".") : !n.path.includes(".")), ) .filter((n) => { const rec = cb.store.getDef(n.hash); return rec !== undefined && isSchedule(rec, roles); }); }
uses
- tcmts.cli.codebase.Codebase
- tcmts.cli.pages.isSchedule
- tcmts.cli.roles.codebaseRoles
- tcmts.store.NameRow