UNPKG

@freemework/hosting

Version:

Hosting library of the Freemework Project.

28 lines (27 loc) 1.96 kB
import { FConfiguration, FExecutionContext, FDisposable } from "@freemework/common"; export declare function flauncher(runtimeFactory: FConfiglessRuntimeFactory): void; /** * Launch an application using `defaultConfigurationLoader` * @param configurationParser User's function that provides configuration parser * @param runtimeFactory User's function that compose and start runtime */ export declare function flauncher<TConfiguration>(configurationParser: ConfigurationParser<TConfiguration>, runtimeFactory: FLauncherRuntimeFactory<TConfiguration>): void; /** * Launch an application * @param configurationLoader User's function that provides configuration loader * @param configurationParser User's function that provides configuration parser * @param runtimeFactory User's function that compose and start runtime */ export declare function flauncher<TConfiguration>(configurationLoader: RawConfigurationLoader, configurationParser: ConfigurationParser<TConfiguration>, runtimeFactory: FLauncherRuntimeFactory<TConfiguration>): void; export type RawConfigurationLoader = (executionContext: FExecutionContext) => Promise<FConfiguration>; export type ConfigurationParser<TConfiguration> = (rawConfiguration: FConfiguration) => TConfiguration; export type FLauncherRuntimeFactory<TConfiguration> = (executionContext: FExecutionContext, configuration: TConfiguration) => Promise<FDisposable>; export type FConfiglessRuntimeFactory = (executionContext: FExecutionContext) => Promise<FDisposable>; export declare function defaultConfigurationLoader(_executionContext: FExecutionContext): Promise<FConfiguration>; export declare namespace defaultConfigurationLoader { const CONFIG_ENV_ARG = "--config-env"; const CONFIG_FILE_ARG = "--config-file="; const CONFIG_TOML_FILE_ARG = "--config-toml-file="; const CONFIG_SECRET_DIR_ARG = "--config-secrets-dir="; } export declare function registerShutdownHook(cb: () => Promise<void>): void;