@x1-labs/logging 0.1.23 → 0.1.24
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/format.d.ts +6 -2
- package/dist/format.js +85 -0
- package/dist/format.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/logger.js +2 -5
- package/dist/logger.js.map +1 -1
- package/package.json +1 -1
package/dist/format.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DestinationStream } from 'pino';
|
|
2
2
|
export type LogFormat = 'json' | 'logfmt' | 'pretty';
|
|
3
3
|
export declare function resolveLogFormat(override?: LogFormat | boolean): LogFormat;
|
|
4
4
|
export declare function resolveFlattenNestedObjects(): boolean;
|
|
5
|
-
export declare function
|
|
5
|
+
export declare function resolveDestination(format: LogFormat): DestinationStream | undefined;
|
|
6
|
+
export declare function resolveTransport(format: LogFormat): {
|
|
7
|
+
target: string;
|
|
8
|
+
options: Record<string, unknown>;
|
|
9
|
+
} | undefined;
|
package/dist/format.js
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.resolveLogFormat = resolveLogFormat;
|
|
4
7
|
exports.resolveFlattenNestedObjects = resolveFlattenNestedObjects;
|
|
8
|
+
exports.resolveDestination = resolveDestination;
|
|
5
9
|
exports.resolveTransport = resolveTransport;
|
|
10
|
+
const pino_pretty_1 = __importDefault(require("pino-pretty"));
|
|
6
11
|
function resolveLogFormat(override) {
|
|
7
12
|
if (override === true)
|
|
8
13
|
return 'json';
|
|
@@ -23,6 +28,86 @@ function resolveFlattenNestedObjects() {
|
|
|
23
28
|
const env = process.env.LOG_FLATTEN_NESTED?.toLowerCase();
|
|
24
29
|
return !(env === 'false' || env === '0');
|
|
25
30
|
}
|
|
31
|
+
function stringifyLogfmt(data) {
|
|
32
|
+
let line = '';
|
|
33
|
+
for (const key in data) {
|
|
34
|
+
const raw = data[key];
|
|
35
|
+
let value;
|
|
36
|
+
if (raw == null) {
|
|
37
|
+
value = '';
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
value = String(raw);
|
|
41
|
+
}
|
|
42
|
+
const hasNewlines = value.includes('\n') || value.includes('\r');
|
|
43
|
+
const needsQuoting = value.includes(' ') || value.includes('=');
|
|
44
|
+
const needsEscaping = value.includes('"') || value.includes('\\');
|
|
45
|
+
if (needsEscaping)
|
|
46
|
+
value = value.replace(/["\\]/g, '\\$&');
|
|
47
|
+
if (hasNewlines) {
|
|
48
|
+
value = value
|
|
49
|
+
.replace(/\r\n/g, '\\n')
|
|
50
|
+
.replace(/\n/g, '\\n')
|
|
51
|
+
.replace(/\r/g, '\\r');
|
|
52
|
+
}
|
|
53
|
+
if (needsQuoting || needsEscaping || hasNewlines)
|
|
54
|
+
value = '"' + value + '"';
|
|
55
|
+
if (value === '' && raw != null)
|
|
56
|
+
value = '""';
|
|
57
|
+
line += key + '=' + value + ' ';
|
|
58
|
+
}
|
|
59
|
+
return line.trimEnd();
|
|
60
|
+
}
|
|
61
|
+
function flattenObject(source, separator = '_', prefixes = []) {
|
|
62
|
+
const output = {};
|
|
63
|
+
for (const key in source) {
|
|
64
|
+
const value = source[key];
|
|
65
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
66
|
+
Object.assign(output, flattenObject(value, separator, [...prefixes, key]));
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
output[[...prefixes, key].join(separator)] = value;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return output;
|
|
73
|
+
}
|
|
74
|
+
function reorderKeys(obj) {
|
|
75
|
+
const { time, level, name, msg, ...rest } = obj;
|
|
76
|
+
return {
|
|
77
|
+
...(time !== undefined && { time }),
|
|
78
|
+
...(level !== undefined && { level }),
|
|
79
|
+
...(name !== undefined && { name }),
|
|
80
|
+
...(msg !== undefined && { msg }),
|
|
81
|
+
...rest,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function createLogfmtStream(flattenNestedObjects) {
|
|
85
|
+
return {
|
|
86
|
+
write(chunk) {
|
|
87
|
+
try {
|
|
88
|
+
let obj = JSON.parse(chunk);
|
|
89
|
+
if (flattenNestedObjects) {
|
|
90
|
+
obj = flattenObject(obj);
|
|
91
|
+
}
|
|
92
|
+
obj = reorderKeys(obj);
|
|
93
|
+
process.stdout.write(stringifyLogfmt(obj) + '\n');
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
process.stdout.write(chunk);
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function resolveDestination(format) {
|
|
102
|
+
switch (format) {
|
|
103
|
+
case 'json':
|
|
104
|
+
return undefined;
|
|
105
|
+
case 'logfmt':
|
|
106
|
+
return createLogfmtStream(resolveFlattenNestedObjects());
|
|
107
|
+
case 'pretty':
|
|
108
|
+
return (0, pino_pretty_1.default)({ singleLine: true });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
26
111
|
function resolveTransport(format) {
|
|
27
112
|
switch (format) {
|
|
28
113
|
case 'json':
|
package/dist/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { resolveLogLevel } from './level';
|
|
2
2
|
export { resolveBase } from './base';
|
|
3
|
-
export { resolveLogFormat, resolveTransport } from './format';
|
|
3
|
+
export { resolveLogFormat, resolveDestination, resolveTransport } from './format';
|
|
4
4
|
export type { LogFormat } from './format';
|
|
5
5
|
export { createLogger } from './logger';
|
|
6
6
|
export type { CreateLoggerOptions } from './logger';
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createLogger = exports.resolveTransport = exports.resolveLogFormat = exports.resolveBase = exports.resolveLogLevel = void 0;
|
|
3
|
+
exports.createLogger = exports.resolveTransport = exports.resolveDestination = exports.resolveLogFormat = exports.resolveBase = exports.resolveLogLevel = void 0;
|
|
4
4
|
var level_1 = require("./level");
|
|
5
5
|
Object.defineProperty(exports, "resolveLogLevel", { enumerable: true, get: function () { return level_1.resolveLogLevel; } });
|
|
6
6
|
var base_1 = require("./base");
|
|
7
7
|
Object.defineProperty(exports, "resolveBase", { enumerable: true, get: function () { return base_1.resolveBase; } });
|
|
8
8
|
var format_1 = require("./format");
|
|
9
9
|
Object.defineProperty(exports, "resolveLogFormat", { enumerable: true, get: function () { return format_1.resolveLogFormat; } });
|
|
10
|
+
Object.defineProperty(exports, "resolveDestination", { enumerable: true, get: function () { return format_1.resolveDestination; } });
|
|
10
11
|
Object.defineProperty(exports, "resolveTransport", { enumerable: true, get: function () { return format_1.resolveTransport; } });
|
|
11
12
|
var logger_1 = require("./logger");
|
|
12
13
|
Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return logger_1.createLogger; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAA0C;AAAjC,wGAAA,eAAe,OAAA;AACxB,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAA0C;AAAjC,wGAAA,eAAe,OAAA;AACxB,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,mCAAkF;AAAzE,0GAAA,gBAAgB,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,0GAAA,gBAAgB,OAAA;AAE/D,mCAAwC;AAA/B,sGAAA,YAAY,OAAA"}
|
package/dist/logger.js
CHANGED
|
@@ -11,7 +11,7 @@ const format_1 = require("./format");
|
|
|
11
11
|
function createLogger(options = {}) {
|
|
12
12
|
const level = (0, level_1.resolveLogLevel)(options.level);
|
|
13
13
|
const format = (0, format_1.resolveLogFormat)(options.format ?? options.json);
|
|
14
|
-
const
|
|
14
|
+
const destination = (0, format_1.resolveDestination)(format);
|
|
15
15
|
const base = (0, base_1.resolveBase)();
|
|
16
16
|
const opts = {
|
|
17
17
|
level,
|
|
@@ -25,9 +25,6 @@ function createLogger(options = {}) {
|
|
|
25
25
|
if (options.name) {
|
|
26
26
|
opts.name = options.name;
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
opts.transport = transport;
|
|
30
|
-
}
|
|
31
|
-
return (0, pino_1.default)(opts);
|
|
28
|
+
return destination ? (0, pino_1.default)(opts, destination) : (0, pino_1.default)(opts);
|
|
32
29
|
}
|
|
33
30
|
//# sourceMappingURL=logger.js.map
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;AAiBA,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;;;AAiBA,oCAsBC;AAvCD,gDAAwB;AAExB,mCAA0C;AAC1C,iCAAqC;AACrC,qCAAgE;AAahE,SAAgB,YAAY,CAAC,UAA+B,EAAE;IAC5D,MAAM,KAAK,GAAG,IAAA,uBAAe,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAA,yBAAgB,EAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,IAAA,2BAAkB,EAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAA,kBAAW,GAAE,CAAC;IAE3B,MAAM,IAAI,GAAkB;QAC1B,KAAK;QACL,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,SAAS,EAAE,cAAI,CAAC,gBAAgB,CAAC,OAAO;QACxC,UAAU,EAAE;YACV,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;SACnD;QACD,GAAG,OAAO,CAAC,WAAW;KACvB,CAAC;IAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAGD,OAAO,WAAW,CAAC,CAAC,CAAC,IAAA,cAAI,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAA,cAAI,EAAC,IAAI,CAAC,CAAC;AAC5D,CAAC"}
|