diff --git a/lib/mainFn/Daemons.ts b/lib/mainFn/Daemons.ts index 450dd1a..ddce377 100644 --- a/lib/mainFn/Daemons.ts +++ b/lib/mainFn/Daemons.ts @@ -13,9 +13,10 @@ type Daemon = { fn: () => Promise | CheckResult trigger?: Trigger } - requires?: Exclude[] + requires: Exclude[] } +type ErrorDuplicateId = `The id "${Id}" is already used` /** * Used during the main of a function, it allows us to describe and ensure a set of daemons are running. * With the dependency, we are using this like an init system, where we can ensure that a daemon is running @@ -56,7 +57,12 @@ export class Daemons { return new Daemons(config.effects, config.started) } addDaemon( - id: "" extends Id ? never : Id extends Ids ? never : Id, + // prettier-ignore + id: + "" extends Id ? never : + ErrorDuplicateId extends Id ? never : + Id extends Ids ? ErrorDuplicateId : + Id, newDaemon: Omit, "id">, ) { const daemons = ((this?.daemons ?? []) as any[]).concat({ @@ -98,7 +104,6 @@ export class Daemons { } resolve(child) }) - return child }) } return {