UNPKG

@node-in-layers/core

Version:

The core library for the Node In Layers rapid web development framework.

177 lines (176 loc) 8.59 kB
/** * Loads a node in layers system. * 1. Reads the configuration (if not provided). * 2. Loads globals * 3. Loads all layers * @param args - The required arguments. */ declare const loadSystem: <TConfig extends Readonly<{ systemName: string; environment: string; "@node-in-layers/core": Readonly<{ logging: { logLevel: import("./types.js").LogLevelNames; logFormat: import("./types.js").LogFormat | readonly import("./types.js").LogFormat[]; maxLogSizeInCharacters?: number | undefined; tcpLoggingOptions?: Readonly<{ url: string; headers?: Record<string, string | object> | undefined; }> | undefined; customLogger?: Readonly<{ getLogger: (context: Readonly<{ config: Readonly<any>; rootLogger: Readonly<any>; constants: { environment: string; workingDirectory: string; runtimeId: string; }; }>, props?: { ids?: readonly Readonly<Record<string, string>>[] | undefined; data?: Record<string, any> | undefined; } | undefined) => import("./types.js").HighLevelLogger; }> | undefined; getFunctionWrapLogLevel?: ((layerName: string, functionName?: string | undefined) => import("./types.js").LogLevelNames) | undefined; ignoreLayerFunctions?: Record<string, boolean | Record<string, boolean | Record<string, boolean>>> | undefined; }; layerOrder: readonly import("./types.js").LayerDescription[]; apps: readonly Readonly<{ name: string; services?: Readonly<{ create: (context: any) => import("./types.js").MaybePromise<object>; }> | undefined; features?: Readonly<{ create: (context: any) => import("./types.js").MaybePromise<object>; }> | undefined; globals?: Readonly<{ create: (context: Readonly<{ config: Readonly<any>; rootLogger: Readonly<{ getLogger: (context: Readonly<{ config: Readonly<any>; rootLogger: Readonly<any>; constants: { environment: string; workingDirectory: string; runtimeId: string; }; }>, props?: { ids?: readonly Readonly<Record<string, string>>[] | undefined; data?: Record<string, any> | undefined; } | undefined) => import("./types.js").HighLevelLogger; }>; constants: { environment: string; workingDirectory: string; runtimeId: string; }; }>) => Promise<any>; }> | undefined; models?: Record<string, Readonly<{ create: <T extends Readonly<{ [s: string]: any; }>, TModelExtensions extends object = object, TModelInstanceExtensions extends object = object>(modelProps: Readonly<{ Model: import("functional-models/types.js").ModelFactory<object, object>; fetcher: import("functional-models/types.js").ModelInstanceFetcher<object, object>; getModel: <T_1 extends Readonly<{ [s: string]: any; }>>(namespace: string, modelName: string) => () => import("functional-models/types.js").ModelType<T_1, object, object>; }>) => import("functional-models/types.js").ModelType<T, TModelExtensions, TModelInstanceExtensions>; }>> | undefined; }>[]; modelFactory?: string | undefined; modelCruds?: boolean | undefined; customModelFactory?: { [x: string]: { [x: string]: string | [string, string] | [string, string, any[]]; }; } | undefined; }>; }> = Readonly<{ systemName: string; environment: string; "@node-in-layers/core": Readonly<{ logging: { logLevel: import("./types.js").LogLevelNames; logFormat: import("./types.js").LogFormat | readonly import("./types.js").LogFormat[]; maxLogSizeInCharacters?: number | undefined; tcpLoggingOptions?: Readonly<{ url: string; headers?: Record<string, string | object> | undefined; }> | undefined; customLogger?: Readonly<{ getLogger: (context: Readonly<{ config: Readonly<any>; rootLogger: Readonly<any>; constants: { environment: string; workingDirectory: string; runtimeId: string; }; }>, props?: { ids?: readonly Readonly<Record<string, string>>[] | undefined; data?: Record<string, any> | undefined; } | undefined) => import("./types.js").HighLevelLogger; }> | undefined; getFunctionWrapLogLevel?: ((layerName: string, functionName?: string | undefined) => import("./types.js").LogLevelNames) | undefined; ignoreLayerFunctions?: Record<string, boolean | Record<string, boolean | Record<string, boolean>>> | undefined; }; layerOrder: readonly import("./types.js").LayerDescription[]; apps: readonly Readonly<{ name: string; services?: Readonly<{ create: (context: any) => import("./types.js").MaybePromise<object>; }> | undefined; features?: Readonly<{ create: (context: any) => import("./types.js").MaybePromise<object>; }> | undefined; globals?: Readonly<{ create: (context: Readonly<{ config: Readonly<any>; rootLogger: Readonly<{ getLogger: (context: Readonly<{ config: Readonly<any>; rootLogger: Readonly<any>; constants: { environment: string; workingDirectory: string; runtimeId: string; }; }>, props?: { ids?: readonly Readonly<Record<string, string>>[] | undefined; data?: Record<string, any> | undefined; } | undefined) => import("./types.js").HighLevelLogger; }>; constants: { environment: string; workingDirectory: string; runtimeId: string; }; }>) => Promise<any>; }> | undefined; models?: Record<string, Readonly<{ create: <T extends Readonly<{ [s: string]: any; }>, TModelExtensions extends object = object, TModelInstanceExtensions extends object = object>(modelProps: Readonly<{ Model: import("functional-models/types.js").ModelFactory<object, object>; fetcher: import("functional-models/types.js").ModelInstanceFetcher<object, object>; getModel: <T_1 extends Readonly<{ [s: string]: any; }>>(namespace: string, modelName: string) => () => import("functional-models/types.js").ModelType<T_1, object, object>; }>) => import("functional-models/types.js").ModelType<T, TModelExtensions, TModelInstanceExtensions>; }>> | undefined; }>[]; modelFactory?: string | undefined; modelCruds?: boolean | undefined; customModelFactory?: { [x: string]: { [x: string]: string | [string, string] | [string, string, any[]]; }; } | undefined; }>; }>>(args: { environment: string; config?: TConfig | undefined; }) => Promise<Partial<import("./types.js").FeaturesContext>>; export { loadSystem };