@miketako3/cloki 0.1.16 → 0.1.19
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/logger.d.ts +13 -3
- package/dist/logger.test.js +34 -23
- package/dist/logger.test.js.map +1 -1
- package/package.json +40 -42
package/dist/logger.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Loki config
|
|
3
3
|
*/
|
|
4
|
-
type LokiConfig = {
|
|
4
|
+
export type LokiConfig = {
|
|
5
5
|
lokiHost: string;
|
|
6
6
|
lokiToken: string;
|
|
7
7
|
lokiUser: string;
|
|
@@ -9,9 +9,20 @@ type LokiConfig = {
|
|
|
9
9
|
/**
|
|
10
10
|
* Loki labels
|
|
11
11
|
*/
|
|
12
|
-
type LokiLabels = {
|
|
12
|
+
export type LokiLabels = {
|
|
13
13
|
[key: string]: string;
|
|
14
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* Loki message
|
|
17
|
+
*/
|
|
18
|
+
export type LokiMessage = {
|
|
19
|
+
streams: [
|
|
20
|
+
{
|
|
21
|
+
stream: LokiLabels;
|
|
22
|
+
values: [string[]];
|
|
23
|
+
}
|
|
24
|
+
];
|
|
25
|
+
};
|
|
15
26
|
/**
|
|
16
27
|
* Create a Loki logger
|
|
17
28
|
* logger has some async logging methods like info, error, warn, etc.
|
|
@@ -24,4 +35,3 @@ export declare const getLokiLogger: (config: LokiConfig) => {
|
|
|
24
35
|
error: (message: object, labels?: LokiLabels) => Promise<void>;
|
|
25
36
|
debug: (message: object, labels?: LokiLabels) => Promise<void>;
|
|
26
37
|
};
|
|
27
|
-
export {};
|
package/dist/logger.test.js
CHANGED
|
@@ -9,61 +9,72 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const vitest_1 = require("vitest");
|
|
12
13
|
const logger_1 = require("./logger"); // Adjust the import path as necessary
|
|
13
|
-
global.fetch =
|
|
14
|
+
global.fetch = vitest_1.vi.fn(() => Promise.resolve({
|
|
14
15
|
ok: true,
|
|
15
16
|
}));
|
|
16
|
-
Date.now =
|
|
17
|
-
describe("Loki Logger", () => {
|
|
17
|
+
Date.now = vitest_1.vi.fn(() => 1482363367071);
|
|
18
|
+
(0, vitest_1.describe)("Loki Logger", () => {
|
|
18
19
|
const mockConfig = {
|
|
19
20
|
lokiHost: "testhost",
|
|
20
21
|
lokiToken: "token123",
|
|
21
22
|
lokiUser: "user",
|
|
22
23
|
};
|
|
23
|
-
beforeEach(() => {
|
|
24
|
-
|
|
24
|
+
(0, vitest_1.beforeEach)(() => {
|
|
25
|
+
vitest_1.vi.clearAllMocks();
|
|
25
26
|
});
|
|
26
|
-
it("should create a logger with the correct methods", () => {
|
|
27
|
+
(0, vitest_1.it)("should create a logger with the correct methods", () => {
|
|
27
28
|
const logger = (0, logger_1.getLokiLogger)(mockConfig);
|
|
28
|
-
expect(logger).toHaveProperty("info");
|
|
29
|
-
expect(logger).toHaveProperty("warn");
|
|
30
|
-
expect(logger).toHaveProperty("error");
|
|
31
|
-
expect(logger).toHaveProperty("debug");
|
|
29
|
+
(0, vitest_1.expect)(logger).toHaveProperty("info");
|
|
30
|
+
(0, vitest_1.expect)(logger).toHaveProperty("warn");
|
|
31
|
+
(0, vitest_1.expect)(logger).toHaveProperty("error");
|
|
32
|
+
(0, vitest_1.expect)(logger).toHaveProperty("debug");
|
|
32
33
|
});
|
|
33
|
-
describe("Logging Methods", () => {
|
|
34
|
-
it.each([
|
|
34
|
+
(0, vitest_1.describe)("Logging Methods", () => {
|
|
35
|
+
vitest_1.it.each([
|
|
36
|
+
"info",
|
|
37
|
+
"warn",
|
|
38
|
+
"error",
|
|
39
|
+
"debug",
|
|
40
|
+
])("should call log for %s method", (method) => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
41
|
const logger = (0, logger_1.getLokiLogger)(mockConfig);
|
|
36
42
|
const mockMessage = { test: "message" };
|
|
37
|
-
const consoleSpy =
|
|
43
|
+
const consoleSpy = vitest_1.vi.spyOn(console, "log").mockImplementation(() => { });
|
|
38
44
|
yield logger[method](mockMessage);
|
|
39
|
-
expect(consoleSpy).toHaveBeenCalledWith(JSON.stringify(mockMessage));
|
|
40
|
-
expect(fetch).toHaveBeenCalledTimes(1);
|
|
41
|
-
expect(fetch).toHaveBeenCalledWith("https://testhost/loki/api/v1/push", {
|
|
45
|
+
(0, vitest_1.expect)(consoleSpy).toHaveBeenCalledWith(JSON.stringify(mockMessage));
|
|
46
|
+
(0, vitest_1.expect)(fetch).toHaveBeenCalledTimes(1);
|
|
47
|
+
(0, vitest_1.expect)(fetch).toHaveBeenCalledWith("https://testhost/loki/api/v1/push", {
|
|
42
48
|
method: "POST",
|
|
43
49
|
headers: {
|
|
44
50
|
"Content-Type": "application/json",
|
|
45
51
|
Authorization: `Basic ${btoa("user:token123")}`,
|
|
46
52
|
},
|
|
47
|
-
body: `{
|
|
53
|
+
body: `{"streams":[{"stream":{"level":"${method}"},"values":[["1482363367071000000","{\\"test\\":\\"message\\"}"]]}]}`,
|
|
48
54
|
});
|
|
49
55
|
// Reset the spy
|
|
50
56
|
consoleSpy.mockRestore();
|
|
51
57
|
}));
|
|
52
|
-
it.each([
|
|
58
|
+
vitest_1.it.each([
|
|
59
|
+
"info",
|
|
60
|
+
"warn",
|
|
61
|
+
"error",
|
|
62
|
+
"debug",
|
|
63
|
+
])("should call log for %s method with some labels", (method) => __awaiter(void 0, void 0, void 0, function* () {
|
|
53
64
|
const logger = (0, logger_1.getLokiLogger)(mockConfig);
|
|
54
65
|
const mockMessage = { test: "message" };
|
|
55
66
|
const mockLabels = { hoge: "huga" };
|
|
56
|
-
const consoleSpy =
|
|
67
|
+
const consoleSpy = vitest_1.vi.spyOn(console, "log").mockImplementation(() => { });
|
|
57
68
|
yield logger[method](mockMessage, mockLabels);
|
|
58
|
-
expect(consoleSpy).toHaveBeenCalledWith(JSON.stringify(mockMessage));
|
|
59
|
-
expect(fetch).toHaveBeenCalledTimes(1);
|
|
60
|
-
expect(fetch).toHaveBeenCalledWith("https://testhost/loki/api/v1/push", {
|
|
69
|
+
(0, vitest_1.expect)(consoleSpy).toHaveBeenCalledWith(JSON.stringify(mockMessage));
|
|
70
|
+
(0, vitest_1.expect)(fetch).toHaveBeenCalledTimes(1);
|
|
71
|
+
(0, vitest_1.expect)(fetch).toHaveBeenCalledWith("https://testhost/loki/api/v1/push", {
|
|
61
72
|
method: "POST",
|
|
62
73
|
headers: {
|
|
63
74
|
"Content-Type": "application/json",
|
|
64
75
|
Authorization: `Basic ${btoa("user:token123")}`,
|
|
65
76
|
},
|
|
66
|
-
body: `{
|
|
77
|
+
body: `{"streams":[{"stream":{"level":"${method}","hoge":"huga"},"values":[["1482363367071000000","{\\"test\\":\\"message\\"}"]]}]}`,
|
|
67
78
|
});
|
|
68
79
|
// Reset the spy
|
|
69
80
|
consoleSpy.mockRestore();
|
package/dist/logger.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../src/logger.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,qCAAyC,CAAC,sCAAsC;AAEhF,MAAM,CAAC,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"logger.test.js","sourceRoot":"","sources":["../src/logger.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,44 +1,42 @@
|
|
|
1
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
|
-
"jest": "^29.7.0"
|
|
43
|
-
}
|
|
2
|
+
"name": "@miketako3/cloki",
|
|
3
|
+
"version": "0.1.19",
|
|
4
|
+
"description": "cloki is zero dependency and simple logger library for Loki and Cloudflare Workers.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist"
|
|
8
|
+
],
|
|
9
|
+
"publishConfig": {
|
|
10
|
+
"access": "public"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"format": "bunx @biomejs/biome check . --write",
|
|
15
|
+
"lint": "bunx @biomejs/biome check .",
|
|
16
|
+
"test": "vitest run"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/miketako3/cloki.git"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"cloudflare",
|
|
24
|
+
"workers",
|
|
25
|
+
"loki",
|
|
26
|
+
"grafana",
|
|
27
|
+
"logger",
|
|
28
|
+
"logging"
|
|
29
|
+
],
|
|
30
|
+
"author": "miketako3 (Kaito Hiruta)",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"bugs": {
|
|
33
|
+
"url": "https://github.com/miketako3/cloki/issues"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://github.com/miketako3/cloki#readme",
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@biomejs/biome": "^2.3.10",
|
|
38
|
+
"@types/node": "^20.11.5",
|
|
39
|
+
"typescript": "^5.3.3",
|
|
40
|
+
"vitest": "^4.0.16"
|
|
41
|
+
}
|
|
44
42
|
}
|