1 |
|
2 | import type { AsyncLocalStorage } from 'async_hooks';
|
3 | export declare type JsonValue = JsonObject | JsonValue[] | boolean | number | string | null;
|
4 | export declare type JsonObject = {
|
5 | [k: string]: JsonValue;
|
6 | };
|
7 | export declare type LogWriter = (message: string) => void;
|
8 | export declare type MessageContext<T = {}> = JsonObject & T;
|
9 | export declare type TopLevelAsyncLocalContext = {
|
10 | messageContext: MessageContext;
|
11 | transforms: ReadonlyArray<TransformMessageFunction<MessageContext>>;
|
12 | };
|
13 | export declare type NestedAsyncLocalContext = TopLevelAsyncLocalContext & {
|
14 | sequence: number;
|
15 | sequenceRoot: string;
|
16 | };
|
17 | export declare type AsyncLocalContext = NestedAsyncLocalContext | TopLevelAsyncLocalContext;
|
18 | export declare type MessageSerializer = (message: Message<MessageContext>) => string;
|
19 | export declare type RoarrGlobalState = {
|
20 | asyncLocalStorage?: AsyncLocalStorage<AsyncLocalContext>;
|
21 | sequence: number;
|
22 | serializeMessage?: MessageSerializer;
|
23 | versions: readonly string[];
|
24 | write: LogWriter;
|
25 | };
|
26 | export declare type SprintfArgument = boolean | number | string | null;
|
27 | export declare type Message<T = MessageContext> = {
|
28 | readonly context: T;
|
29 | readonly message: string;
|
30 | readonly sequence: string;
|
31 | readonly time: number;
|
32 | readonly version: string;
|
33 | };
|
34 | export declare type TransformMessageFunction<T> = (message: Message<T>) => Message<MessageContext>;
|
35 | export declare type LogMethod<Z> = {
|
36 | <T extends string = string>(context: Z, message: T, c?: T extends `${string}%${string}` ? SprintfArgument : never, d?: SprintfArgument, e?: SprintfArgument, f?: SprintfArgument, g?: SprintfArgument, h?: SprintfArgument, i?: SprintfArgument, j?: SprintfArgument): void;
|
37 | <T extends string = string>(message: T, b?: T extends `${string}%${string}` ? SprintfArgument : never, c?: SprintfArgument, d?: SprintfArgument, e?: SprintfArgument, f?: SprintfArgument, g?: SprintfArgument, h?: SprintfArgument, i?: SprintfArgument, j?: SprintfArgument): void;
|
38 | };
|
39 | declare type Child<Z> = {
|
40 | <T = Z>(context: TransformMessageFunction<MessageContext<T>>): Logger<T | Z>;
|
41 | (context: MessageContext): Logger<Z>;
|
42 | };
|
43 | export declare type Logger<Z = MessageContext> = LogMethod<Z> & {
|
44 | adopt: <T>(routine: () => T, context?: MessageContext | TransformMessageFunction<MessageContext>) => Promise<T>;
|
45 | child: Child<Z>;
|
46 | debug: LogMethod<Z>;
|
47 | error: LogMethod<Z>;
|
48 | fatal: LogMethod<Z>;
|
49 | getContext: () => MessageContext;
|
50 | info: LogMethod<Z>;
|
51 | trace: LogMethod<Z>;
|
52 | warn: LogMethod<Z>;
|
53 | };
|
54 | export declare type MessageEventHandler = (message: Message<MessageContext>) => void;
|
55 | export declare type LogLevelName = 'trace' | 'debug' | 'info' | 'error' | 'fatal' | 'warn';
|
56 | export {};
|