@niceties/logger 1.0.4 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -23
- package/appender-utils/package.json +3 -0
- package/dist/appender-utils.cjs +24 -0
- package/dist/appender-utils.d.ts +2 -2
- package/dist/appender-utils.mjs +19 -0
- package/dist/appender-utils.umd.js +2 -0
- package/dist/appender-utils.umd.js.map +1 -0
- package/dist/console-appender.cjs +4 -4
- package/dist/console-appender.d.ts +1 -1
- package/dist/console-appender.mjs +4 -4
- package/dist/console-appender.umd.js +1 -1
- package/dist/console-appender.umd.js.map +1 -1
- package/dist/core.cjs +44 -49
- package/dist/core.d.ts +5 -9
- package/dist/core.mjs +45 -48
- package/dist/core.umd.js +1 -1
- package/dist/core.umd.js.map +1 -1
- package/dist/default-formatting.cjs +6 -2
- package/dist/default-formatting.d.ts +1 -0
- package/dist/default-formatting.mjs +6 -3
- package/dist/format-utils.cjs +6 -6
- package/dist/format-utils.d.ts +3 -3
- package/dist/format-utils.mjs +6 -6
- package/dist/global-appender.cjs +3 -21
- package/dist/global-appender.d.ts +3 -0
- package/dist/global-appender.mjs +3 -21
- package/dist/global-appender.umd.js +2 -0
- package/dist/global-appender.umd.js.map +1 -0
- package/dist/index.cjs +7 -5
- package/dist/index.d.ts +3 -3
- package/dist/index.mjs +10 -6
- package/dist/simple.cjs +8 -13
- package/dist/simple.d.ts +2 -6
- package/dist/simple.mjs +9 -12
- package/dist/simple.umd.js +1 -1
- package/dist/simple.umd.js.map +1 -1
- package/dist/types.d.ts +11 -1
- package/global-appender/package.json +3 -0
- package/package.json +23 -9
- package/dist/details/global-appender.d.ts +0 -3
package/README.md
CHANGED
|
@@ -12,12 +12,6 @@ Experimental logger/reporter for async tasks.
|
|
|
12
12
|
|
|
13
13
|
# Installation
|
|
14
14
|
|
|
15
|
-
```
|
|
16
|
-
yarn add @niceties/logger
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
or
|
|
20
|
-
|
|
21
15
|
```
|
|
22
16
|
npm install --save @niceties/logger
|
|
23
17
|
```
|
|
@@ -47,11 +41,11 @@ try {
|
|
|
47
41
|
Logger factory:
|
|
48
42
|
|
|
49
43
|
```typescript
|
|
50
|
-
function createLogger<ErrorContext = Error>(...args: [] | [string | Identity] | [string, Identity]): ((message: string, loglevel?: LogLevel, context?: ErrorContext | undefined) => void) & {
|
|
51
|
-
start(message: string, loglevel?: LogLevel | undefined): void;
|
|
52
|
-
update(message: string, loglevel?: LogLevel | undefined): void;
|
|
53
|
-
finish(message: string, loglevel?: LogLevel | undefined): void;
|
|
54
|
-
|
|
44
|
+
function createLogger<ErrorContext = Error>(...args: [] | [string | Identity | undefined] | [string, Identity]): ((message: string, loglevel?: LogLevel, context?: ErrorContext | undefined) => void) & {
|
|
45
|
+
start(message: string, loglevel?: LogLevel | undefined, context?: ErrorContext | undefined): void;
|
|
46
|
+
update(message: string, loglevel?: LogLevel | undefined, context?: ErrorContext | undefined): void;
|
|
47
|
+
finish(message: string, loglevel?: LogLevel | undefined, context?: ErrorContext | undefined): void;
|
|
48
|
+
appender(appender?: Appender<ErrorContext> | undefined): (message: LogMessage<ErrorContext>) => void;
|
|
55
49
|
};
|
|
56
50
|
```
|
|
57
51
|
|
|
@@ -91,36 +85,36 @@ try {
|
|
|
91
85
|
```
|
|
92
86
|
|
|
93
87
|
```typescript
|
|
94
|
-
start(message: string, loglevel?: LogLevel | undefined): void;
|
|
88
|
+
start(message: string, loglevel?: LogLevel | undefined, context?: ErrorContext | undefined): void;
|
|
95
89
|
```
|
|
96
90
|
|
|
97
91
|
Emits start event inside a logger. If loglevel provided it will be remembered and used as default loglevel in subsequent events in the same logger instance. Default loglevel (if argument is not provided) is `info`.
|
|
98
92
|
|
|
99
93
|
```typescript
|
|
100
|
-
update(message: string, loglevel?: LogLevel | undefined): void;
|
|
94
|
+
update(message: string, loglevel?: LogLevel | undefined, context?: ErrorContext | undefined): void;
|
|
101
95
|
```
|
|
102
96
|
|
|
103
97
|
Emits update event. Can be used to inform user that we are doing something else in the same async task. loglevel used to redefine default loglevel.
|
|
104
98
|
|
|
105
99
|
```typescript
|
|
106
|
-
finish(message: string, loglevel?: LogLevel | undefined): void;
|
|
100
|
+
finish(message: string, loglevel?: LogLevel | undefined, context?: ErrorContext | undefined): void;
|
|
107
101
|
```
|
|
108
102
|
|
|
109
103
|
Emits finish event. Can be used to inform user that task finished. loglevel is optional and equals initial loglevel if omitted.
|
|
110
104
|
|
|
111
105
|
```typescript
|
|
112
|
-
const
|
|
113
|
-
|
|
106
|
+
const logger = createLogger();
|
|
107
|
+
logger.appender(someFancyAppender);
|
|
114
108
|
```
|
|
115
109
|
|
|
116
|
-
|
|
110
|
+
Sets different appender for the specific instance of the logger.
|
|
117
111
|
|
|
118
112
|
```typescript
|
|
119
|
-
const
|
|
120
|
-
|
|
113
|
+
const logger = createLogger();
|
|
114
|
+
const appender = logger.appender();
|
|
121
115
|
```
|
|
122
116
|
|
|
123
|
-
|
|
117
|
+
Returns current appender for the specific instance of the logger.
|
|
124
118
|
|
|
125
119
|
## Log levels
|
|
126
120
|
|
|
@@ -226,20 +220,28 @@ Default subpackage `'@niceties/logger'` exports types, `createLogger()` factory
|
|
|
226
220
|
|
|
227
221
|
Subpackage `'@niceties/logger/default-formatting'` exports formatting constants that is part of default configuration of the console appender.
|
|
228
222
|
|
|
229
|
-
Subpackage `'@niceties/logger/core'` exports `createLogger()` factory
|
|
223
|
+
Subpackage `'@niceties/logger/core'` exports `createLogger()` factory.
|
|
230
224
|
|
|
231
|
-
Subpackage `'@niceties/logger/simple'` exports `createLogger()` factory
|
|
225
|
+
Subpackage `'@niceties/logger/simple'` exports `createLogger()` factory.
|
|
232
226
|
|
|
233
227
|
Subpackage `'@niceties/logger/console-appender'` exports `createConsoleAppender()` factory.
|
|
234
228
|
|
|
235
229
|
Subpackage `'@niceties/logger/format-utils'` exports `createFormatter()` and `terminalSupportsUnicode()` functions.
|
|
236
230
|
|
|
231
|
+
Subpackage `'@niceties/logger/global-appender'` exports `appender()` and `globalAppender`.
|
|
232
|
+
|
|
233
|
+
Subpackage `'@niceties/logger/appender-utils'` exports `combineAppenders()` and `filterMessages()`.
|
|
234
|
+
|
|
237
235
|
`simple` (default), `core` and `console-appender` exists as umd packages as well but probably require some effort to consume them.
|
|
238
236
|
|
|
239
237
|
# Prior art
|
|
240
238
|
|
|
241
239
|
- [loglevel](https://github.com/pimterry/loglevel)
|
|
240
|
+
- [winston](https://github.com/winstonjs/winston)
|
|
241
|
+
- [node-bunyan](https://github.com/trentm/node-bunyan)
|
|
242
|
+
- [log4js](https://github.com/log4js-node/log4js-node)
|
|
243
|
+
- [pino](https://github.com/pinojs/pino)
|
|
242
244
|
|
|
243
245
|
# License
|
|
244
246
|
|
|
245
|
-
[MIT](./LICENSE)
|
|
247
|
+
[MIT](./LICENSE)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const filterMessages = (predicate, appender, api) => {
|
|
6
|
+
return Object.assign(function (logMessage) {
|
|
7
|
+
if (predicate(logMessage)) {
|
|
8
|
+
appender(logMessage);
|
|
9
|
+
}
|
|
10
|
+
}, api);
|
|
11
|
+
};
|
|
12
|
+
const combineAppenders = (...appenders) => {
|
|
13
|
+
return (message) => {
|
|
14
|
+
for (const appender of appenders) {
|
|
15
|
+
try {
|
|
16
|
+
appender(message);
|
|
17
|
+
}
|
|
18
|
+
catch (e) { /* eat the error */ }
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
exports.combineAppenders = combineAppenders;
|
|
24
|
+
exports.filterMessages = filterMessages;
|
package/dist/appender-utils.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Appender, LogMessage } from './types';
|
|
2
|
-
export declare
|
|
3
|
-
export declare
|
|
2
|
+
export declare const filterMessages: <ErrorContext = Error, Api extends object = object>(predicate: (logMessage: LogMessage<ErrorContext>) => boolean, appender: Appender<ErrorContext>, api?: Api | undefined) => Appender<ErrorContext> & Api;
|
|
3
|
+
export declare const combineAppenders: <ErrorContext = Error>(...appenders: Appender<ErrorContext>[]) => Appender<ErrorContext>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const filterMessages = (predicate, appender, api) => {
|
|
2
|
+
return Object.assign(function (logMessage) {
|
|
3
|
+
if (predicate(logMessage)) {
|
|
4
|
+
appender(logMessage);
|
|
5
|
+
}
|
|
6
|
+
}, api);
|
|
7
|
+
};
|
|
8
|
+
const combineAppenders = (...appenders) => {
|
|
9
|
+
return (message) => {
|
|
10
|
+
for (const appender of appenders) {
|
|
11
|
+
try {
|
|
12
|
+
appender(message);
|
|
13
|
+
}
|
|
14
|
+
catch (e) { /* eat the error */ }
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { combineAppenders, filterMessages };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).nicetiesLoggerAppenderUtils={})}(this,(function(e){"use strict";e.combineAppenders=(...e)=>t=>{for(const o of e)try{o(t)}catch(e){}},e.filterMessages=(e,t,o)=>Object.assign((function(o){e(o)&&t(o)}),o),Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
|
+
//# sourceMappingURL=appender-utils.umd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appender-utils.umd.js","sources":["../src/appender-utils.ts"],"sourcesContent":["import { Appender, LogMessage } from './types';\n\nexport const filterMessages = <ErrorContext = Error, Api extends object = object>(predicate: (logMessage: LogMessage<ErrorContext>) => boolean, appender: Appender<ErrorContext>, api?: Api): Appender<ErrorContext> & Api => {\n return Object.assign(function(logMessage: LogMessage<ErrorContext>) {\n if (predicate(logMessage)) {\n appender(logMessage);\n }\n }, api);\n};\n\nexport const combineAppenders = <ErrorContext = Error>(...appenders: Appender<ErrorContext>[]): Appender<ErrorContext> => {\n return (message: LogMessage<ErrorContext>) => {\n for(const appender of appenders) {\n try {\n appender(message);\n } catch(e) { /* eat the error */ }\n }\n };\n};\n"],"names":["appenders","message","appender","e","predicate","api","Object","assign","logMessage"],"mappings":"sRAUgC,IAA0BA,IAC9CC,IACJ,IAAI,MAAMC,KAAYF,EAClB,IACIE,EAASD,GACX,MAAME,uBAbU,CAAoDC,EAA8DF,EAAkCG,IACvKC,OAAOC,QAAO,SAASC,GACtBJ,EAAUI,IACVN,EAASM,KAEdH"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
return
|
|
7
|
-
console.log(formatter(message,
|
|
5
|
+
const createConsoleAppender = (formatter) => {
|
|
6
|
+
return (message) => {
|
|
7
|
+
console.log(formatter(message, message.action === 2 /* finish */));
|
|
8
8
|
};
|
|
9
|
-
}
|
|
9
|
+
};
|
|
10
10
|
|
|
11
11
|
exports.createConsoleAppender = createConsoleAppender;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Formatter, LogMessage } from './types';
|
|
2
|
-
export declare
|
|
2
|
+
export declare const createConsoleAppender: (formatter: Formatter) => (message: LogMessage) => void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
return
|
|
3
|
-
console.log(formatter(message,
|
|
1
|
+
const createConsoleAppender = (formatter) => {
|
|
2
|
+
return (message) => {
|
|
3
|
+
console.log(formatter(message, message.action === 2 /* finish */));
|
|
4
4
|
};
|
|
5
|
-
}
|
|
5
|
+
};
|
|
6
6
|
|
|
7
7
|
export { createConsoleAppender };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self).nicetiesLoggerConsoleAppender={})}(this,(function(e){"use strict";e.createConsoleAppender=
|
|
1
|
+
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self).nicetiesLoggerConsoleAppender={})}(this,(function(e){"use strict";e.createConsoleAppender=e=>o=>{console.log(e(o,2===o.action))},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=console-appender.umd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-appender.umd.js","sources":["../src/console-appender.ts"],"sourcesContent":["import { Action, Formatter, LogMessage } from './types';\n\nexport
|
|
1
|
+
{"version":3,"file":"console-appender.umd.js","sources":["../src/console-appender.ts"],"sourcesContent":["import { Action, Formatter, LogMessage } from './types';\n\nexport const createConsoleAppender = (formatter: Formatter) => {\n return (message: LogMessage) => {\n console.log(formatter(message, message.action === Action.finish));\n };\n};\n"],"names":["formatter","message","console","log","action"],"mappings":"6RAEsCA,GAC1BC,IACJC,QAAQC,IAAIH,EAAUC,MAASA,EAAQG"}
|
package/dist/core.cjs
CHANGED
|
@@ -5,36 +5,63 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var globalAppender = require('./global-appender.cjs');
|
|
6
6
|
|
|
7
7
|
let globalInputId = 0;
|
|
8
|
-
|
|
8
|
+
const getOptions = (options) => {
|
|
9
|
+
var _a, _b;
|
|
10
|
+
let parentId, tag;
|
|
11
|
+
if (options.length === 1) {
|
|
12
|
+
if (typeof options[0] === 'string') {
|
|
13
|
+
tag = options[0];
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
parentId = (_a = options[0]) === null || _a === void 0 ? void 0 : _a.id;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else if (options.length === 2) {
|
|
20
|
+
tag = options[0];
|
|
21
|
+
parentId = (_b = options[1]) === null || _b === void 0 ? void 0 : _b.id;
|
|
22
|
+
}
|
|
23
|
+
return { parentId, tag };
|
|
24
|
+
};
|
|
25
|
+
const createLogger = (...args) => {
|
|
9
26
|
let initialLogLevel = 1 /* info */;
|
|
27
|
+
let myAppender = (message) => { globalAppender.globalAppender && globalAppender.globalAppender(message); };
|
|
10
28
|
const inputId = globalInputId++;
|
|
11
29
|
const { tag, parentId } = getOptions(args);
|
|
12
|
-
|
|
13
|
-
|
|
30
|
+
const append = (message, action, loglevel, context) => {
|
|
31
|
+
myAppender && myAppender({
|
|
32
|
+
action,
|
|
33
|
+
inputId,
|
|
34
|
+
message,
|
|
35
|
+
loglevel,
|
|
36
|
+
tag,
|
|
37
|
+
parentId,
|
|
38
|
+
ref,
|
|
39
|
+
context
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
const loggerInstance = Object.assign((message, loglevel = 1 /* info */, context) => {
|
|
14
43
|
append(message, 3 /* log */, loglevel, context);
|
|
15
44
|
}, {
|
|
16
45
|
// Fine to be started multiple times
|
|
17
|
-
start(message, loglevel) {
|
|
46
|
+
start(message, loglevel, context) {
|
|
18
47
|
if (loglevel !== undefined) {
|
|
19
48
|
initialLogLevel = loglevel;
|
|
20
49
|
}
|
|
21
|
-
append(message, 0 /* start */, initialLogLevel);
|
|
50
|
+
append(message, 0 /* start */, initialLogLevel, context);
|
|
22
51
|
},
|
|
23
52
|
// Fine to be updated multiple times
|
|
24
|
-
update(message, loglevel) {
|
|
25
|
-
append(message, 1 /* update */, loglevel !== null && loglevel !== void 0 ? loglevel : initialLogLevel);
|
|
53
|
+
update(message, loglevel, context) {
|
|
54
|
+
append(message, 1 /* update */, loglevel !== null && loglevel !== void 0 ? loglevel : initialLogLevel, context);
|
|
26
55
|
},
|
|
27
56
|
// Fine to be finished multiple times
|
|
28
|
-
finish(message, loglevel) {
|
|
29
|
-
append(message, 2 /* finish */, loglevel !== null && loglevel !== void 0 ? loglevel : initialLogLevel);
|
|
30
|
-
},
|
|
31
|
-
withFilter(predicate) {
|
|
32
|
-
myAppender = globalAppender.filterMessages(predicate, myAppender);
|
|
33
|
-
return loggerInstance;
|
|
57
|
+
finish(message, loglevel, context) {
|
|
58
|
+
append(message, 2 /* finish */, loglevel !== null && loglevel !== void 0 ? loglevel : initialLogLevel, context);
|
|
34
59
|
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
60
|
+
appender(appender) {
|
|
61
|
+
if (appender !== undefined) {
|
|
62
|
+
myAppender = appender;
|
|
63
|
+
}
|
|
64
|
+
return myAppender;
|
|
38
65
|
}
|
|
39
66
|
});
|
|
40
67
|
Object.defineProperty(loggerInstance, 'id', {
|
|
@@ -43,38 +70,6 @@ function createLogger(...args) {
|
|
|
43
70
|
});
|
|
44
71
|
const ref = new WeakRef(loggerInstance);
|
|
45
72
|
return loggerInstance;
|
|
46
|
-
|
|
47
|
-
myAppender({
|
|
48
|
-
action,
|
|
49
|
-
inputId,
|
|
50
|
-
message,
|
|
51
|
-
loglevel,
|
|
52
|
-
tag,
|
|
53
|
-
parentId,
|
|
54
|
-
ref,
|
|
55
|
-
context
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
function getOptions(options) {
|
|
60
|
-
var _a, _b;
|
|
61
|
-
let parentId, tag;
|
|
62
|
-
if (options.length === 1) {
|
|
63
|
-
if (typeof options[0] === 'string') {
|
|
64
|
-
tag = options[0];
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
parentId = (_a = options[0]) === null || _a === void 0 ? void 0 : _a.id;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
else if (options.length === 2) {
|
|
71
|
-
tag = options[0];
|
|
72
|
-
parentId = (_b = options[1]) === null || _b === void 0 ? void 0 : _b.id;
|
|
73
|
-
}
|
|
74
|
-
return { parentId, tag };
|
|
75
|
-
}
|
|
73
|
+
};
|
|
76
74
|
|
|
77
|
-
exports.appender = globalAppender.appender;
|
|
78
|
-
exports.combineAppenders = globalAppender.combineAppenders;
|
|
79
|
-
exports.filterMessages = globalAppender.filterMessages;
|
|
80
75
|
exports.createLogger = createLogger;
|
package/dist/core.d.ts
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import { combineAppenders, filterMessages } from './appender-utils';
|
|
2
|
-
import { appender } from './details/global-appender';
|
|
3
1
|
import { Appender, LogLevel, LogMessage, Identity } from './types';
|
|
4
|
-
export declare
|
|
5
|
-
start(message: string, loglevel?: LogLevel | undefined): void;
|
|
6
|
-
update(message: string, loglevel?: LogLevel | undefined): void;
|
|
7
|
-
finish(message: string, loglevel?: LogLevel | undefined): void;
|
|
8
|
-
|
|
9
|
-
withAppender(appender: Appender<ErrorContext>): ((message: string, loglevel?: LogLevel, context?: ErrorContext | undefined) => void) & any;
|
|
2
|
+
export declare const createLogger: <ErrorContext = Error>(...args: [] | [string | Identity | undefined] | [string, Identity]) => ((message: string, loglevel?: LogLevel, context?: ErrorContext | undefined) => void) & {
|
|
3
|
+
start(message: string, loglevel?: LogLevel | undefined, context?: ErrorContext | undefined): void;
|
|
4
|
+
update(message: string, loglevel?: LogLevel | undefined, context?: ErrorContext | undefined): void;
|
|
5
|
+
finish(message: string, loglevel?: LogLevel | undefined, context?: ErrorContext | undefined): void;
|
|
6
|
+
appender(appender?: Appender<ErrorContext> | undefined): (message: LogMessage<ErrorContext>) => void;
|
|
10
7
|
};
|
|
11
|
-
export { appender, combineAppenders, filterMessages };
|
package/dist/core.mjs
CHANGED
|
@@ -1,37 +1,63 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { a as appender, c as combineAppenders, f as filterMessages } from './global-appender.mjs';
|
|
1
|
+
import { globalAppender } from './global-appender.mjs';
|
|
3
2
|
|
|
4
3
|
let globalInputId = 0;
|
|
5
|
-
|
|
4
|
+
const getOptions = (options) => {
|
|
5
|
+
var _a, _b;
|
|
6
|
+
let parentId, tag;
|
|
7
|
+
if (options.length === 1) {
|
|
8
|
+
if (typeof options[0] === 'string') {
|
|
9
|
+
tag = options[0];
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
parentId = (_a = options[0]) === null || _a === void 0 ? void 0 : _a.id;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
else if (options.length === 2) {
|
|
16
|
+
tag = options[0];
|
|
17
|
+
parentId = (_b = options[1]) === null || _b === void 0 ? void 0 : _b.id;
|
|
18
|
+
}
|
|
19
|
+
return { parentId, tag };
|
|
20
|
+
};
|
|
21
|
+
const createLogger = (...args) => {
|
|
6
22
|
let initialLogLevel = 1 /* info */;
|
|
23
|
+
let myAppender = (message) => { globalAppender && globalAppender(message); };
|
|
7
24
|
const inputId = globalInputId++;
|
|
8
25
|
const { tag, parentId } = getOptions(args);
|
|
9
|
-
|
|
10
|
-
|
|
26
|
+
const append = (message, action, loglevel, context) => {
|
|
27
|
+
myAppender && myAppender({
|
|
28
|
+
action,
|
|
29
|
+
inputId,
|
|
30
|
+
message,
|
|
31
|
+
loglevel,
|
|
32
|
+
tag,
|
|
33
|
+
parentId,
|
|
34
|
+
ref,
|
|
35
|
+
context
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
const loggerInstance = Object.assign((message, loglevel = 1 /* info */, context) => {
|
|
11
39
|
append(message, 3 /* log */, loglevel, context);
|
|
12
40
|
}, {
|
|
13
41
|
// Fine to be started multiple times
|
|
14
|
-
start(message, loglevel) {
|
|
42
|
+
start(message, loglevel, context) {
|
|
15
43
|
if (loglevel !== undefined) {
|
|
16
44
|
initialLogLevel = loglevel;
|
|
17
45
|
}
|
|
18
|
-
append(message, 0 /* start */, initialLogLevel);
|
|
46
|
+
append(message, 0 /* start */, initialLogLevel, context);
|
|
19
47
|
},
|
|
20
48
|
// Fine to be updated multiple times
|
|
21
|
-
update(message, loglevel) {
|
|
22
|
-
append(message, 1 /* update */, loglevel !== null && loglevel !== void 0 ? loglevel : initialLogLevel);
|
|
49
|
+
update(message, loglevel, context) {
|
|
50
|
+
append(message, 1 /* update */, loglevel !== null && loglevel !== void 0 ? loglevel : initialLogLevel, context);
|
|
23
51
|
},
|
|
24
52
|
// Fine to be finished multiple times
|
|
25
|
-
finish(message, loglevel) {
|
|
26
|
-
append(message, 2 /* finish */, loglevel !== null && loglevel !== void 0 ? loglevel : initialLogLevel);
|
|
27
|
-
},
|
|
28
|
-
withFilter(predicate) {
|
|
29
|
-
myAppender = filterMessages(predicate, myAppender);
|
|
30
|
-
return loggerInstance;
|
|
53
|
+
finish(message, loglevel, context) {
|
|
54
|
+
append(message, 2 /* finish */, loglevel !== null && loglevel !== void 0 ? loglevel : initialLogLevel, context);
|
|
31
55
|
},
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
56
|
+
appender(appender) {
|
|
57
|
+
if (appender !== undefined) {
|
|
58
|
+
myAppender = appender;
|
|
59
|
+
}
|
|
60
|
+
return myAppender;
|
|
35
61
|
}
|
|
36
62
|
});
|
|
37
63
|
Object.defineProperty(loggerInstance, 'id', {
|
|
@@ -40,35 +66,6 @@ function createLogger(...args) {
|
|
|
40
66
|
});
|
|
41
67
|
const ref = new WeakRef(loggerInstance);
|
|
42
68
|
return loggerInstance;
|
|
43
|
-
|
|
44
|
-
myAppender({
|
|
45
|
-
action,
|
|
46
|
-
inputId,
|
|
47
|
-
message,
|
|
48
|
-
loglevel,
|
|
49
|
-
tag,
|
|
50
|
-
parentId,
|
|
51
|
-
ref,
|
|
52
|
-
context
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
function getOptions(options) {
|
|
57
|
-
var _a, _b;
|
|
58
|
-
let parentId, tag;
|
|
59
|
-
if (options.length === 1) {
|
|
60
|
-
if (typeof options[0] === 'string') {
|
|
61
|
-
tag = options[0];
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
parentId = (_a = options[0]) === null || _a === void 0 ? void 0 : _a.id;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
else if (options.length === 2) {
|
|
68
|
-
tag = options[0];
|
|
69
|
-
parentId = (_b = options[1]) === null || _b === void 0 ? void 0 : _b.id;
|
|
70
|
-
}
|
|
71
|
-
return { parentId, tag };
|
|
72
|
-
}
|
|
69
|
+
};
|
|
73
70
|
|
|
74
71
|
export { createLogger };
|
package/dist/core.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(t
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("./global-appender")):"function"==typeof define&&define.amd?define(["exports","./global-appender"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).nicetiesLoggerCore={},e.nicetiesLoggerGlobalAppender)}(this,(function(e,t){"use strict";let n=0;e.createLogger=(...e)=>{let o=1,l=e=>{t.globalAppender&&t.globalAppender(e)};const i=n++,{tag:d,parentId:a}=(e=>{var t,n;let o,l;return 1===e.length?"string"==typeof e[0]?l=e[0]:o=null===(t=e[0])||void 0===t?void 0:t.id:2===e.length&&(l=e[0],o=null===(n=e[1])||void 0===n?void 0:n.id),{parentId:o,tag:l}})(e),r=(e,t,n,o)=>{l&&l({action:t,inputId:i,message:e,loglevel:n,tag:d,parentId:a,ref:u,context:o})},p=Object.assign(((e,t=1,n)=>{r(e,3,t,n)}),{start(e,t,n){void 0!==t&&(o=t),r(e,0,o,n)},update(e,t,n){r(e,1,null!=t?t:o,n)},finish(e,t,n){r(e,2,null!=t?t:o,n)},appender:e=>(void 0!==e&&(l=e),l)});Object.defineProperty(p,"id",{value:i,writable:!1});const u=new WeakRef(p);return p},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=core.umd.js.map
|
package/dist/core.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.umd.js","sources":["../src/
|
|
1
|
+
{"version":3,"file":"core.umd.js","sources":["../src/core.ts"],"sourcesContent":["import { globalAppender } from './global-appender';\nimport { Action, Appender, LogLevel, LogMessage, Identity } from './types';\n\nlet globalInputId = 0;\n\nconst getOptions = (options: [] | [string | Identity | undefined] | [string, Identity]): { tag?: string, parentId?: number } => {\n let parentId, tag;\n if (options.length === 1) {\n if (typeof options[0] === 'string') {\n tag = options[0];\n } else {\n parentId = options[0]?.id;\n }\n } else if (options.length === 2) {\n tag = options[0];\n parentId = options[1]?.id;\n }\n return { parentId, tag };\n};\n\nexport const createLogger = <ErrorContext = Error>(...args: [] | [string | Identity | undefined] | [string, Identity]) => {\n let initialLogLevel: number = LogLevel.info;\n\n let myAppender = (message: LogMessage<ErrorContext>) => { globalAppender && globalAppender(message); };\n \n const inputId = globalInputId++;\n \n const { tag, parentId } = getOptions(args);\n \n const append = (message: string, action: Action, loglevel: LogLevel, context?: ErrorContext) => {\n myAppender && myAppender({\n action,\n inputId,\n message,\n loglevel,\n tag,\n parentId,\n ref,\n context\n } as LogMessage<ErrorContext>);\n };\n\n const loggerInstance = Object.assign(\n (message: string, loglevel: LogLevel = LogLevel.info, context?: ErrorContext) => {\n append(message, Action.log, loglevel, context);\n }, {\n // Fine to be started multiple times\n start(message: string, loglevel?: LogLevel, context?: ErrorContext) {\n if (loglevel !== undefined) {\n initialLogLevel = loglevel;\n }\n append(message, Action.start, initialLogLevel, context);\n },\n // Fine to be updated multiple times\n update(message: string, loglevel?: LogLevel, context?: ErrorContext) {\n append(message, Action.update, loglevel ?? initialLogLevel, context);\n },\n // Fine to be finished multiple times\n finish(message: string, loglevel?: LogLevel, context?: ErrorContext) {\n append(message, Action.finish, loglevel ?? initialLogLevel, context);\n },\n appender(appender?: Appender<ErrorContext>) {\n if (appender !== undefined) {\n myAppender = appender;\n }\n return myAppender;\n }\n }\n );\n\n Object.defineProperty(loggerInstance, 'id', {\n value: inputId,\n writable: false\n });\n\n const ref = new WeakRef(loggerInstance);\n\n return loggerInstance;\n};\n"],"names":["globalInputId","args","initialLogLevel","myAppender","message","globalAppender","inputId","tag","parentId","options","length","id","getOptions","append","action","loglevel","context","ref","loggerInstance","Object","assign","start","undefined","update","finish","appender","defineProperty","value","writable","WeakRef"],"mappings":"4UAGA,IAAIA,EAAgB,iBAiBQ,IAA0BC,KAClD,IAAIC,IAEAC,EAAcC,IAAwCC,kBAAkBA,iBAAeD,IAE3F,MAAME,EAAUN,KAEVO,IAAEA,EAAGC,SAAEA,GAtBE,CAACC,YAChB,IAAID,EAAUD,EAWd,OAVuB,IAAnBE,EAAQC,OACkB,iBAAfD,EAAQ,GACfF,EAAME,EAAQ,GAEdD,YAAWC,EAAQ,yBAAIE,GAED,IAAnBF,EAAQC,SACfH,EAAME,EAAQ,GACdD,YAAWC,EAAQ,yBAAIE,IAEpB,CAAEH,SAAAA,EAAUD,IAAAA,IAUOK,CAAWX,GAE/BY,EAAS,CAACT,EAAiBU,EAAgBC,EAAoBC,KACjEb,GAAcA,EAAW,CACrBW,OAAAA,EACAR,QAAAA,EACAF,QAAAA,EACAW,SAAAA,EACAR,IAAAA,EACAC,SAAAA,EACAS,IAAAA,EACAD,QAAAA,KAIFE,EAAiBC,OAAOC,QAC1B,CAAChB,EAAiBW,IAAoCC,KAClDH,EAAOT,IAAqBW,EAAUC,KACvC,CAECK,MAAMjB,EAAiBW,EAAqBC,QACvBM,IAAbP,IACAb,EAAkBa,GAEtBF,EAAOT,IAAuBF,EAAiBc,IAGnDO,OAAOnB,EAAiBW,EAAqBC,GACzCH,EAAOT,IAAwBW,MAAAA,EAAAA,EAAYb,EAAiBc,IAGhEQ,OAAOpB,EAAiBW,EAAqBC,GACzCH,EAAOT,IAAwBW,MAAAA,EAAAA,EAAYb,EAAiBc,IAEhES,SAASA,SACYH,IAAbG,IACAtB,EAAasB,GAEVtB,KAKnBgB,OAAOO,eAAeR,EAAgB,KAAM,CACxCS,MAAOrB,EACPsB,UAAU,IAGd,MAAMX,EAAM,IAAIY,QAAQX,GAExB,OAAOA"}
|
|
@@ -8,12 +8,16 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
8
8
|
|
|
9
9
|
var kleur__default = /*#__PURE__*/_interopDefaultLegacy(kleur);
|
|
10
10
|
|
|
11
|
-
const { green, red, yellow } = kleur__default["default"];
|
|
11
|
+
const { green, red, yellow, blue } = kleur__default["default"];
|
|
12
12
|
const unicodePrefixes = [`${green('✓')}`, `${green('✓')}`, '⚠', '✕'];
|
|
13
13
|
const asciiPrefixes = [`${green('+')}`, `${green('+')}`, '!', 'x'];
|
|
14
14
|
// eslint-disable-next-line no-sparse-arrays
|
|
15
|
-
const colors = [, , yellow, red];
|
|
15
|
+
const colors = [, , yellow, red];
|
|
16
|
+
const tagFactory = (tag) => {
|
|
17
|
+
return '[' + blue(tag) + ']';
|
|
18
|
+
};
|
|
16
19
|
|
|
17
20
|
exports.asciiPrefixes = asciiPrefixes;
|
|
18
21
|
exports.colors = colors;
|
|
22
|
+
exports.tagFactory = tagFactory;
|
|
19
23
|
exports.unicodePrefixes = unicodePrefixes;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import kleur from 'kleur';
|
|
2
2
|
|
|
3
|
-
const { green, red, yellow } = kleur;
|
|
3
|
+
const { green, red, yellow, blue } = kleur;
|
|
4
4
|
const unicodePrefixes = [`${green('✓')}`, `${green('✓')}`, '⚠', '✕'];
|
|
5
5
|
const asciiPrefixes = [`${green('+')}`, `${green('+')}`, '!', 'x'];
|
|
6
6
|
// eslint-disable-next-line no-sparse-arrays
|
|
7
|
-
const colors = [, , yellow, red];
|
|
7
|
+
const colors = [, , yellow, red];
|
|
8
|
+
const tagFactory = (tag) => {
|
|
9
|
+
return '[' + blue(tag) + ']';
|
|
10
|
+
};
|
|
8
11
|
|
|
9
|
-
export { asciiPrefixes, colors, unicodePrefixes };
|
|
12
|
+
export { asciiPrefixes, colors, tagFactory, unicodePrefixes };
|
package/dist/format-utils.cjs
CHANGED
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
return
|
|
5
|
+
const createFormatter = (colors, prefixes, tagFactory) => {
|
|
6
|
+
return ({ loglevel, message, context, action, tag }, usePrefix, identation = 0) => {
|
|
7
7
|
const prefix = usePrefix === true ? (`${prefixes[loglevel]} `) : (typeof usePrefix === 'string' ? (`${usePrefix} `) : '');
|
|
8
8
|
const color = colors[loglevel];
|
|
9
|
-
const text = `${prefix}${message}`;
|
|
9
|
+
const text = `${prefix}${loglevel === 0 /* verbose */ && action === 3 /* log */ && tag !== undefined ? tagFactory(tag) + ' ' : ''}${message}${context != null ? ' ' + context : ''}`;
|
|
10
10
|
return `${' '.repeat(identation)}${color ? color(text) : text}`;
|
|
11
11
|
};
|
|
12
|
-
}
|
|
12
|
+
};
|
|
13
13
|
// from dreidels/utils
|
|
14
|
-
|
|
14
|
+
const terminalSupportsUnicode = () => {
|
|
15
15
|
// The default command prompt and powershell in Windows do not support Unicode characters.
|
|
16
16
|
// However, the VSCode integrated terminal and the Windows Terminal both do.
|
|
17
17
|
return process.platform !== 'win32'
|
|
18
18
|
|| process.env.TERM_PROGRAM === 'vscode'
|
|
19
19
|
|| !!process.env.WT_SESSION;
|
|
20
|
-
}
|
|
20
|
+
};
|
|
21
21
|
|
|
22
22
|
exports.createFormatter = createFormatter;
|
|
23
23
|
exports.terminalSupportsUnicode = terminalSupportsUnicode;
|
package/dist/format-utils.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ColorFormatters,
|
|
2
|
-
export declare
|
|
3
|
-
export declare
|
|
1
|
+
import { ColorFormatters, LogMessage, Prefixes } from './types';
|
|
2
|
+
export declare const createFormatter: (colors: ColorFormatters, prefixes: Prefixes, tagFactory: (tag: string) => string) => ({ loglevel, message, context, action, tag }: LogMessage, usePrefix?: string | boolean | undefined, identation?: number) => string;
|
|
3
|
+
export declare const terminalSupportsUnicode: () => boolean;
|
package/dist/format-utils.mjs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
return
|
|
1
|
+
const createFormatter = (colors, prefixes, tagFactory) => {
|
|
2
|
+
return ({ loglevel, message, context, action, tag }, usePrefix, identation = 0) => {
|
|
3
3
|
const prefix = usePrefix === true ? (`${prefixes[loglevel]} `) : (typeof usePrefix === 'string' ? (`${usePrefix} `) : '');
|
|
4
4
|
const color = colors[loglevel];
|
|
5
|
-
const text = `${prefix}${message}`;
|
|
5
|
+
const text = `${prefix}${loglevel === 0 /* verbose */ && action === 3 /* log */ && tag !== undefined ? tagFactory(tag) + ' ' : ''}${message}${context != null ? ' ' + context : ''}`;
|
|
6
6
|
return `${' '.repeat(identation)}${color ? color(text) : text}`;
|
|
7
7
|
};
|
|
8
|
-
}
|
|
8
|
+
};
|
|
9
9
|
// from dreidels/utils
|
|
10
|
-
|
|
10
|
+
const terminalSupportsUnicode = () => {
|
|
11
11
|
// The default command prompt and powershell in Windows do not support Unicode characters.
|
|
12
12
|
// However, the VSCode integrated terminal and the Windows Terminal both do.
|
|
13
13
|
return process.platform !== 'win32'
|
|
14
14
|
|| process.env.TERM_PROGRAM === 'vscode'
|
|
15
15
|
|| !!process.env.WT_SESSION;
|
|
16
|
-
}
|
|
16
|
+
};
|
|
17
17
|
|
|
18
18
|
export { createFormatter, terminalSupportsUnicode };
|
package/dist/global-appender.cjs
CHANGED
|
@@ -1,32 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
return function (logMessage) {
|
|
5
|
-
if (predicate(logMessage)) {
|
|
6
|
-
appender(logMessage);
|
|
7
|
-
}
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
function combineAppenders(...appenders) {
|
|
11
|
-
return (message) => {
|
|
12
|
-
for (const appender of appenders) {
|
|
13
|
-
try {
|
|
14
|
-
appender(message);
|
|
15
|
-
}
|
|
16
|
-
catch (e) { /* eat the error */ }
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
}
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
20
4
|
|
|
21
5
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
6
|
exports.globalAppender = void 0;
|
|
23
|
-
|
|
7
|
+
const appender = (appender) => {
|
|
24
8
|
if (appender !== undefined) {
|
|
25
9
|
exports.globalAppender = appender;
|
|
26
10
|
}
|
|
27
11
|
return exports.globalAppender;
|
|
28
|
-
}
|
|
12
|
+
};
|
|
29
13
|
|
|
30
14
|
exports.appender = appender;
|
|
31
|
-
exports.combineAppenders = combineAppenders;
|
|
32
|
-
exports.filterMessages = filterMessages;
|
package/dist/global-appender.mjs
CHANGED
|
@@ -1,28 +1,10 @@
|
|
|
1
|
-
function filterMessages(predicate, appender) {
|
|
2
|
-
return function (logMessage) {
|
|
3
|
-
if (predicate(logMessage)) {
|
|
4
|
-
appender(logMessage);
|
|
5
|
-
}
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
function combineAppenders(...appenders) {
|
|
9
|
-
return (message) => {
|
|
10
|
-
for (const appender of appenders) {
|
|
11
|
-
try {
|
|
12
|
-
appender(message);
|
|
13
|
-
}
|
|
14
|
-
catch (e) { /* eat the error */ }
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
|
|
19
1
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
2
|
let globalAppender;
|
|
21
|
-
|
|
3
|
+
const appender = (appender) => {
|
|
22
4
|
if (appender !== undefined) {
|
|
23
5
|
globalAppender = appender;
|
|
24
6
|
}
|
|
25
7
|
return globalAppender;
|
|
26
|
-
}
|
|
8
|
+
};
|
|
27
9
|
|
|
28
|
-
export { appender
|
|
10
|
+
export { appender, globalAppender };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self).nicetiesLoggerGlobalAppender={})}(this,(function(e){"use strict";e.globalAppender=void 0;e.appender=o=>(void 0!==o&&(e.globalAppender=o),e.globalAppender),Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
|
+
//# sourceMappingURL=global-appender.umd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-appender.umd.js","sources":["../src/global-appender.ts"],"sourcesContent":["import { Appender } from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport let globalAppender: Appender<any>;\n\nexport const appender = <ErrorContext = Error>(appender?: Appender<ErrorContext>) => {\n if (appender !== undefined) {\n globalAppender = appender;\n }\n return globalAppender;\n};\n"],"names":["appender","undefined","globalAppender"],"mappings":"uSAK+CA,SAC1BC,IAAbD,IACAE,iBAAiBF,GAEdE"}
|
package/dist/index.cjs
CHANGED
|
@@ -6,14 +6,16 @@ var core = require('./core.cjs');
|
|
|
6
6
|
var globalAppender = require('./global-appender.cjs');
|
|
7
7
|
|
|
8
8
|
if (!globalAppender.appender()) {
|
|
9
|
-
const { asciiPrefixes, colors, unicodePrefixes } = require('./default-formatting.cjs');
|
|
9
|
+
const { asciiPrefixes, colors, unicodePrefixes, tagFactory } = require('./default-formatting.cjs');
|
|
10
10
|
const { createConsoleAppender } = require('./console-appender.cjs');
|
|
11
11
|
const { createFormatter, terminalSupportsUnicode } = require('./format-utils.cjs');
|
|
12
|
-
const
|
|
13
|
-
|
|
12
|
+
const { filterMessages } = require('./appender-utils.cjs');
|
|
13
|
+
const formatter = createFormatter(colors, terminalSupportsUnicode() ? unicodePrefixes : asciiPrefixes, tagFactory);
|
|
14
|
+
let minLogLevel = 1 /* info */;
|
|
15
|
+
globalAppender.appender(filterMessages((message) => message.loglevel >= minLogLevel, createConsoleAppender(formatter), // eslint-disable-line indent
|
|
16
|
+
{ setMinLevel(logLevel) { minLogLevel = logLevel; } } // eslint-disable-line indent
|
|
17
|
+
));
|
|
14
18
|
}
|
|
15
19
|
|
|
16
20
|
exports.createLogger = core.createLogger;
|
|
17
21
|
exports.appender = globalAppender.appender;
|
|
18
|
-
exports.combineAppenders = globalAppender.combineAppenders;
|
|
19
|
-
exports.filterMessages = globalAppender.filterMessages;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createLogger
|
|
2
|
-
import { appender } from './
|
|
1
|
+
import { createLogger } from './core';
|
|
2
|
+
import { appender } from './global-appender';
|
|
3
3
|
export * from './types';
|
|
4
|
-
export { createLogger, appender
|
|
4
|
+
export { createLogger, appender };
|
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
export { createLogger } from './core.mjs';
|
|
2
|
-
import {
|
|
3
|
-
export {
|
|
2
|
+
import { appender } from './global-appender.mjs';
|
|
3
|
+
export { appender } from './global-appender.mjs';
|
|
4
4
|
|
|
5
5
|
if (!appender()) {
|
|
6
|
-
const [{ asciiPrefixes, colors, unicodePrefixes }, { createConsoleAppender }, { createFormatter, terminalSupportsUnicode }] = await Promise.all([
|
|
6
|
+
const [{ asciiPrefixes, colors, unicodePrefixes, tagFactory }, { createConsoleAppender }, { createFormatter, terminalSupportsUnicode }, { filterMessages }] = await Promise.all([
|
|
7
7
|
import('./default-formatting.mjs'),
|
|
8
8
|
import('./console-appender.mjs'),
|
|
9
|
-
import('./format-utils.mjs')
|
|
9
|
+
import('./format-utils.mjs'),
|
|
10
|
+
import('./appender-utils.mjs')
|
|
10
11
|
]);
|
|
11
|
-
const formatter = createFormatter(colors, terminalSupportsUnicode() ? unicodePrefixes : asciiPrefixes);
|
|
12
|
-
|
|
12
|
+
const formatter = createFormatter(colors, terminalSupportsUnicode() ? unicodePrefixes : asciiPrefixes, tagFactory);
|
|
13
|
+
let minLogLevel = 1 /* info */;
|
|
14
|
+
appender(filterMessages((message) => message.loglevel >= minLogLevel, createConsoleAppender(formatter), // eslint-disable-line indent
|
|
15
|
+
{ setMinLevel(logLevel) { minLogLevel = logLevel; } } // eslint-disable-line indent
|
|
16
|
+
));
|
|
13
17
|
}
|
package/dist/simple.cjs
CHANGED
|
@@ -4,10 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var globalAppender = require('./global-appender.cjs');
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
const createLogger = (tag) => {
|
|
8
8
|
let myAppender = (message) => { globalAppender.globalAppender && globalAppender.globalAppender(message); };
|
|
9
9
|
const loggerInstance = Object.assign(function log(message, loglevel = 1 /* info */, context) {
|
|
10
|
-
myAppender({
|
|
10
|
+
myAppender && myAppender({
|
|
11
11
|
action: 3 /* log */,
|
|
12
12
|
message,
|
|
13
13
|
loglevel,
|
|
@@ -15,19 +15,14 @@ function createLogger(tag) {
|
|
|
15
15
|
context
|
|
16
16
|
});
|
|
17
17
|
}, {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
myAppender = globalAppender.combineAppenders(myAppender, appender);
|
|
24
|
-
return loggerInstance;
|
|
18
|
+
appender(appender) {
|
|
19
|
+
if (appender !== undefined) {
|
|
20
|
+
myAppender = appender;
|
|
21
|
+
}
|
|
22
|
+
return myAppender;
|
|
25
23
|
}
|
|
26
24
|
});
|
|
27
25
|
return loggerInstance;
|
|
28
|
-
}
|
|
26
|
+
};
|
|
29
27
|
|
|
30
|
-
exports.appender = globalAppender.appender;
|
|
31
|
-
exports.combineAppenders = globalAppender.combineAppenders;
|
|
32
|
-
exports.filterMessages = globalAppender.filterMessages;
|
|
33
28
|
exports.createLogger = createLogger;
|
package/dist/simple.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import { combineAppenders, filterMessages } from './appender-utils';
|
|
2
|
-
import { appender } from './details/global-appender';
|
|
3
1
|
import { Appender, LogLevel, LogMessage } from './types';
|
|
4
|
-
export declare
|
|
5
|
-
|
|
6
|
-
withAppender(appender: Appender<ErrorContext>): ((message: string, loglevel?: LogLevel, context?: ErrorContext | undefined) => void) & any;
|
|
2
|
+
export declare const createLogger: <ErrorContext = Error>(tag?: string | undefined) => ((message: string, loglevel?: LogLevel, context?: ErrorContext | undefined) => void) & {
|
|
3
|
+
appender(appender?: Appender<ErrorContext> | undefined): (message: LogMessage<ErrorContext>) => void;
|
|
7
4
|
};
|
|
8
|
-
export { appender, combineAppenders, filterMessages };
|
package/dist/simple.mjs
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { a as appender, c as combineAppenders, f as filterMessages } from './global-appender.mjs';
|
|
1
|
+
import { globalAppender } from './global-appender.mjs';
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
const createLogger = (tag) => {
|
|
5
4
|
let myAppender = (message) => { globalAppender && globalAppender(message); };
|
|
6
5
|
const loggerInstance = Object.assign(function log(message, loglevel = 1 /* info */, context) {
|
|
7
|
-
myAppender({
|
|
6
|
+
myAppender && myAppender({
|
|
8
7
|
action: 3 /* log */,
|
|
9
8
|
message,
|
|
10
9
|
loglevel,
|
|
@@ -12,16 +11,14 @@ function createLogger(tag) {
|
|
|
12
11
|
context
|
|
13
12
|
});
|
|
14
13
|
}, {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
myAppender = combineAppenders(myAppender, appender);
|
|
21
|
-
return loggerInstance;
|
|
14
|
+
appender(appender) {
|
|
15
|
+
if (appender !== undefined) {
|
|
16
|
+
myAppender = appender;
|
|
17
|
+
}
|
|
18
|
+
return myAppender;
|
|
22
19
|
}
|
|
23
20
|
});
|
|
24
21
|
return loggerInstance;
|
|
25
|
-
}
|
|
22
|
+
};
|
|
26
23
|
|
|
27
24
|
export { createLogger };
|
package/dist/simple.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).nicetiesLoggerSimple={})}(this,(function(e){"use strict";
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("./global-appender")):"function"==typeof define&&define.amd?define(["exports","./global-appender"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).nicetiesLoggerSimple={},e.nicetiesLoggerGlobalAppender)}(this,(function(e,t){"use strict";e.createLogger=e=>{let o=e=>{t.globalAppender&&t.globalAppender(e)};return Object.assign((function(t,n=1,i){o&&o({action:3,message:t,loglevel:n,tag:e,context:i})}),{appender:e=>(void 0!==e&&(o=e),o)})},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=simple.umd.js.map
|
package/dist/simple.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple.umd.js","sources":["../src/
|
|
1
|
+
{"version":3,"file":"simple.umd.js","sources":["../src/simple.ts"],"sourcesContent":["import { globalAppender } from './global-appender';\nimport { Action, Appender, LogLevel, LogMessage } from './types';\n\nexport const createLogger = <ErrorContext = Error>(tag?: string) => {\n let myAppender = (message: LogMessage<ErrorContext>) => { globalAppender && globalAppender(message); };\n\n const loggerInstance = Object.assign(\n function log(message: string, loglevel: LogLevel = LogLevel.info, context?: ErrorContext) {\n myAppender && myAppender({\n action: Action.log,\n message,\n loglevel,\n tag,\n context\n } as LogMessage<ErrorContext>);\n }, {\n appender(appender?: Appender<ErrorContext>) {\n if (appender !== undefined) {\n myAppender = appender;\n }\n return myAppender;\n }\n }\n );\n\n return loggerInstance;\n};\n"],"names":["tag","myAppender","message","globalAppender","Object","assign","loglevel","context","action","appender","undefined"],"mappings":"6VAGmDA,IAC/C,IAAIC,EAAcC,IAAwCC,kBAAkBA,iBAAeD,IAqB3F,OAnBuBE,OAAOC,QAC1B,SAAaH,EAAiBI,IAAoCC,GAC9DN,GAAcA,EAAW,CACrBO,SACAN,QAAAA,EACAI,SAAAA,EACAN,IAAAA,EACAO,QAAAA,MAEL,CACCE,SAASA,SACYC,IAAbD,IACAR,EAAaQ,GAEVR"}
|
package/dist/types.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export declare type LogMessage<ErrorContext = Error> = {
|
|
|
18
18
|
tag?: string;
|
|
19
19
|
parentId?: number;
|
|
20
20
|
ref: WeakRef<never>;
|
|
21
|
+
context?: ErrorContext;
|
|
21
22
|
} | {
|
|
22
23
|
inputId?: number;
|
|
23
24
|
loglevel: LogLevel;
|
|
@@ -38,4 +39,13 @@ export declare type Prefixes = {
|
|
|
38
39
|
export declare type ColorFormatters = {
|
|
39
40
|
[index in LogLevel]: (((text: string) => string) | undefined);
|
|
40
41
|
};
|
|
41
|
-
export declare type Formatter = (message:
|
|
42
|
+
export declare type Formatter<ErrorContext = Error> = (message: LogMessage<ErrorContext>, usePrefix?: string | boolean, identation?: number) => string;
|
|
43
|
+
export declare type Logger<ErrorContext = Error> = ((message: string, loglevel?: LogLevel, context?: ErrorContext | undefined) => void) & {
|
|
44
|
+
start(message: string, loglevel?: LogLevel | undefined, context?: ErrorContext | undefined): void;
|
|
45
|
+
update(message: string, loglevel?: LogLevel | undefined, context?: ErrorContext | undefined): void;
|
|
46
|
+
finish(message: string, loglevel?: LogLevel | undefined, context?: ErrorContext | undefined): void;
|
|
47
|
+
appender(appender?: Appender<ErrorContext>): (message: LogMessage<ErrorContext>) => void;
|
|
48
|
+
};
|
|
49
|
+
export declare type MinLogLevelApi = {
|
|
50
|
+
setMinLevel(logLevel: LogLevel): void;
|
|
51
|
+
};
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.1.2",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "@niceties/logger",
|
|
5
5
|
"author": "Konstantin Shutkin",
|
|
@@ -29,6 +29,14 @@
|
|
|
29
29
|
"./format-utils": {
|
|
30
30
|
"require": "./dist/format-utils.cjs",
|
|
31
31
|
"default": "./dist/format-utils.mjs"
|
|
32
|
+
},
|
|
33
|
+
"./global-appender": {
|
|
34
|
+
"require": "./dist/global-appender.cjs",
|
|
35
|
+
"default": "./dist/global-appender.mjs"
|
|
36
|
+
},
|
|
37
|
+
"./appender-utils": {
|
|
38
|
+
"require": "./dist/appender-utils.cjs",
|
|
39
|
+
"default": "./dist/appender-utils.mjs"
|
|
32
40
|
}
|
|
33
41
|
},
|
|
34
42
|
"main": "./dist/index.cjs",
|
|
@@ -40,6 +48,8 @@
|
|
|
40
48
|
"default-formatting",
|
|
41
49
|
"core",
|
|
42
50
|
"console-appender",
|
|
51
|
+
"global-appender",
|
|
52
|
+
"appender-utils",
|
|
43
53
|
"format-utils",
|
|
44
54
|
"types",
|
|
45
55
|
"simple"
|
|
@@ -55,6 +65,8 @@
|
|
|
55
65
|
"url": "https://github.com/kshutkin/niceties/issues"
|
|
56
66
|
},
|
|
57
67
|
"homepage": "https://github.com/kshutkin/niceties/blob/main/logger/README.md",
|
|
68
|
+
"readme": "REAMDE.md",
|
|
69
|
+
"description": "Experimental logger/reporter for async tasks.",
|
|
58
70
|
"scripts": {
|
|
59
71
|
"build": "rimraf ./dist && rollup -c",
|
|
60
72
|
"dev": "rimraf ./dist && rollup -c -w",
|
|
@@ -70,23 +82,25 @@
|
|
|
70
82
|
"@semantic-release/git": "10.0.1",
|
|
71
83
|
"@semantic-release/npm": "8.0.2",
|
|
72
84
|
"@semantic-release/release-notes-generator": "10.0.2",
|
|
73
|
-
"@types/jest": "27.0.
|
|
74
|
-
"@
|
|
75
|
-
"@typescript-eslint/
|
|
85
|
+
"@types/jest": "27.0.3",
|
|
86
|
+
"@types/node": "17.0.5",
|
|
87
|
+
"@typescript-eslint/eslint-plugin": "5.8.1",
|
|
88
|
+
"@typescript-eslint/parser": "5.8.1",
|
|
76
89
|
"conventional-changelog-angular": "5.0.13",
|
|
77
|
-
"eslint": "8.
|
|
78
|
-
"jest": "27.
|
|
90
|
+
"eslint": "8.5.0",
|
|
91
|
+
"jest": "27.4.5",
|
|
79
92
|
"lodash": "4.17.21",
|
|
80
93
|
"rimraf": "3.0.2",
|
|
81
|
-
"rollup": "2.
|
|
94
|
+
"rollup": "2.62.0",
|
|
82
95
|
"rollup-plugin-preprocess": "0.0.4",
|
|
83
96
|
"rollup-plugin-terser": "7.0.2",
|
|
84
97
|
"rollup-plugin-typescript2": "0.31.1",
|
|
85
98
|
"semantic-release": "18.0.0",
|
|
86
99
|
"semantic-release-monorepo": "7.0.5",
|
|
87
|
-
"ts-jest": "27.
|
|
100
|
+
"ts-jest": "27.1.2",
|
|
88
101
|
"tslib": "2.3.1",
|
|
89
|
-
"typescript": "4.
|
|
102
|
+
"typescript": "4.5.x",
|
|
103
|
+
"pkgbld": "1.2.0"
|
|
90
104
|
},
|
|
91
105
|
"dependencies": {
|
|
92
106
|
"kleur": "^4.1.4"
|