@freemework/hosting
Version:
Hosting library of the Freemework Project.
28 lines (27 loc) • 1.96 kB
TypeScript
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;