UNPKG

@node-in-layers/core

Version:

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

554 lines (553 loc) 32 kB
import { Config, RootLogger, App, CommonContext, CoreNamespace, FeaturesContext } from '../types.js'; declare const name = CoreNamespace.globals; type GlobalsServicesProps = Readonly<{ environment: string; workingDirectory: string; runtimeId?: string; }>; type GlobalsServices<TConfig extends Config> = Readonly<{ loadConfig: () => Promise<TConfig>; getRootLogger: () => RootLogger; getConstants: () => { runtimeId: string; workingDirectory: string; environment: string; }; getGlobals: (commonGlobals: CommonContext<TConfig>, app: App) => Promise<Record<string, any>>; }>; type GlobalsFeatures<TConfig extends Config> = Readonly<{ loadGlobals: <TGlobals extends Record<string, any> = object>(environmentOrConfig: string | TConfig) => Promise<CommonContext<TConfig> & TGlobals>; }>; type GlobalServicesLayer = Readonly<{ services: { [CoreNamespace.globals]: GlobalsServices<Config>; }; }>; declare const services: { create: <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; description?: string | undefined; 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<{ context: Readonly<{ config: Readonly<any>; rootLogger: Readonly<{ getLogger: (context: Readonly<any>, 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; }; }>; 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; }>; }>>({ environment, workingDirectory, runtimeId, }: GlobalsServicesProps) => Readonly<{ loadConfig: () => Promise<TConfig>; getRootLogger: () => RootLogger; getConstants: () => { runtimeId: string; workingDirectory: string; environment: string; }; getGlobals: (commonGlobals: Readonly<{ config: TConfig; rootLogger: Readonly<{ getLogger: (context: Readonly<{ config: 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<any> | 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; description?: string | undefined; 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<any>; 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<{ context: Readonly<any>; 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; }>; }>; 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; }; }>, app: Readonly<{ name: string; description?: string | undefined; 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<{ 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<any>[]; modelFactory?: string | undefined; modelCruds?: boolean | undefined; customModelFactory?: { [x: string]: { [x: string]: string | [string, string] | [string, string, any[]]; }; } | undefined; }>; }>; rootLogger: Readonly<{ getLogger: (context: Readonly<{ config: 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<any> | 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<any>[]; modelFactory?: string | undefined; modelCruds?: boolean | undefined; customModelFactory?: { [x: string]: { [x: string]: string | [string, string] | [string, string, any[]]; }; } | undefined; }>; }>; 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<{ context: Readonly<{ config: 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<any>, 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<any>[]; modelFactory?: string | undefined; modelCruds?: boolean | undefined; customModelFactory?: { [x: string]: { [x: string]: string | [string, string] | [string, string, any[]]; }; } | undefined; }>; }>; rootLogger: Readonly<{ getLogger: (context: Readonly<any>, 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; }; }>; 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; }>) => Promise<Record<string, any>>; }>; }; declare const features: { create: <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; description?: string | undefined; 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<{ context: Readonly<{ config: Readonly<any>; rootLogger: Readonly<{ getLogger: (context: Readonly<any>, 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; }; }>; 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; }>; }>>(context: FeaturesContext<TConfig, Readonly<{ services: { [CoreNamespace.globals]: GlobalsServices<Config>; }; }>>) => Readonly<{ loadGlobals: <TGlobals extends Record<string, any> = object>(environmentOrConfig: string | TConfig) => Promise<Readonly<{ config: TConfig; rootLogger: Readonly<{ getLogger: (context: Readonly<{ config: 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<any> | 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; description?: string | undefined; 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<any>; 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<{ context: Readonly<any>; 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; }>; }>; 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; }; }> & TGlobals>; }>; }; export { services, features, name };