@subsquid/logger 1.5.0-portal-api.b241d7 → 1.6.0
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/lib/index.d.ts +12 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +19 -0
- package/lib/index.js.map +1 -1
- package/lib/level.test.js +4 -3
- package/lib/level.test.js.map +1 -1
- package/package.json +7 -9
- package/src/index.ts +33 -1
- package/src/level.test.ts +3 -2
package/lib/index.d.ts
CHANGED
|
@@ -16,4 +16,16 @@ export declare function setLogLevelCallback(cb?: (ns: string) => LogLevel | unde
|
|
|
16
16
|
*/
|
|
17
17
|
export declare function setRootSink(sink: Sink): void;
|
|
18
18
|
export declare function createLogger(ns: string, attributes?: object): Logger;
|
|
19
|
+
export interface PinoLikeLogger {
|
|
20
|
+
trace(obj: unknown, msg?: string): void;
|
|
21
|
+
debug(obj: unknown, msg?: string): void;
|
|
22
|
+
info(obj: unknown, msg?: string): void;
|
|
23
|
+
warn(obj: unknown, msg?: string): void;
|
|
24
|
+
error(obj: unknown, msg?: string): void;
|
|
25
|
+
fatal(obj: unknown, msg?: string): void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Creates Pino logger sink that can be later used in setRootSink
|
|
29
|
+
*/
|
|
30
|
+
export declare function createPinoSink(pinoLogger: PinoLikeLogger): Sink;
|
|
19
31
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAC,MAAM,SAAS,CAAA;AACxC,OAAO,EAAC,MAAM,EAAa,IAAI,EAAC,MAAM,UAAU,CAAA;AAKhD,OAAO,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAA;AAChC,cAAc,UAAU,CAAA;AAGxB;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,GAAG,IAAI,CAEnF;AAWD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAE5C;AASD,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpE;AAID,MAAM,WAAW,cAAc;IAC3B,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1C;AAWD;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAO/D"}
|
package/lib/index.js
CHANGED
|
@@ -18,6 +18,7 @@ exports.LogLevel = void 0;
|
|
|
18
18
|
exports.setLogLevelCallback = setLogLevelCallback;
|
|
19
19
|
exports.setRootSink = setRootSink;
|
|
20
20
|
exports.createLogger = createLogger;
|
|
21
|
+
exports.createPinoSink = createPinoSink;
|
|
21
22
|
const level_1 = require("./level");
|
|
22
23
|
const logger_1 = require("./logger");
|
|
23
24
|
const json_1 = require("./sinks/json");
|
|
@@ -50,4 +51,22 @@ const ROOT = new logger_1.Logger(rec => ROOT_SINK(rec), '');
|
|
|
50
51
|
function createLogger(ns, attributes) {
|
|
51
52
|
return ROOT.child(ns, attributes);
|
|
52
53
|
}
|
|
54
|
+
const LEVEL_MAP = {
|
|
55
|
+
[level_1.LogLevel.TRACE]: 'trace',
|
|
56
|
+
[level_1.LogLevel.DEBUG]: 'debug',
|
|
57
|
+
[level_1.LogLevel.INFO]: 'info',
|
|
58
|
+
[level_1.LogLevel.WARN]: 'warn',
|
|
59
|
+
[level_1.LogLevel.ERROR]: 'error',
|
|
60
|
+
[level_1.LogLevel.FATAL]: 'fatal',
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Creates Pino logger sink that can be later used in setRootSink
|
|
64
|
+
*/
|
|
65
|
+
function createPinoSink(pinoLogger) {
|
|
66
|
+
return (rec) => {
|
|
67
|
+
const { level, msg, ...rest } = rec;
|
|
68
|
+
const method = LEVEL_MAP[level] ?? 'info';
|
|
69
|
+
pinoLogger[method](rest, msg);
|
|
70
|
+
};
|
|
71
|
+
}
|
|
53
72
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkBA,kDAEC;AAcD,kCAEC;AASD,oCAEC;AA/
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkBA,kDAEC;AAcD,kCAEC;AASD,oCAEC;AAyBD,wCAOC;AA/ED,mCAAwC;AACxC,qCAAgD;AAChD,uCAAgD;AAChD,2CAA+C;AAG/C,iCAAgC;AAAxB,iGAAA,QAAQ,OAAA;AAChB,2CAAwB;AAGxB;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,EAAyC;IACzE,cAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;AAC/B,CAAC;AAGD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG,CAAC,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAA;AAGxB,IAAI,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,yBAAgB,CAAC,CAAC,CAAC,0BAAmB,CAAA;AAGtE;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAU;IAClC,SAAS,GAAG,IAAI,CAAA;AACpB,CAAC;AAGD,MAAM,IAAI,GAAG,IAAI,eAAM,CACnB,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EACrB,EAAE,CACL,CAAA;AAGD,SAAgB,YAAY,CAAC,EAAU,EAAE,UAAmB;IACxD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;AACrC,CAAC;AAaD,MAAM,SAAS,GAAgC;IAC3C,CAAC,gBAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;IACzB,CAAC,gBAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;IACzB,CAAC,gBAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACvB,CAAC,gBAAQ,CAAC,IAAI,CAAC,EAAE,MAAM;IACvB,CAAC,gBAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;IACzB,CAAC,gBAAQ,CAAC,KAAK,CAAC,EAAE,OAAO;CAC5B,CAAA;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,UAA0B;IACrD,OAAO,CAAC,GAAc,EAAE,EAAE;QACtB,MAAM,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,EAAC,GAAG,GAAG,CAAA;QACjC,MAAM,MAAM,GAAc,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAA;QAEpD,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC,CAAA;AACL,CAAC"}
|
package/lib/level.test.js
CHANGED
|
@@ -4,22 +4,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const assert_1 = __importDefault(require("assert"));
|
|
7
|
+
const vitest_1 = require("vitest");
|
|
7
8
|
const level_1 = require("./level");
|
|
8
9
|
function suite(config, tests) {
|
|
9
10
|
let name = config.map(([level, pattern]) => level_1.LogLevel[level] + '=' + pattern).join('; ');
|
|
10
|
-
describe(name ? 'with ' + name : 'by default', function () {
|
|
11
|
+
(0, vitest_1.describe)(name ? 'with ' + name : 'by default', function () {
|
|
11
12
|
let levels = new level_1.Levels();
|
|
12
13
|
config.forEach(([level, pattern]) => {
|
|
13
14
|
levels.configure(level, pattern);
|
|
14
15
|
});
|
|
15
16
|
tests.forEach(([ns, level]) => {
|
|
16
|
-
it(ns + '=' + level_1.LogLevel[level], () => {
|
|
17
|
+
(0, vitest_1.it)(ns + '=' + level_1.LogLevel[level], () => {
|
|
17
18
|
assert_1.default.strictEqual(levels.get(ns), level);
|
|
18
19
|
});
|
|
19
20
|
});
|
|
20
21
|
});
|
|
21
22
|
}
|
|
22
|
-
describe("levels", function () {
|
|
23
|
+
(0, vitest_1.describe)("levels", function () {
|
|
23
24
|
suite([], [
|
|
24
25
|
['foo', level_1.LogLevel.INFO]
|
|
25
26
|
]);
|
package/lib/level.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"level.test.js","sourceRoot":"","sources":["../src/level.test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA2B;AAC3B,
|
|
1
|
+
{"version":3,"file":"level.test.js","sourceRoot":"","sources":["../src/level.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@subsquid/logger",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "Lightweight library for structured logging",
|
|
5
5
|
"license": "GPL-3.0-or-later",
|
|
6
|
-
"repository": "git@github.com:subsquid/squid.git",
|
|
6
|
+
"repository": "git@github.com:subsquid/squid-sdk.git",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -13,20 +13,18 @@
|
|
|
13
13
|
],
|
|
14
14
|
"main": "lib/index.js",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@subsquid/util-internal-hex": "^1.2.
|
|
16
|
+
"@subsquid/util-internal-hex": "^1.2.3",
|
|
17
17
|
"@subsquid/util-internal-json": "^1.2.3",
|
|
18
18
|
"supports-color": "^8.1.1"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@types/
|
|
22
|
-
"@types/node": "^18.18.14",
|
|
21
|
+
"@types/node": "^24.0.0",
|
|
23
22
|
"@types/supports-color": "^8.1.3",
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"typescript": "5.5.4"
|
|
23
|
+
"typescript": "5.5.4",
|
|
24
|
+
"vitest": "4.1.5"
|
|
27
25
|
},
|
|
28
26
|
"scripts": {
|
|
29
27
|
"build": "rm -rf lib && tsc",
|
|
30
|
-
"test": "
|
|
28
|
+
"test": "vitest --run"
|
|
31
29
|
}
|
|
32
30
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {LEVELS, LogLevel} from './level'
|
|
2
|
-
import {Logger, Sink} from './logger'
|
|
2
|
+
import {Logger, LogRecord, Sink} from './logger'
|
|
3
3
|
import {jsonLinesStderrSink} from './sinks/json'
|
|
4
4
|
import {prettyStderrSink} from './sinks/pretty'
|
|
5
5
|
|
|
@@ -46,3 +46,35 @@ const ROOT = new Logger(
|
|
|
46
46
|
export function createLogger(ns: string, attributes?: object): Logger {
|
|
47
47
|
return ROOT.child(ns, attributes)
|
|
48
48
|
}
|
|
49
|
+
|
|
50
|
+
type PinoLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'
|
|
51
|
+
|
|
52
|
+
export interface PinoLikeLogger {
|
|
53
|
+
trace(obj: unknown, msg?: string): void
|
|
54
|
+
debug(obj: unknown, msg?: string): void
|
|
55
|
+
info(obj: unknown, msg?: string): void
|
|
56
|
+
warn(obj: unknown, msg?: string): void
|
|
57
|
+
error(obj: unknown, msg?: string): void
|
|
58
|
+
fatal(obj: unknown, msg?: string): void
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const LEVEL_MAP: Record<LogLevel, PinoLevel> = {
|
|
62
|
+
[LogLevel.TRACE]: 'trace',
|
|
63
|
+
[LogLevel.DEBUG]: 'debug',
|
|
64
|
+
[LogLevel.INFO]: 'info',
|
|
65
|
+
[LogLevel.WARN]: 'warn',
|
|
66
|
+
[LogLevel.ERROR]: 'error',
|
|
67
|
+
[LogLevel.FATAL]: 'fatal',
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Creates Pino logger sink that can be later used in setRootSink
|
|
72
|
+
*/
|
|
73
|
+
export function createPinoSink(pinoLogger: PinoLikeLogger): Sink {
|
|
74
|
+
return (rec: LogRecord) => {
|
|
75
|
+
const {level, msg, ...rest} = rec
|
|
76
|
+
const method: PinoLevel = LEVEL_MAP[level] ?? 'info'
|
|
77
|
+
|
|
78
|
+
pinoLogger[method](rest, msg)
|
|
79
|
+
}
|
|
80
|
+
}
|
package/src/level.test.ts
CHANGED