@trenskow/log 1.1.6 → 2.0.2
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/.vscode/settings.json +5 -0
- package/README.md +2 -2
- package/index.js +45 -15
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ Just a simple function which lets you log JSON to the console.
|
|
|
8
8
|
````javascript
|
|
9
9
|
const log = require('@trenskow/log');
|
|
10
10
|
|
|
11
|
-
log('info',
|
|
11
|
+
await log('info', {
|
|
12
12
|
state: 'running',
|
|
13
13
|
port: process.env.PORT
|
|
14
14
|
});
|
|
@@ -17,7 +17,7 @@ log('info', 'server', {
|
|
|
17
17
|
This will output to stdout.
|
|
18
18
|
|
|
19
19
|
````json
|
|
20
|
-
{"time":"2020-01-23T10:16:55.289Z","
|
|
20
|
+
{"time":"2020-01-23T10:16:55.289Z","level":"info","state":"running","port":3000}
|
|
21
21
|
````
|
|
22
22
|
|
|
23
23
|
## Debugging
|
package/index.js
CHANGED
|
@@ -1,28 +1,58 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
const
|
|
4
|
+
{ promises: { appendFile } } = require('fs');
|
|
5
|
+
|
|
3
6
|
const
|
|
4
7
|
objectMap = require('@trenskow/object-map'),
|
|
5
|
-
|
|
8
|
+
merge = require('merge');
|
|
6
9
|
|
|
7
10
|
const transform = (value) => {
|
|
8
11
|
if (Array.isArray(value)) return value.map(transform);
|
|
9
|
-
if (
|
|
10
|
-
if (
|
|
12
|
+
if (typeof value === 'object' && value !== null) return objectMap.values(value, (_, value) => transform(value));
|
|
13
|
+
if (typeof value === 'string') return value.replace(/(auth|app|password|secret|api-key|authorization-token)=.*?(&|$)/ig, '$1=🤫$2');
|
|
11
14
|
return value;
|
|
12
15
|
};
|
|
13
16
|
|
|
14
|
-
exports = module.exports = (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
exports = module.exports = async (level = 'info', message) => {
|
|
18
|
+
|
|
19
|
+
if (typeof level === 'object' && typeof message === 'undefined') {
|
|
20
|
+
message = level;
|
|
21
|
+
level = 'info';
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const log = merge({ level }, transform(message));
|
|
25
|
+
|
|
26
|
+
let data;
|
|
27
|
+
|
|
28
|
+
switch (process.env.LOG_STYLE) {
|
|
29
|
+
case 'pretty':
|
|
30
|
+
data = JSON.stringify(log, null, parseInt(process.env.LOG_STYLE_PRETTY_INDENTATION_WIDTH) || 4);
|
|
31
|
+
break;
|
|
32
|
+
default:
|
|
33
|
+
data = JSON.stringify(log);
|
|
34
|
+
break;
|
|
19
35
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
36
|
+
|
|
37
|
+
data = `${data}\n`;
|
|
38
|
+
|
|
39
|
+
const output = process.env.LOG_OUTPUT || 'stdout';
|
|
40
|
+
|
|
41
|
+
switch (output) {
|
|
42
|
+
case 'stdout':
|
|
43
|
+
case 'stderr':
|
|
44
|
+
await new Promise((resolve, reject) => {
|
|
45
|
+
process[output].write(data, (err) => {
|
|
46
|
+
if (err) return reject(err);
|
|
47
|
+
resolve();
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
break;
|
|
51
|
+
default:
|
|
52
|
+
await appendFile(process.env.LOG_OUTPUT, data);
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
|
|
27
56
|
return log;
|
|
57
|
+
|
|
28
58
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trenskow/log",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Simple JSON log function.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
},
|
|
22
22
|
"homepage": "https://github.com/trenskow/log#readme",
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"eslint": "^
|
|
24
|
+
"eslint": "^8.13.0"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@trenskow/object-map": "^0.1.0",
|
|
28
|
-
"
|
|
28
|
+
"merge": "^2.1.1"
|
|
29
29
|
}
|
|
30
30
|
}
|