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