diff --git a/lib/mainFn/Daemons.ts b/lib/mainFn/Daemons.ts index b47f7d3..450dd1a 100644 --- a/lib/mainFn/Daemons.ts +++ b/lib/mainFn/Daemons.ts @@ -4,12 +4,8 @@ import { Trigger } from "../health/trigger" import { defaultTrigger } from "../health/trigger/defaultTrigger" import { DaemonReturned, Effects, ValidIfNoStupidEscape } from "../types" import { InterfaceReceipt } from "./interfaceReceipt" -type Daemon< - Ids extends string | never, - Command extends string, - Id extends string, -> = { - id: Id +type Daemon = { + id: "" extends Id ? never : Id command: ValidIfNoStupidEscape | [string, ...string[]] ready: { @@ -18,7 +14,6 @@ type Daemon< trigger?: Trigger } requires?: Exclude[] - intervalTime?: number } /** @@ -45,7 +40,7 @@ Daemons.with({ .build() ``` */ -export class Daemons { +export class Daemons { private constructor( readonly effects: Effects, readonly started: (onTerm: () => void) => null, @@ -61,9 +56,13 @@ export class Daemons { return new Daemons(config.effects, config.started) } addDaemon( - newDaemon: Daemon, + id: "" extends Id ? never : Id extends Ids ? never : Id, + newDaemon: Omit, "id">, ) { - const daemons = ((this?.daemons ?? []) as any[]).concat(newDaemon) + const daemons = ((this?.daemons ?? []) as any[]).concat({ + ...newDaemon, + id, + }) return new Daemons(this.effects, this.started, daemons) }