Files
fusion/plugins/fusion-plugin-reports/src/cadence.ts
Fusion 76c113c2f2 feat(FN-3860): add cadence resolution seam (+7 more)
Commits merged:
- feat(FN-3860): complete Step 8 — documentation and delivery
- test(FN-3860): complete Step 7 — add scaffold seam coverage
- feat(FN-3860): complete Step 6 — re-export scaffold seams
- feat(FN-3860): complete Step 5 — add pipeline orchestrator seam
- feat(FN-3860): complete Step 4 — add in-memory runs store seam
- feat(FN-3860): complete Step 3 — add aggregation seam
- feat(FN-3860): complete Step 2 — add cadence resolution seam
- feat(FN-3846): short-circuit phantom merges for already-landed branches

Files changed:
.changeset/fn-3860-reports-scaffold-files.md       |  5 ++
 plugins/fusion-plugin-reports/README.md            |  9 +++
 .../src/__tests__/scaffold.test.ts                 | 60 +++++++++++++++++++
 plugins/fusion-plugin-reports/src/aggregation.ts   | 23 ++++++++
 plugins/fusion-plugin-reports/src/cadence.ts       | 23 ++++++++
 plugins/fusion-plugin-reports/src/index.ts         |  4 ++
 plugins/fusion-plugin-reports/src/pipeline.ts      | 58 ++++++++++++++++++
 plugins/fusion-plugin-reports/src/runs-store.ts    | 69 ++++++++++++++++++++++
 8 files changed, 251 insertions(+)

Fusion-Task-Id: FN-3860
2026-05-11 08:02:53 -07:00

24 lines
603 B
TypeScript

import { getDailyEnabled, getTimezone, getWeeklyEnabled } from "./settings.js";
export type ReportsCadence = "daily" | "weekly";
export interface CadenceResolution {
cadence: ReportsCadence;
timezone: string;
}
export function resolveEnabledCadences(settings: Record<string, unknown>): CadenceResolution[] {
const timezone = getTimezone(settings);
const enabled: CadenceResolution[] = [];
if (getDailyEnabled(settings)) {
enabled.push({ cadence: "daily", timezone });
}
if (getWeeklyEnabled(settings)) {
enabled.push({ cadence: "weekly", timezone });
}
return enabled;
}