mirror of
https://github.com/Start9Labs/start-sdk.git
synced 2026-03-26 02:11:56 +00:00
chore: Update health check
This commit is contained in:
@@ -5,13 +5,14 @@ import { HealthReceipt } from "./HealthReceipt"
|
||||
import { Trigger } from "./trigger"
|
||||
import { TriggerInput } from "./trigger/TriggerInput"
|
||||
import { defaultTrigger } from "./trigger/defaultTrigger"
|
||||
import { once } from "../util/once"
|
||||
|
||||
export function healthCheck(o: {
|
||||
effects: Effects
|
||||
name: string
|
||||
trigger?: Trigger
|
||||
fn(): Promise<CheckResult> | CheckResult
|
||||
onFirstSuccess?: () => () => Promise<unknown> | unknown
|
||||
onFirstSuccess?: () => unknown | Promise<unknown>
|
||||
}) {
|
||||
new Promise(async () => {
|
||||
let currentValue: TriggerInput = {
|
||||
@@ -19,6 +20,13 @@ export function healthCheck(o: {
|
||||
}
|
||||
const getCurrentValue = () => currentValue
|
||||
const trigger = (o.trigger ?? defaultTrigger)(getCurrentValue)
|
||||
const triggerFirstSuccess = once(() =>
|
||||
Promise.resolve(
|
||||
"onFirstSuccess" in o && o.onFirstSuccess
|
||||
? o.onFirstSuccess()
|
||||
: undefined,
|
||||
),
|
||||
)
|
||||
for (
|
||||
let res = await trigger.next();
|
||||
!res.done;
|
||||
@@ -33,6 +41,9 @@ export function healthCheck(o: {
|
||||
})
|
||||
currentValue.hadSuccess = true
|
||||
currentValue.lastResult = "passing"
|
||||
await triggerFirstSuccess().catch((err) => {
|
||||
console.error(err)
|
||||
})
|
||||
} catch (_) {
|
||||
currentValue.lastResult = "failing"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user