mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 04:01:58 +00:00
* fix: race condition in Daemon.stop() * fix: do not stop Daemon on context leave * fix: remove duplicate Daemons.term calls * feat: honor dependency order when shutting terminating Daemons * fixes, and remove started --------- Co-authored-by: Aiden McClelland <me@drbonez.dev>
25 lines
791 B
TypeScript
25 lines
791 B
TypeScript
import * as T from "../../../base/lib/types"
|
|
import { Daemons } from "./Daemons"
|
|
import "../../../base/lib/interfaces/ServiceInterfaceBuilder"
|
|
import "../../../base/lib/interfaces/Origin"
|
|
|
|
export const DEFAULT_SIGTERM_TIMEOUT = 60_000
|
|
/**
|
|
* Used to ensure that the main function is running with the valid proofs.
|
|
* We first do the folowing order of things
|
|
* 1. We get the interfaces
|
|
* 2. We setup all the commands to setup the system
|
|
* 3. We create the health checks
|
|
* 4. We setup the daemons init system
|
|
* @param fn
|
|
* @returns
|
|
*/
|
|
export const setupMain = <Manifest extends T.SDKManifest>(
|
|
fn: (o: { effects: T.Effects }) => Promise<Daemons<Manifest, any>>,
|
|
): T.ExpectedExports.main => {
|
|
return async (options) => {
|
|
const result = await fn(options)
|
|
return result
|
|
}
|
|
}
|