UNPKG

@node-in-layers/core

Version:

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

526 lines (525 loc) 26.5 kB
import { CommonContext, LogFormat, LogLevelNames, LogMessage, LogMethod, RootLogger, MaybePromise } from '../types.js'; /** * A simple LogFunction that provides datetime: message * @param logMessage */ declare const consoleLogSimple: (logMessage: LogMessage) => void; /** * A simple LogFunction that logs more data as a single string. * @param logMessage */ declare const consoleLogFull: (logMessage: LogMessage) => any; /** * A simple LogFunction that logs a message as a json object. * @param logMessage */ declare const consoleLogJson: (logMessage: LogMessage) => void; /** * A LogMethod that creates a TCP call using a LogMessage object as the body. * tcpLoggingOptions must be set in the configuration file. * @param context */ declare const logTcp: (context: CommonContext) => (logMessage: LogMessage) => any; /** * The standard RootLogger for the core library. */ declare const standardLogger: <TConfig extends Readonly<{ systemName: string; environment: string; "@node-in-layers/core": Readonly<{ logging: { logLevel: LogLevelNames; logFormat: LogFormat | readonly 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) => 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) => MaybePromise<object>; }> | undefined; features?: Readonly<{ create: (context: any) => 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: LogLevelNames; logFormat: LogFormat | readonly 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) => 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) => MaybePromise<object>; }> | undefined; features?: Readonly<{ create: (context: any) => 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<{ getLogger: (context: Readonly<{ config: TConfig; rootLogger: Readonly<{ getLogger: (context: Readonly<{ config: Readonly<{ systemName: string; environment: string; "@node-in-layers/core": Readonly<{ logging: { logLevel: LogLevelNames; logFormat: LogFormat | readonly 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) => 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) => MaybePromise<object>; }> | undefined; features?: Readonly<{ create: (context: any) => 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<{ 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; }; }>, props?: { ids?: readonly Readonly<Record<string, string>>[] | undefined; data?: Record<string, any> | undefined; } | undefined) => import("../types.js").HighLevelLogger; }>; /** * A useful RootLogger that can combine multiple logging methods together. Useful as the best of custom RootLoggers * because this provides everything, except the actual function that does the logging. * @param logMethods - A list of log methods. */ declare const compositeLogger: <TConfig extends Readonly<{ systemName: string; environment: string; "@node-in-layers/core": Readonly<{ logging: { logLevel: LogLevelNames; logFormat: LogFormat | readonly 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) => 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) => MaybePromise<object>; }> | undefined; features?: Readonly<{ create: (context: any) => 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: LogLevelNames; logFormat: LogFormat | readonly 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) => 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) => MaybePromise<object>; }> | undefined; features?: Readonly<{ create: (context: any) => 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; }>; }>>(logMethods: readonly LogMethod<TConfig>[]) => Readonly<{ getLogger: (context: Readonly<{ config: TConfig; rootLogger: Readonly<{ getLogger: (context: Readonly<{ config: Readonly<{ systemName: string; environment: string; "@node-in-layers/core": Readonly<{ logging: { logLevel: LogLevelNames; logFormat: LogFormat | readonly 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) => 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) => MaybePromise<object>; }> | undefined; features?: Readonly<{ create: (context: any) => 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<{ 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; }; }>, props?: { ids?: readonly Readonly<Record<string, string>>[] | undefined; data?: Record<string, any> | undefined; } | undefined) => import("../types.js").HighLevelLogger; }>; export { standardLogger, consoleLogSimple, consoleLogJson, consoleLogFull, compositeLogger, logTcp, };