From cf12697f22a0849a99e686ca6051dd39544c9915 Mon Sep 17 00:00:00 2001 From: BluJ Date: Tue, 11 Apr 2023 17:07:27 -0600 Subject: [PATCH] wip: Add in the start of a health check --- lib/health/HealthCheck.ts | 55 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 lib/health/HealthCheck.ts diff --git a/lib/health/HealthCheck.ts b/lib/health/HealthCheck.ts new file mode 100644 index 0000000..6540798 --- /dev/null +++ b/lib/health/HealthCheck.ts @@ -0,0 +1,55 @@ +// import { InterfaceReceipt } from "../mainFn/interfaceReceipt"; +// import { Daemon, Effects } from "../types"; +// import { CheckResult } from "./checkFns/CheckResult"; +// import { ReadyReceipt } from "./ReadyProof"; +// import { HealthReceipt } from "./HealthReceipt"; +// import { Trigger } from "./trigger"; +// import { TriggerInput } from "./trigger/TriggerInput"; +// import { defaultTrigger } from "./trigger/defaultTrigger"; + +// function readReciptOf(a: A) { +// return a as A & ReadyReceipt; +// } +// export function readyCheck(o: { +// effects: Effects; +// started(onTerm: () => void): null; +// interfaceReceipt: InterfaceReceipt; +// healthReceipts: Iterable; +// daemonReceipt: Daemon; +// name: string; +// trigger?: Trigger; +// fn(): Promise | CheckResult; +// onFirstSuccess?: () => () => Promise | unknown; +// }) { +// new Promise(async () => { +// const trigger = (o.trigger ?? defaultTrigger)(); +// let currentValue: TriggerInput = { +// lastResult: null, +// hadSuccess: false, +// }; +// for ( +// let res = await trigger.next(currentValue); +// !res.done; +// res = await trigger.next(currentValue) +// ) { +// try { +// const { status, message } = await o.fn(); +// if (!currentValue.hadSuccess) { +// await o.started(o?.onFirstSuccess ?? (() => o.daemonReceipt.term())); +// } +// await o.effects.setHealth({ +// name: o.name, +// status, +// message, +// }); +// currentValue.hadSuccess = true; +// currentValue.lastResult = "success"; +// } catch (_) { +// currentValue.lastResult = "failure"; +// } +// } +// }); +// return readReciptOf({ +// daemon: o.daemonReceipt, +// }); +// }