@node-in-layers/core
Version:
The core library for the Node In Layers rapid web development framework.
526 lines (525 loc) • 26.5 kB
TypeScript
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, };