@holz/core 0.8.0-rc.1 → 0.8.0-rc.3
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/dist/holz-core.cjs +1 -1
- package/dist/holz-core.d.ts +2 -0
- package/dist/holz-core.js +22 -21
- package/package.json +1 -1
- package/src/__tests__/logger.test.ts +9 -0
- package/src/logger.ts +1 -0
- package/src/types.ts +3 -0
package/dist/holz-core.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=n=>r=>n.forEach(e=>e(r)),f=(n,r)=>e=>{n(e)&&r(e)},l={fatal:60,error:50,warn:40,info:30,debug:20,trace:10},i=(n,r)=>{const e=(a,c,d={})=>{n({message:c,level:a,origin:r,context:d})},o={owner:r,trace:e.bind(null,l.trace),debug:e.bind(null,l.debug),info:e.bind(null,l.info),warn:e.bind(null,l.warn),error:e.bind(null,l.error),fatal:e.bind(null,l.fatal),namespace:a=>i(n,r.concat(a)),withMiddleware:a=>i(a(n),r)},t={configurable:!1,enumerable:!1};return Object.defineProperties(o,{withMiddleware:t,namespace:t,trace:t,debug:t,info:t,warn:t,error:t,fatal:t})},g=n=>i(n,[]);exports.combine=b;exports.createLogger=g;exports.filter=f;exports.level=l;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=n=>r=>n.forEach(e=>e(r)),f=(n,r)=>e=>{n(e)&&r(e)},l={fatal:60,error:50,warn:40,info:30,debug:20,trace:10},i=(n,r)=>{const e=(a,c,d={})=>{n({timestamp:Date.now(),message:c,level:a,origin:r,context:d})},o={owner:r,trace:e.bind(null,l.trace),debug:e.bind(null,l.debug),info:e.bind(null,l.info),warn:e.bind(null,l.warn),error:e.bind(null,l.error),fatal:e.bind(null,l.fatal),namespace:a=>i(n,r.concat(a)),withMiddleware:a=>i(a(n),r)},t={configurable:!1,enumerable:!1};return Object.defineProperties(o,{withMiddleware:t,namespace:t,trace:t,debug:t,info:t,warn:t,error:t,fatal:t})},g=n=>i(n,[]);exports.combine=b;exports.createLogger=g;exports.filter=f;exports.level=l;
|
package/dist/holz-core.d.ts
CHANGED
|
@@ -64,6 +64,8 @@ export declare const level: {
|
|
|
64
64
|
|
|
65
65
|
/** A log message where variables are carried as structured data. */
|
|
66
66
|
export declare interface Log {
|
|
67
|
+
/** Unix timestamp. Includes milliseconds. */
|
|
68
|
+
readonly timestamp: number;
|
|
67
69
|
/** The verbatim log message. Should not contain interpolated data. */
|
|
68
70
|
readonly message: string;
|
|
69
71
|
/** Log severity. One of `levels.*`. */
|
package/dist/holz-core.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const f = (n) => (r) => n.forEach((e) => e(r)), b = (n, r) => (e) => {
|
|
2
2
|
n(e) && r(e);
|
|
3
|
-
},
|
|
3
|
+
}, a = {
|
|
4
4
|
/** A critical failure happened and the program must exit. */
|
|
5
5
|
fatal: 60,
|
|
6
6
|
/** Something failed, but we can keep going. */
|
|
@@ -14,38 +14,39 @@ const f = (n) => (r) => n.forEach((e) => e(r)), b = (n, r) => (e) => {
|
|
|
14
14
|
/** Extremely detailed progress updates (usually hidden). */
|
|
15
15
|
trace: 10
|
|
16
16
|
}, i = (n, r) => {
|
|
17
|
-
const e = (
|
|
17
|
+
const e = (l, d, c = {}) => {
|
|
18
18
|
n({
|
|
19
|
+
timestamp: Date.now(),
|
|
19
20
|
message: d,
|
|
20
|
-
level:
|
|
21
|
+
level: l,
|
|
21
22
|
origin: r,
|
|
22
23
|
context: c
|
|
23
24
|
});
|
|
24
25
|
}, o = {
|
|
25
26
|
owner: r,
|
|
26
|
-
trace: e.bind(null,
|
|
27
|
-
debug: e.bind(null,
|
|
28
|
-
info: e.bind(null,
|
|
29
|
-
warn: e.bind(null,
|
|
30
|
-
error: e.bind(null,
|
|
31
|
-
fatal: e.bind(null,
|
|
32
|
-
namespace: (
|
|
33
|
-
withMiddleware: (
|
|
34
|
-
},
|
|
27
|
+
trace: e.bind(null, a.trace),
|
|
28
|
+
debug: e.bind(null, a.debug),
|
|
29
|
+
info: e.bind(null, a.info),
|
|
30
|
+
warn: e.bind(null, a.warn),
|
|
31
|
+
error: e.bind(null, a.error),
|
|
32
|
+
fatal: e.bind(null, a.fatal),
|
|
33
|
+
namespace: (l) => i(n, r.concat(l)),
|
|
34
|
+
withMiddleware: (l) => i(l(n), r)
|
|
35
|
+
}, t = { configurable: !1, enumerable: !1 };
|
|
35
36
|
return Object.defineProperties(o, {
|
|
36
|
-
withMiddleware:
|
|
37
|
-
namespace:
|
|
38
|
-
trace:
|
|
39
|
-
debug:
|
|
40
|
-
info:
|
|
41
|
-
warn:
|
|
42
|
-
error:
|
|
43
|
-
fatal:
|
|
37
|
+
withMiddleware: t,
|
|
38
|
+
namespace: t,
|
|
39
|
+
trace: t,
|
|
40
|
+
debug: t,
|
|
41
|
+
info: t,
|
|
42
|
+
warn: t,
|
|
43
|
+
error: t,
|
|
44
|
+
fatal: t
|
|
44
45
|
});
|
|
45
46
|
}, u = (n) => i(n, []);
|
|
46
47
|
export {
|
|
47
48
|
f as combine,
|
|
48
49
|
u as createLogger,
|
|
49
50
|
b as filter,
|
|
50
|
-
|
|
51
|
+
a as level
|
|
51
52
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { createLogger } from '../logger';
|
|
2
2
|
import { level } from '../index';
|
|
3
3
|
|
|
4
|
+
const SYSTEM_TIME = new Date('2020-06-15T12:30:00Z').getTime();
|
|
5
|
+
|
|
6
|
+
vi.setSystemTime(SYSTEM_TIME);
|
|
7
|
+
|
|
4
8
|
describe('Logger', () => {
|
|
5
9
|
it('sends structured logs to the log processor', () => {
|
|
6
10
|
const backend = vi.fn();
|
|
@@ -10,6 +14,7 @@ describe('Logger', () => {
|
|
|
10
14
|
|
|
11
15
|
expect(backend).toHaveBeenCalledOnce();
|
|
12
16
|
expect(backend).toHaveBeenCalledWith({
|
|
17
|
+
timestamp: SYSTEM_TIME,
|
|
13
18
|
message: 'Hello world',
|
|
14
19
|
level: level.info,
|
|
15
20
|
origin: [],
|
|
@@ -30,6 +35,7 @@ describe('Logger', () => {
|
|
|
30
35
|
|
|
31
36
|
logger[method](message, context);
|
|
32
37
|
expect(backend).toHaveBeenCalledWith({
|
|
38
|
+
timestamp: SYSTEM_TIME,
|
|
33
39
|
message,
|
|
34
40
|
level: level[method],
|
|
35
41
|
context,
|
|
@@ -61,6 +67,7 @@ describe('Logger', () => {
|
|
|
61
67
|
|
|
62
68
|
expect(backend).toHaveBeenCalledOnce();
|
|
63
69
|
expect(backend).toHaveBeenCalledWith({
|
|
70
|
+
timestamp: SYSTEM_TIME,
|
|
64
71
|
message: 'opening socket',
|
|
65
72
|
level: level.info,
|
|
66
73
|
origin: ['signaling', 'socket'],
|
|
@@ -79,6 +86,7 @@ describe('Logger', () => {
|
|
|
79
86
|
logger.info('original message');
|
|
80
87
|
expect(backend).toHaveBeenCalledOnce();
|
|
81
88
|
expect(backend).toHaveBeenCalledWith({
|
|
89
|
+
timestamp: SYSTEM_TIME,
|
|
82
90
|
message: 'replaced',
|
|
83
91
|
level: level.info,
|
|
84
92
|
origin: [],
|
|
@@ -102,6 +110,7 @@ describe('Logger', () => {
|
|
|
102
110
|
logger.info('original message');
|
|
103
111
|
expect(backend).toHaveBeenCalledOnce();
|
|
104
112
|
expect(backend).toHaveBeenCalledWith({
|
|
113
|
+
timestamp: SYSTEM_TIME,
|
|
105
114
|
message: 'original message',
|
|
106
115
|
level: level.info,
|
|
107
116
|
origin: ['child'],
|
package/src/logger.ts
CHANGED
package/src/types.ts
CHANGED
|
@@ -10,6 +10,9 @@ export interface LogProcessor {
|
|
|
10
10
|
|
|
11
11
|
/** A log message where variables are carried as structured data. */
|
|
12
12
|
export interface Log {
|
|
13
|
+
/** Unix timestamp. Includes milliseconds. */
|
|
14
|
+
readonly timestamp: number;
|
|
15
|
+
|
|
13
16
|
/** The verbatim log message. Should not contain interpolated data. */
|
|
14
17
|
readonly message: string;
|
|
15
18
|
|