feat:Deamons need over time after start

This commit is contained in:
BluJ
2023-04-27 11:41:18 -06:00
parent 1d4d076070
commit c1226cf2b4
5 changed files with 23 additions and 16 deletions

View File

@@ -1,4 +1,4 @@
import { HealthReceipt, ReadyProof } from "../health"
import { HealthReceipt, ReadyProof, TriggerInput } from "../health"
import { CheckResult } from "../health/checkFns"
import { Trigger } from "../health/trigger"
import { defaultTrigger } from "../health/trigger/defaultTrigger"
@@ -82,21 +82,26 @@ export class Daemons<Ids extends string | never> {
const { command } = daemon
const child = effects.runDaemon(command)
let currentInput = {}
let currentInput: TriggerInput = {}
const getCurrentInput = () => currentInput
const trigger = (daemon.ready.trigger ?? defaultTrigger)(
getCurrentInput,
)
for (
let res = await trigger.next();
!res.done;
res = await trigger.next()
) {
const response = await daemon.ready.fn()
if (response.status === "passing") {
return child
return new Promise(async (resolve) => {
for (
let res = await trigger.next();
!res.done;
res = await trigger.next()
) {
const response = await daemon.ready.fn()
currentInput.lastResult = response.status || null
if (!currentInput.hadSuccess && response.status === "passing") {
currentInput.hadSuccess = true
resolve(child)
}
}
}
resolve(child)
})
return child
})
}