@niceties/draftlog-appender 1.0.4 → 1.1.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/dist/core.cjs +22 -8
- package/dist/core.mjs +22 -8
- package/dist/details/model.d.ts +3 -0
- package/dist/index.cjs +8 -4
- package/dist/index.mjs +8 -4
- package/package.json +7 -4
package/dist/core.cjs
CHANGED
|
@@ -21,7 +21,7 @@ function createCanvas(spinner, formatter, ident) {
|
|
|
21
21
|
if (!model.items_.length) {
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
|
-
let key = 0;
|
|
24
|
+
let key = 0, dirty = false;
|
|
25
25
|
const stack = [[...model.items_]];
|
|
26
26
|
while (stack.length) {
|
|
27
27
|
const item = stack[stack.length - 1].shift();
|
|
@@ -30,8 +30,21 @@ function createCanvas(spinner, formatter, ident) {
|
|
|
30
30
|
updater = console.draft(' ');
|
|
31
31
|
updaters.push(updater);
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
if (dirty || item.dirty_ || item.status_) {
|
|
34
|
+
const prefix = getPrefix(item.status_, model.tick_);
|
|
35
|
+
updater(formatter({
|
|
36
|
+
loglevel: item.loglevel_,
|
|
37
|
+
message: item.text_,
|
|
38
|
+
context: item.context_,
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
|
+
action: (item.status_ === undefined ? 3 /* log */ : undefined),
|
|
41
|
+
tag: item.tag_
|
|
42
|
+
}, prefix, ident * (stack.length - 1)));
|
|
43
|
+
if (item.dirty_) {
|
|
44
|
+
item.dirty_ = false;
|
|
45
|
+
dirty = true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
35
48
|
// iterate
|
|
36
49
|
++key;
|
|
37
50
|
if (item.children_.length) {
|
|
@@ -42,9 +55,9 @@ function createCanvas(spinner, formatter, ident) {
|
|
|
42
55
|
}
|
|
43
56
|
}
|
|
44
57
|
};
|
|
45
|
-
function
|
|
58
|
+
function getPrefix(status, tick) {
|
|
46
59
|
// status is truthy when it is inprogress
|
|
47
|
-
const prefix = status ?
|
|
60
|
+
const prefix = status ? spinner.frames[tick] :
|
|
48
61
|
// status not null when it is finished
|
|
49
62
|
status != null;
|
|
50
63
|
return prefix;
|
|
@@ -59,9 +72,9 @@ function createModel(logAboveSpinners) {
|
|
|
59
72
|
items_: []
|
|
60
73
|
};
|
|
61
74
|
const itemById = Object.create(null);
|
|
62
|
-
return [({ message: text, inputId, action, loglevel, ref, parentId }) => {
|
|
75
|
+
return [({ message: text, inputId, action, loglevel, ref, parentId, context, tag }) => {
|
|
63
76
|
// item has status undefined, so it is static by default
|
|
64
|
-
const item = { text_: text, loglevel_: loglevel, ref_: ref, parentId_: parentId, children_: [] };
|
|
77
|
+
const item = { text_: text, loglevel_: loglevel, ref_: ref, parentId_: parentId, children_: [], dirty_: true, context_: context, tag_: tag };
|
|
65
78
|
if (action === 0 /* start */) {
|
|
66
79
|
item.status_ = 1 /* inprogress */;
|
|
67
80
|
}
|
|
@@ -69,7 +82,7 @@ function createModel(logAboveSpinners) {
|
|
|
69
82
|
item.status_ = 0 /* finished */;
|
|
70
83
|
}
|
|
71
84
|
if (action !== 3 /* log */) {
|
|
72
|
-
// if status still empty in the original item
|
|
85
|
+
// if status still empty in the original item or item does not exists it will remain empty and static
|
|
73
86
|
updateModel(inputId, item);
|
|
74
87
|
}
|
|
75
88
|
cleanupModel();
|
|
@@ -107,6 +120,7 @@ function createModel(logAboveSpinners) {
|
|
|
107
120
|
if (moveIntoParent) {
|
|
108
121
|
model.items_ = model.items_.filter(item => item !== modelItem);
|
|
109
122
|
model.spinning_ -= (modelItem.status_ || 0);
|
|
123
|
+
modelItem.dirty_ = true;
|
|
110
124
|
putIntoChildren(modelItem.parentId_, modelItem);
|
|
111
125
|
}
|
|
112
126
|
}
|
package/dist/core.mjs
CHANGED
|
@@ -13,7 +13,7 @@ function createCanvas(spinner, formatter, ident) {
|
|
|
13
13
|
if (!model.items_.length) {
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
|
-
let key = 0;
|
|
16
|
+
let key = 0, dirty = false;
|
|
17
17
|
const stack = [[...model.items_]];
|
|
18
18
|
while (stack.length) {
|
|
19
19
|
const item = stack[stack.length - 1].shift();
|
|
@@ -22,8 +22,21 @@ function createCanvas(spinner, formatter, ident) {
|
|
|
22
22
|
updater = console.draft(' ');
|
|
23
23
|
updaters.push(updater);
|
|
24
24
|
}
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
if (dirty || item.dirty_ || item.status_) {
|
|
26
|
+
const prefix = getPrefix(item.status_, model.tick_);
|
|
27
|
+
updater(formatter({
|
|
28
|
+
loglevel: item.loglevel_,
|
|
29
|
+
message: item.text_,
|
|
30
|
+
context: item.context_,
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
|
+
action: (item.status_ === undefined ? 3 /* log */ : undefined),
|
|
33
|
+
tag: item.tag_
|
|
34
|
+
}, prefix, ident * (stack.length - 1)));
|
|
35
|
+
if (item.dirty_) {
|
|
36
|
+
item.dirty_ = false;
|
|
37
|
+
dirty = true;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
27
40
|
// iterate
|
|
28
41
|
++key;
|
|
29
42
|
if (item.children_.length) {
|
|
@@ -34,9 +47,9 @@ function createCanvas(spinner, formatter, ident) {
|
|
|
34
47
|
}
|
|
35
48
|
}
|
|
36
49
|
};
|
|
37
|
-
function
|
|
50
|
+
function getPrefix(status, tick) {
|
|
38
51
|
// status is truthy when it is inprogress
|
|
39
|
-
const prefix = status ?
|
|
52
|
+
const prefix = status ? spinner.frames[tick] :
|
|
40
53
|
// status not null when it is finished
|
|
41
54
|
status != null;
|
|
42
55
|
return prefix;
|
|
@@ -51,9 +64,9 @@ function createModel(logAboveSpinners) {
|
|
|
51
64
|
items_: []
|
|
52
65
|
};
|
|
53
66
|
const itemById = Object.create(null);
|
|
54
|
-
return [({ message: text, inputId, action, loglevel, ref, parentId }) => {
|
|
67
|
+
return [({ message: text, inputId, action, loglevel, ref, parentId, context, tag }) => {
|
|
55
68
|
// item has status undefined, so it is static by default
|
|
56
|
-
const item = { text_: text, loglevel_: loglevel, ref_: ref, parentId_: parentId, children_: [] };
|
|
69
|
+
const item = { text_: text, loglevel_: loglevel, ref_: ref, parentId_: parentId, children_: [], dirty_: true, context_: context, tag_: tag };
|
|
57
70
|
if (action === 0 /* start */) {
|
|
58
71
|
item.status_ = 1 /* inprogress */;
|
|
59
72
|
}
|
|
@@ -61,7 +74,7 @@ function createModel(logAboveSpinners) {
|
|
|
61
74
|
item.status_ = 0 /* finished */;
|
|
62
75
|
}
|
|
63
76
|
if (action !== 3 /* log */) {
|
|
64
|
-
// if status still empty in the original item
|
|
77
|
+
// if status still empty in the original item or item does not exists it will remain empty and static
|
|
65
78
|
updateModel(inputId, item);
|
|
66
79
|
}
|
|
67
80
|
cleanupModel();
|
|
@@ -99,6 +112,7 @@ function createModel(logAboveSpinners) {
|
|
|
99
112
|
if (moveIntoParent) {
|
|
100
113
|
model.items_ = model.items_.filter(item => item !== modelItem);
|
|
101
114
|
model.spinning_ -= (modelItem.status_ || 0);
|
|
115
|
+
modelItem.dirty_ = true;
|
|
102
116
|
putIntoChildren(modelItem.parentId_, modelItem);
|
|
103
117
|
}
|
|
104
118
|
}
|
package/dist/details/model.d.ts
CHANGED
|
@@ -10,8 +10,11 @@ export interface ModelItem {
|
|
|
10
10
|
loglevel_: LogLevel;
|
|
11
11
|
ref_?: WeakRef<never>;
|
|
12
12
|
parentId_?: number;
|
|
13
|
+
tag_?: string;
|
|
13
14
|
next_?: ModelItem;
|
|
14
15
|
children_: ModelItem[];
|
|
16
|
+
dirty_?: boolean;
|
|
17
|
+
context_?: any;
|
|
15
18
|
}
|
|
16
19
|
export declare type Model = {
|
|
17
20
|
items_: ModelItem[];
|
package/dist/index.cjs
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var appenderUtils = require('@niceties/logger/appender-utils');
|
|
4
|
+
var globalAppender = require('@niceties/logger/global-appender');
|
|
4
5
|
var formatUtils = require('@niceties/logger/format-utils');
|
|
5
6
|
var defaultFormatting = require('@niceties/logger/default-formatting');
|
|
6
|
-
var core
|
|
7
|
+
var core = require('./core.cjs');
|
|
7
8
|
var spinners = require('./spinners.cjs');
|
|
8
9
|
require('draftlog');
|
|
9
10
|
|
|
10
11
|
const supportsUnicode = formatUtils.terminalSupportsUnicode();
|
|
11
12
|
const spinner = supportsUnicode ? spinners.dots : spinners.line;
|
|
12
|
-
const formatter = formatUtils.createFormatter(defaultFormatting.colors, supportsUnicode ? defaultFormatting.unicodePrefixes : defaultFormatting.asciiPrefixes);
|
|
13
|
-
|
|
13
|
+
const formatter = formatUtils.createFormatter(defaultFormatting.colors, supportsUnicode ? defaultFormatting.unicodePrefixes : defaultFormatting.asciiPrefixes, defaultFormatting.tagFactory);
|
|
14
|
+
let minLogLevel = 1 /* info */;
|
|
15
|
+
globalAppender.appender(appenderUtils.filterMessages((message) => message.loglevel >= minLogLevel || message.action !== 3 /* log */, core.createDraftlogAppender(spinner, formatter, false, 2), // eslint-disable-line indent
|
|
16
|
+
{ setMinLevel(logLevel) { minLogLevel = logLevel; } } // eslint-disable-line indent
|
|
17
|
+
));
|
package/dist/index.mjs
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { filterMessages } from '@niceties/logger/appender-utils';
|
|
2
|
+
import { appender } from '@niceties/logger/global-appender';
|
|
2
3
|
import { terminalSupportsUnicode, createFormatter } from '@niceties/logger/format-utils';
|
|
3
|
-
import { colors, unicodePrefixes, asciiPrefixes } from '@niceties/logger/default-formatting';
|
|
4
|
+
import { colors, unicodePrefixes, asciiPrefixes, tagFactory } from '@niceties/logger/default-formatting';
|
|
4
5
|
import { createDraftlogAppender } from './core.mjs';
|
|
5
6
|
import { dots, line } from './spinners.mjs';
|
|
6
7
|
import 'draftlog';
|
|
7
8
|
|
|
8
9
|
const supportsUnicode = terminalSupportsUnicode();
|
|
9
10
|
const spinner = supportsUnicode ? dots : line;
|
|
10
|
-
const formatter = createFormatter(colors, supportsUnicode ? unicodePrefixes : asciiPrefixes);
|
|
11
|
-
|
|
11
|
+
const formatter = createFormatter(colors, supportsUnicode ? unicodePrefixes : asciiPrefixes, tagFactory);
|
|
12
|
+
let minLogLevel = 1 /* info */;
|
|
13
|
+
appender(filterMessages((message) => message.loglevel >= minLogLevel || message.action !== 3 /* log */, createDraftlogAppender(spinner, formatter, false, 2), // eslint-disable-line indent
|
|
14
|
+
{ setMinLevel(logLevel) { minLogLevel = logLevel; } } // eslint-disable-line indent
|
|
15
|
+
));
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.0
|
|
2
|
+
"version": "1.1.0",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "@niceties/draftlog-appender",
|
|
5
5
|
"author": {
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"url": "https://github.com/kshutkin/niceties/issues"
|
|
41
41
|
},
|
|
42
42
|
"homepage": "https://github.com/kshutkin/niceties/blob/main/draftlog-appender/README.md",
|
|
43
|
+
"readme": "README.md",
|
|
43
44
|
"scripts": {
|
|
44
45
|
"build": "rimraf ./dist && rollup -c",
|
|
45
46
|
"dev": "rimraf ./dist && rollup -c -w",
|
|
@@ -71,11 +72,13 @@
|
|
|
71
72
|
"semantic-release-monorepo": "7.0.5",
|
|
72
73
|
"ts-jest": "27.0.7",
|
|
73
74
|
"typescript": "4.4.x",
|
|
74
|
-
"update-monorepo-package-json": "0.
|
|
75
|
+
"update-monorepo-package-json": "0.2.0"
|
|
76
|
+
},
|
|
77
|
+
"peerDependencies": {
|
|
78
|
+
"@niceties/logger": "^1.1.0"
|
|
75
79
|
},
|
|
76
80
|
"dependencies": {
|
|
77
|
-
"@niceties/logger": "^1.0.1",
|
|
78
81
|
"draftlog": "^1.0.13"
|
|
79
82
|
},
|
|
80
|
-
"
|
|
83
|
+
"description": "README.md"
|
|
81
84
|
}
|