1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
| // @flow
|
| /* eslint-disable import/exports-last, flowtype/require-types-at-top */
|
| export type SerializableValueType = string | number | boolean | null | {+[key: string]: SerializableValueType, ...} | $ReadOnlyArray<SerializableValueType>;
|
| export type SerializableObjectType = {
| +[key: string]: SerializableValueType,
| ...
| };
|
| export type WriterType = {|
| +write: (message: string) => void,
| |};
|
| export type RoarrGlobalStateType = {|
| sequence: number,
| versions: $ReadOnlyArray<string>,
| ...WriterType,
| |};
|
| export type SprintfArgumentType = string | number | boolean | null;
|
| // eslint-disable-next-line flowtype/no-weak-types
| export type MessageContextType = Object;
|
| export type MessageType = {|
| +context: MessageContextType,
| +message: string,
| +sequence: number,
| +time: number,
| +version: string,
| |};
|
| export type TranslateMessageFunctionType = (message: MessageType) => MessageType;
|
| declare function Logger (
| context: MessageContextType,
| message: string,
| c?: SprintfArgumentType,
| d?: SprintfArgumentType,
| e?: SprintfArgumentType,
| f?: SprintfArgumentType,
| g?: SprintfArgumentType,
| h?: SprintfArgumentType,
| i?: SprintfArgumentType,
| k?: SprintfArgumentType
| ): void;
|
| // eslint-disable-next-line no-redeclare
| declare function Logger (
| message: string,
| b?: SprintfArgumentType,
| c?: SprintfArgumentType,
| d?: SprintfArgumentType,
| e?: SprintfArgumentType,
| f?: SprintfArgumentType,
| g?: SprintfArgumentType,
| h?: SprintfArgumentType,
| i?: SprintfArgumentType,
| k?: SprintfArgumentType
| ): void;
|
| /**
| * see https://twitter.com/kuizinas/status/914139352908943360
| */
| export type LoggerType = {|
| // eslint-disable-next-line no-undef
| [[call]]: typeof Logger,
| +adopt: <T>(routine: () => Promise<T>, context: MessageContextType) => Promise<T>,
| +child: (context: TranslateMessageFunctionType | MessageContextType) => LoggerType,
| +debug: typeof Logger,
| +error: typeof Logger,
| +fatal: typeof Logger,
| +getContext: () => MessageContextType,
| +info: typeof Logger,
| +trace: typeof Logger,
| +warn: typeof Logger,
| |};
|
| export type MessageEventHandlerType = (message: MessageType) => void;
|
|