@emartech/json-logger 7.1.0 → 7.2.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/.github/workflows/dev.yml +20 -0
- package/.github/workflows/{main.yml → release.yml} +1 -1
- package/README.md +1 -0
- package/dist/enabled/enabled.d.ts +1 -1
- package/dist/enabled/enabled.js +5 -5
- package/dist/formatter/index.d.ts +2 -4
- package/dist/formatter/index.js +1 -1
- package/dist/formatter/json.d.ts +1 -1
- package/dist/formatter/json.js +2 -2
- package/dist/formatter/logentries.d.ts +1 -1
- package/dist/formatter/logentries.js +4 -5
- package/dist/index.d.ts +2 -2
- package/dist/logger/logger.d.ts +2 -2
- package/dist/logger/logger.js +7 -11
- package/dist/output/console.d.ts +1 -1
- package/dist/output/console.js +2 -2
- package/package.json +20 -9
- package/tsconfig.json +3 -3
- package/.eslintrc +0 -25
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: Development
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ '*', '*/*', '**', '!master', '!main' ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ master, main ]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
init:
|
|
11
|
+
name: Init
|
|
12
|
+
uses: ./.github/workflows/_init.yml
|
|
13
|
+
|
|
14
|
+
test:
|
|
15
|
+
name: Test
|
|
16
|
+
uses: ./.github/workflows/_test.yml
|
|
17
|
+
needs: [ init ]
|
|
18
|
+
with:
|
|
19
|
+
NODE_VERSION: ${{ needs.init.outputs.NODE_VERSION }}
|
|
20
|
+
NODE_CACHE_KEY: ${{ needs.init.outputs.NODE_CACHE_KEY }}
|
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare const isNamespaceEnabled: (availableNamespace: string, namespace: string) => boolean;
|
package/dist/enabled/enabled.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isNamespaceEnabled = void 0;
|
|
4
|
-
|
|
4
|
+
const isNamespaceEnabled = (availableNamespace, namespace) => {
|
|
5
5
|
const availableNamespaces = availableNamespace.split(/[\s,]+/);
|
|
6
6
|
let enabled = false;
|
|
7
7
|
const adds = [];
|
|
8
8
|
const skips = [];
|
|
9
|
-
availableNamespaces.forEach(
|
|
9
|
+
availableNamespaces.forEach((name) => {
|
|
10
10
|
if (!name) {
|
|
11
11
|
return;
|
|
12
12
|
}
|
|
@@ -18,16 +18,16 @@ function isNamespaceEnabled(availableNamespace, namespace) {
|
|
|
18
18
|
adds.push(new RegExp('^' + name + '$'));
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
-
adds.forEach(
|
|
21
|
+
adds.forEach((addRegexp) => {
|
|
22
22
|
if (addRegexp.test(namespace)) {
|
|
23
23
|
enabled = true;
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
|
-
skips.forEach(
|
|
26
|
+
skips.forEach((addRegexp) => {
|
|
27
27
|
if (addRegexp.test(namespace)) {
|
|
28
28
|
enabled = false;
|
|
29
29
|
}
|
|
30
30
|
});
|
|
31
31
|
return enabled;
|
|
32
|
-
}
|
|
32
|
+
};
|
|
33
33
|
exports.isNamespaceEnabled = isNamespaceEnabled;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { jsonFormatter } from './json';
|
|
2
|
-
import { logentriesFormatter } from './logentries';
|
|
3
1
|
export declare const formatter: {
|
|
4
|
-
json:
|
|
5
|
-
logentries:
|
|
2
|
+
json: (log: unknown) => string;
|
|
3
|
+
logentries: (data: Record<string, unknown>) => string;
|
|
6
4
|
};
|
package/dist/formatter/index.js
CHANGED
package/dist/formatter/json.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare const jsonFormatter: (log: unknown) => string;
|
package/dist/formatter/json.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare const logentriesFormatter: (data: Record<string, unknown>) => string;
|
|
@@ -15,10 +15,9 @@ const convertToTag = (value, key) => {
|
|
|
15
15
|
}
|
|
16
16
|
return key + '=' + value;
|
|
17
17
|
};
|
|
18
|
-
|
|
19
|
-
return Object
|
|
20
|
-
.
|
|
21
|
-
.map(key => convertToTag(data[key], key))
|
|
18
|
+
const logentriesFormatter = (data) => {
|
|
19
|
+
return Object.keys(data)
|
|
20
|
+
.map((key) => convertToTag(data[key], key))
|
|
22
21
|
.join(' ');
|
|
23
|
-
}
|
|
22
|
+
};
|
|
24
23
|
exports.logentriesFormatter = logentriesFormatter;
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare namespace createLogger {
|
|
|
6
6
|
var getNamespaces: () => string;
|
|
7
7
|
var configure: (options: LoggerConfig) => void;
|
|
8
8
|
var formatter: {
|
|
9
|
-
json:
|
|
10
|
-
logentries:
|
|
9
|
+
json: (log: unknown) => string;
|
|
10
|
+
logentries: (data: Record<string, unknown>) => string;
|
|
11
11
|
};
|
|
12
12
|
}
|
package/dist/logger/logger.d.ts
CHANGED
|
@@ -20,8 +20,8 @@ export declare class Logger {
|
|
|
20
20
|
_namespace: string;
|
|
21
21
|
_enabled: boolean;
|
|
22
22
|
constructor(namespace: string, enabled: boolean);
|
|
23
|
-
static configure(options: LoggerConfig): void;
|
|
24
|
-
static _validate(options: LoggerConfig): void;
|
|
23
|
+
static configure(options: Partial<LoggerConfig>): void;
|
|
24
|
+
static _validate(options: Partial<LoggerConfig>): void;
|
|
25
25
|
static config: LoggerConfig;
|
|
26
26
|
isEnabled(): boolean;
|
|
27
27
|
trace(action: string, data?: unknown): void;
|
package/dist/logger/logger.js
CHANGED
|
@@ -18,7 +18,7 @@ class Logger {
|
|
|
18
18
|
Object.assign(Logger.config, options);
|
|
19
19
|
}
|
|
20
20
|
static _validate(options) {
|
|
21
|
-
Object.keys(options).forEach(key => {
|
|
21
|
+
Object.keys(options).forEach((key) => {
|
|
22
22
|
if (!allowedKeys.includes(key)) {
|
|
23
23
|
throw new Error('Only the following keys are allowed: formatter, output');
|
|
24
24
|
}
|
|
@@ -53,7 +53,7 @@ class Logger {
|
|
|
53
53
|
name: this._namespace,
|
|
54
54
|
action: action,
|
|
55
55
|
level: config_1.config.levels[level].number,
|
|
56
|
-
time: new Date().toISOString()
|
|
56
|
+
time: new Date().toISOString(),
|
|
57
57
|
}, data);
|
|
58
58
|
Logger.config.transformers.forEach((transform) => {
|
|
59
59
|
dataToLog = transform(dataToLog);
|
|
@@ -76,18 +76,14 @@ class Logger {
|
|
|
76
76
|
if (!stack) {
|
|
77
77
|
return;
|
|
78
78
|
}
|
|
79
|
-
return stack.length > STACK_TRACE_LIMIT ?
|
|
80
|
-
stack.substring(0, STACK_TRACE_LIMIT) + ' ...' :
|
|
81
|
-
stack;
|
|
79
|
+
return stack.length > STACK_TRACE_LIMIT ? stack.substring(0, STACK_TRACE_LIMIT) + ' ...' : stack;
|
|
82
80
|
}
|
|
83
81
|
_shortenData(data) {
|
|
84
82
|
if (typeof data === 'undefined') {
|
|
85
83
|
return;
|
|
86
84
|
}
|
|
87
85
|
const stringifiedData = typeof data === 'object' ? JSON.stringify(data) : data;
|
|
88
|
-
return stringifiedData.length > DATA_LIMIT ?
|
|
89
|
-
stringifiedData.substring(0, DATA_LIMIT) + ' ...' :
|
|
90
|
-
stringifiedData;
|
|
86
|
+
return stringifiedData.length > DATA_LIMIT ? stringifiedData.substring(0, DATA_LIMIT) + ' ...' : stringifiedData;
|
|
91
87
|
}
|
|
92
88
|
_getErrorDetails(error) {
|
|
93
89
|
if (!(error instanceof Object)) {
|
|
@@ -97,7 +93,7 @@ class Logger {
|
|
|
97
93
|
error_name: error.name,
|
|
98
94
|
error_stack: this._shortenStackTrace(error.stack || ''),
|
|
99
95
|
error_message: error.message,
|
|
100
|
-
error_data: this._shortenData(error.data)
|
|
96
|
+
error_data: this._shortenData(error.data),
|
|
101
97
|
};
|
|
102
98
|
return Object.assign(baseDetails, this._getAxiosErrorDetails(error));
|
|
103
99
|
}
|
|
@@ -110,7 +106,7 @@ class Logger {
|
|
|
110
106
|
request_url: error.config.url,
|
|
111
107
|
response_status: error.response ? error.response.status : undefined,
|
|
112
108
|
response_status_text: error.response ? error.response.statusText : undefined,
|
|
113
|
-
response_data: error.response ? this._shortenData(error.response.data) : undefined
|
|
109
|
+
response_data: error.response ? this._shortenData(error.response.data) : undefined,
|
|
114
110
|
};
|
|
115
111
|
}
|
|
116
112
|
}
|
|
@@ -118,5 +114,5 @@ exports.Logger = Logger;
|
|
|
118
114
|
Logger.config = {
|
|
119
115
|
formatter: json_1.jsonFormatter,
|
|
120
116
|
output: console_1.consoleOutput,
|
|
121
|
-
transformers: []
|
|
117
|
+
transformers: [],
|
|
122
118
|
};
|
package/dist/output/console.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare const consoleOutput: (formattedLog: unknown) => void;
|
package/dist/output/console.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.consoleOutput = void 0;
|
|
4
|
-
|
|
4
|
+
const consoleOutput = (formattedLog) => {
|
|
5
5
|
console.log(formattedLog);
|
|
6
|
-
}
|
|
6
|
+
};
|
|
7
7
|
exports.consoleOutput = consoleOutput;
|
package/package.json
CHANGED
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
"description": "Tiny and fast json logger with namespace support",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
|
-
"test": "mocha --require ts-node/register ./src --recursive",
|
|
7
|
-
"test:watch": "mocha --require ts-node/register ./src --recursive --watch",
|
|
8
|
-
"lint": "eslint ./src/**/*.
|
|
6
|
+
"test": "mocha --require ts-node/register --extension ts ./src --recursive",
|
|
7
|
+
"test:watch": "mocha --require ts-node/register --extension ts ./src --recursive --watch",
|
|
8
|
+
"lint": "eslint ./src/**/*.ts",
|
|
9
|
+
"lint:fix": "eslint ./src/**/*.ts --fix",
|
|
9
10
|
"build": "rm -rf dist && tsc --project ./tsconfig.json",
|
|
10
11
|
"release": "CI=true semantic-release",
|
|
11
12
|
"example-js": "DEBUG=* node examples/index-js.js",
|
|
@@ -25,21 +26,31 @@
|
|
|
25
26
|
"debug",
|
|
26
27
|
"json"
|
|
27
28
|
],
|
|
28
|
-
"dependencies": {},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@types/
|
|
31
|
-
"@
|
|
30
|
+
"@types/chai": "4.3.3",
|
|
31
|
+
"@types/mocha": "10.0.0",
|
|
32
|
+
"@types/node": "18.7.23",
|
|
33
|
+
"@types/sinon": "10.0.13",
|
|
34
|
+
"@types/sinon-chai": "3.2.8",
|
|
35
|
+
"@typescript-eslint/eslint-plugin": "5.38.1",
|
|
36
|
+
"@typescript-eslint/parser": "5.38.1",
|
|
37
|
+
"axios": "0.27.2",
|
|
32
38
|
"chai": "4.3.6",
|
|
33
|
-
"eslint": "8.
|
|
39
|
+
"eslint": "8.24.0",
|
|
34
40
|
"eslint-config-emarsys": "5.1.0",
|
|
41
|
+
"eslint-config-prettier": "8.5.0",
|
|
35
42
|
"eslint-plugin-no-only-tests": "3.0.0",
|
|
43
|
+
"eslint-plugin-prettier": "4.2.1",
|
|
36
44
|
"eslint-plugin-security": "1.5.0",
|
|
45
|
+
"install": "0.13.0",
|
|
37
46
|
"mocha": "10.0.0",
|
|
47
|
+
"npm": "8.19.2",
|
|
48
|
+
"prettier": "2.7.1",
|
|
38
49
|
"semantic-release": "19.0.5",
|
|
39
50
|
"sinon": "14.0.0",
|
|
40
51
|
"sinon-chai": "3.7.0",
|
|
41
52
|
"ts-node": "10.9.1",
|
|
42
|
-
"typescript": "4.8.
|
|
53
|
+
"typescript": "4.8.4"
|
|
43
54
|
},
|
|
44
55
|
"repository": {
|
|
45
56
|
"type": "git",
|
|
@@ -49,5 +60,5 @@
|
|
|
49
60
|
"url": "https://github.com/emartech/json-logger-js/issues"
|
|
50
61
|
},
|
|
51
62
|
"homepage": "https://github.com/emartech/json-logger-js#readme",
|
|
52
|
-
"version": "7.
|
|
63
|
+
"version": "7.2.0"
|
|
53
64
|
}
|
package/tsconfig.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"exclude": ["dist", "node_modules"
|
|
3
|
-
"include": ["src/**/*.ts"
|
|
2
|
+
"exclude": ["dist", "node_modules"],
|
|
3
|
+
"include": ["src/**/*.ts"],
|
|
4
4
|
"compilerOptions": {
|
|
5
5
|
/* Visit https://aka.ms/tsconfig to read more about this file */
|
|
6
6
|
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
|
|
42
42
|
|
|
43
43
|
/* JavaScript Support */
|
|
44
|
-
"allowJs":
|
|
44
|
+
"allowJs": false, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
|
|
45
45
|
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
|
|
46
46
|
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
|
|
47
47
|
|
package/.eslintrc
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"env": {
|
|
3
|
-
"node": true,
|
|
4
|
-
"mocha": true,
|
|
5
|
-
"es6": true
|
|
6
|
-
},
|
|
7
|
-
"parser": "@typescript-eslint/parser",
|
|
8
|
-
"parserOptions": {
|
|
9
|
-
"ecmaFeatures": {
|
|
10
|
-
"impliedStrict": true
|
|
11
|
-
}
|
|
12
|
-
},
|
|
13
|
-
"globals": {
|
|
14
|
-
"expect": true
|
|
15
|
-
},
|
|
16
|
-
"rules": {
|
|
17
|
-
"security/detect-object-injection": 0,
|
|
18
|
-
"security/detect-non-literal-regexp": 0,
|
|
19
|
-
"no-unused-expressions": 0,
|
|
20
|
-
"func-style": 0
|
|
21
|
-
},
|
|
22
|
-
"extends": [
|
|
23
|
-
"emarsys"
|
|
24
|
-
]
|
|
25
|
-
}
|