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