@niceties/draftlog-appender 1.0.7 → 1.2.1

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 CHANGED
@@ -3,36 +3,47 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var draftlog = require('draftlog');
6
+ var list = require('@slimlib/list');
6
7
 
7
8
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
9
 
9
10
  var draftlog__default = /*#__PURE__*/_interopDefaultLegacy(draftlog);
10
11
 
11
- function createCanvas(spinner, formatter, ident) {
12
+ const createCanvas = (spinner, formatter, ident) => {
12
13
  draftlog__default["default"](console);
13
14
  draftlog__default["default"].defaults.canReWrite = false;
14
15
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
16
  const updaters = [];
17
+ const getPrefix = (status, tick) => {
18
+ // status is truthy when it is inprogress
19
+ const prefix = status ? spinner.frames[tick] :
20
+ // status not null when it is finished
21
+ status != null;
22
+ return prefix;
23
+ };
16
24
  return (model) => {
17
25
  if (model.skipLines_) {
18
26
  updaters.splice(0, model.skipLines_);
19
27
  model.skipLines_ = 0;
20
28
  }
21
- if (!model.items_.length) {
22
- return;
23
- }
24
29
  let key = 0, dirty = false;
25
- const stack = [[...model.items_]];
26
- while (stack.length) {
27
- const item = stack[stack.length - 1].shift();
30
+ const stack = [];
31
+ for (const item of model) {
28
32
  let updater = updaters[Number(key)];
29
33
  if (!updater) {
30
34
  updater = console.draft(' ');
31
35
  updaters.push(updater);
32
36
  }
33
37
  if (dirty || item.dirty_ || item.status_) {
34
- const prefix = getMessageFormat(item.status_, model.tick_);
35
- updater(formatter(item.text_, item.loglevel_, prefix, ident * (stack.length - 1)));
38
+ const prefix = getPrefix(item.status_, model.tick_);
39
+ updater(formatter({
40
+ loglevel: item.loglevel_,
41
+ message: item.text_,
42
+ context: item.context_,
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ action: (item.status_ === undefined ? 3 /* log */ : undefined),
45
+ tag: item.tag_
46
+ }, prefix, ident * stack.length));
36
47
  if (item.dirty_) {
37
48
  item.dirty_ = false;
38
49
  dirty = true;
@@ -40,122 +51,115 @@ function createCanvas(spinner, formatter, ident) {
40
51
  }
41
52
  // iterate
42
53
  ++key;
43
- if (item.children_.length) {
44
- stack.push([...item.children_]);
54
+ if (stack[stack.length - 1] === item) {
55
+ stack[stack.length - 1] = null;
56
+ }
57
+ if (item.lastLeaf_) {
58
+ stack.push(item.lastLeaf_);
45
59
  }
46
- while (stack.length && stack[stack.length - 1].length === 0) {
60
+ while (stack.length && stack[stack.length - 1] == null) {
47
61
  stack.pop();
48
62
  }
49
63
  }
50
64
  };
51
- function getMessageFormat(status, tick) {
52
- // status is truthy when it is inprogress
53
- const prefix = status ? (spinner.frames[tick]) :
54
- // status not null when it is finished
55
- status != null;
56
- return prefix;
57
- }
58
- }
65
+ };
59
66
 
60
- function createModel(logAboveSpinners) {
61
- const model = {
62
- skipLines_: 0,
63
- tick_: 0,
64
- spinning_: 0,
65
- items_: []
66
- };
67
+ const createModel = (logAboveSpinners) => {
68
+ const model = new list.List();
67
69
  const itemById = Object.create(null);
68
- return [({ message: text, inputId, action, loglevel, ref, parentId }) => {
69
- // item has status undefined, so it is static by default
70
- const item = { text_: text, loglevel_: loglevel, ref_: ref, parentId_: parentId, children_: [], dirty_: true };
71
- if (action === 0 /* start */) {
72
- item.status_ = 1 /* inprogress */;
73
- }
74
- if (action === 2 /* finish */) {
75
- item.status_ = 0 /* finished */;
76
- }
77
- if (action !== 3 /* log */) {
78
- // if status still empty in the original item, or item does not exists it will remain empty and static
79
- updateModel(inputId, item);
80
- }
81
- cleanupModel();
82
- if (action === 3 /* log */) {
83
- append(item, logAboveSpinners);
84
- }
85
- return model;
86
- }, () => {
87
- cleanupModel();
88
- return model;
89
- }];
90
- function append(item, head) {
91
- model.items_[head ? 'unshift' : 'push'](item);
70
+ const appendToModel = (item, head) => {
71
+ if (head) {
72
+ list.prepend(model, item);
73
+ }
74
+ else {
75
+ list.append(model, item);
76
+ }
92
77
  model.spinning_ += (item.status_ || 0);
93
- }
94
- function updateModel(inputId, options) {
78
+ };
79
+ const updateModel = (inputId, options) => {
95
80
  const modelItem = itemById[inputId];
96
81
  if (!modelItem) {
97
82
  const item = Object.assign({ inputId_: inputId }, options);
98
83
  itemById[inputId] = item;
99
84
  const itemParentId = item.parentId_;
100
85
  if (itemParentId != null) {
101
- putIntoChildren(itemParentId, item);
86
+ putIntoChildren(itemParentId, item, item);
102
87
  }
103
88
  else {
104
- append(item, false);
89
+ appendToModel(item, false);
105
90
  }
106
91
  }
107
92
  else {
108
93
  const statusDiff = (options.status_ || 0) - (modelItem.status_ || 0);
109
- delete options.children_;
110
94
  const moveIntoParent = options.parentId_ != null && modelItem.parentId_ == null;
111
95
  Object.assign(modelItem, options);
112
96
  model.spinning_ += statusDiff;
113
97
  if (moveIntoParent) {
114
- model.items_ = model.items_.filter(item => item !== modelItem);
98
+ let lastLeaf = modelItem;
99
+ while (lastLeaf.lastLeaf_) {
100
+ lastLeaf = lastLeaf.lastLeaf_;
101
+ }
115
102
  model.spinning_ -= (modelItem.status_ || 0);
116
103
  modelItem.dirty_ = true;
117
- putIntoChildren(modelItem.parentId_, modelItem);
104
+ list.removeRange(modelItem, lastLeaf);
105
+ putIntoChildren(modelItem.parentId_, modelItem, lastLeaf);
118
106
  }
119
107
  }
120
- }
121
- function putIntoChildren(itemParentId, item) {
108
+ };
109
+ const putIntoChildren = (itemParentId, begin, end) => {
122
110
  let parent = itemById[itemParentId];
123
111
  if (!parent) {
124
- parent = { inputId_: itemParentId, text_: '', children_: [], loglevel_: 0, ref_: new WeakRef(model) };
125
- append(parent, false);
112
+ parent = { inputId_: itemParentId, text_: '', loglevel_: 0, ref_: new WeakRef(model) };
113
+ appendToModel(parent, false);
126
114
  itemById[itemParentId] = parent;
127
115
  }
128
- parent.children_.push(item);
129
- model.spinning_ += (item.status_ || 0);
130
- }
131
- function cleanupModel() {
116
+ list.appendRange((parent.lastLeaf_ || parent), begin, end);
117
+ parent.lastLeaf_ = begin;
118
+ model.spinning_ += (begin.status_ || 0);
119
+ };
120
+ const cleanupModel = () => {
132
121
  var _a;
133
- for (const item of model.items_) {
134
- if (!((_a = item.ref_) === null || _a === void 0 ? void 0 : _a.deref()) && !item.children_.some(item => { var _a; return (_a = item.ref_) === null || _a === void 0 ? void 0 : _a.deref(); })) {
135
- model.skipLines_ += 1 + item.children_.length;
136
- model.items_.shift();
137
- let currentItem = item;
138
- do {
139
- currentItem.inputId_ != null && delete itemById[currentItem.inputId_];
140
- model.spinning_ -= (currentItem.status_ || 0);
141
- } while ((currentItem = item.children_.pop()));
122
+ for (const item of model) {
123
+ if (!((_a = item.ref_) === null || _a === void 0 ? void 0 : _a.deref())) {
124
+ model.skipLines_ += 1;
125
+ item.inputId_ != null && delete itemById[item.inputId_];
126
+ list.remove(item);
142
127
  }
143
128
  else {
144
129
  break;
145
130
  }
146
131
  }
147
- }
148
- }
132
+ };
133
+ model.tick_ = model.skipLines_ = model.spinning_ = 0;
134
+ return [({ message: text, inputId, action, loglevel, ref, parentId, context, tag }) => {
135
+ // item has status undefined, so it is static by default
136
+ const item = { text_: text, loglevel_: loglevel, ref_: ref, parentId_: parentId, dirty_: true, context_: context, tag_: tag };
137
+ if (action === 0 /* start */) {
138
+ item.status_ = 1 /* inprogress */;
139
+ }
140
+ if (action === 2 /* finish */) {
141
+ item.status_ = 0 /* finished */;
142
+ }
143
+ if (action !== 3 /* log */) {
144
+ // if status still empty in the original item or item does not exists it will remain empty and static
145
+ updateModel(inputId, item);
146
+ }
147
+ cleanupModel();
148
+ if (action === 3 /* log */) {
149
+ appendToModel(item, logAboveSpinners);
150
+ }
151
+ return model;
152
+ }, () => {
153
+ cleanupModel();
154
+ return model;
155
+ }];
156
+ };
149
157
 
150
- function createDraftlogAppender(spinner, formatter, logAboveSpinners, ident) {
158
+ const createDraftlogAppender = (spinner, formatter, logAboveSpinners, ident) => {
151
159
  let interval;
152
160
  const [updateModel, getModel] = createModel(logAboveSpinners);
153
161
  const renderModel = createCanvas(spinner, formatter, ident);
154
- return function draftlogAppender(message) {
155
- renderModel(updateModel(message));
156
- checkTimeout();
157
- };
158
- function checkTimeout() {
162
+ const checkTimeout = () => {
159
163
  const spinning = getModel().spinning_;
160
164
  if (spinning && !interval) {
161
165
  interval = setInterval(updateSpinners, spinner.interval);
@@ -165,13 +169,17 @@ function createDraftlogAppender(spinner, formatter, logAboveSpinners, ident) {
165
169
  clearInterval(interval);
166
170
  interval = undefined;
167
171
  }
168
- }
169
- function updateSpinners() {
172
+ };
173
+ const updateSpinners = () => {
170
174
  const model = getModel();
171
175
  model.tick_++;
172
176
  model.tick_ %= spinner.frames.length;
173
177
  renderModel(model);
174
- }
175
- }
178
+ };
179
+ return (message) => {
180
+ renderModel(updateModel(message));
181
+ checkTimeout();
182
+ };
183
+ };
176
184
 
177
185
  exports.createDraftlogAppender = createDraftlogAppender;
package/dist/core.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { Formatter, LogMessage } from '@niceties/logger/types';
2
2
  import { Spinner } from './spinners';
3
- export declare function createDraftlogAppender(spinner: Spinner, formatter: Formatter, logAboveSpinners: boolean, ident: number): (message: LogMessage) => void;
3
+ export declare const createDraftlogAppender: (spinner: Spinner, formatter: Formatter, logAboveSpinners: boolean, ident: number) => (message: LogMessage) => void;
package/dist/core.mjs CHANGED
@@ -1,30 +1,41 @@
1
1
  import draftlog from 'draftlog';
2
+ import { List, prepend, append, removeRange, appendRange, remove } from '@slimlib/list';
2
3
 
3
- function createCanvas(spinner, formatter, ident) {
4
+ const createCanvas = (spinner, formatter, ident) => {
4
5
  draftlog(console);
5
6
  draftlog.defaults.canReWrite = false;
6
7
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
8
  const updaters = [];
9
+ const getPrefix = (status, tick) => {
10
+ // status is truthy when it is inprogress
11
+ const prefix = status ? spinner.frames[tick] :
12
+ // status not null when it is finished
13
+ status != null;
14
+ return prefix;
15
+ };
8
16
  return (model) => {
9
17
  if (model.skipLines_) {
10
18
  updaters.splice(0, model.skipLines_);
11
19
  model.skipLines_ = 0;
12
20
  }
13
- if (!model.items_.length) {
14
- return;
15
- }
16
21
  let key = 0, dirty = false;
17
- const stack = [[...model.items_]];
18
- while (stack.length) {
19
- const item = stack[stack.length - 1].shift();
22
+ const stack = [];
23
+ for (const item of model) {
20
24
  let updater = updaters[Number(key)];
21
25
  if (!updater) {
22
26
  updater = console.draft(' ');
23
27
  updaters.push(updater);
24
28
  }
25
29
  if (dirty || item.dirty_ || item.status_) {
26
- const prefix = getMessageFormat(item.status_, model.tick_);
27
- updater(formatter(item.text_, item.loglevel_, prefix, ident * (stack.length - 1)));
30
+ const prefix = getPrefix(item.status_, model.tick_);
31
+ updater(formatter({
32
+ loglevel: item.loglevel_,
33
+ message: item.text_,
34
+ context: item.context_,
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ action: (item.status_ === undefined ? 3 /* log */ : undefined),
37
+ tag: item.tag_
38
+ }, prefix, ident * stack.length));
28
39
  if (item.dirty_) {
29
40
  item.dirty_ = false;
30
41
  dirty = true;
@@ -32,122 +43,115 @@ function createCanvas(spinner, formatter, ident) {
32
43
  }
33
44
  // iterate
34
45
  ++key;
35
- if (item.children_.length) {
36
- stack.push([...item.children_]);
46
+ if (stack[stack.length - 1] === item) {
47
+ stack[stack.length - 1] = null;
48
+ }
49
+ if (item.lastLeaf_) {
50
+ stack.push(item.lastLeaf_);
37
51
  }
38
- while (stack.length && stack[stack.length - 1].length === 0) {
52
+ while (stack.length && stack[stack.length - 1] == null) {
39
53
  stack.pop();
40
54
  }
41
55
  }
42
56
  };
43
- function getMessageFormat(status, tick) {
44
- // status is truthy when it is inprogress
45
- const prefix = status ? (spinner.frames[tick]) :
46
- // status not null when it is finished
47
- status != null;
48
- return prefix;
49
- }
50
- }
57
+ };
51
58
 
52
- function createModel(logAboveSpinners) {
53
- const model = {
54
- skipLines_: 0,
55
- tick_: 0,
56
- spinning_: 0,
57
- items_: []
58
- };
59
+ const createModel = (logAboveSpinners) => {
60
+ const model = new List();
59
61
  const itemById = Object.create(null);
60
- return [({ message: text, inputId, action, loglevel, ref, parentId }) => {
61
- // item has status undefined, so it is static by default
62
- const item = { text_: text, loglevel_: loglevel, ref_: ref, parentId_: parentId, children_: [], dirty_: true };
63
- if (action === 0 /* start */) {
64
- item.status_ = 1 /* inprogress */;
65
- }
66
- if (action === 2 /* finish */) {
67
- item.status_ = 0 /* finished */;
68
- }
69
- if (action !== 3 /* log */) {
70
- // if status still empty in the original item, or item does not exists it will remain empty and static
71
- updateModel(inputId, item);
72
- }
73
- cleanupModel();
74
- if (action === 3 /* log */) {
75
- append(item, logAboveSpinners);
76
- }
77
- return model;
78
- }, () => {
79
- cleanupModel();
80
- return model;
81
- }];
82
- function append(item, head) {
83
- model.items_[head ? 'unshift' : 'push'](item);
62
+ const appendToModel = (item, head) => {
63
+ if (head) {
64
+ prepend(model, item);
65
+ }
66
+ else {
67
+ append(model, item);
68
+ }
84
69
  model.spinning_ += (item.status_ || 0);
85
- }
86
- function updateModel(inputId, options) {
70
+ };
71
+ const updateModel = (inputId, options) => {
87
72
  const modelItem = itemById[inputId];
88
73
  if (!modelItem) {
89
74
  const item = Object.assign({ inputId_: inputId }, options);
90
75
  itemById[inputId] = item;
91
76
  const itemParentId = item.parentId_;
92
77
  if (itemParentId != null) {
93
- putIntoChildren(itemParentId, item);
78
+ putIntoChildren(itemParentId, item, item);
94
79
  }
95
80
  else {
96
- append(item, false);
81
+ appendToModel(item, false);
97
82
  }
98
83
  }
99
84
  else {
100
85
  const statusDiff = (options.status_ || 0) - (modelItem.status_ || 0);
101
- delete options.children_;
102
86
  const moveIntoParent = options.parentId_ != null && modelItem.parentId_ == null;
103
87
  Object.assign(modelItem, options);
104
88
  model.spinning_ += statusDiff;
105
89
  if (moveIntoParent) {
106
- model.items_ = model.items_.filter(item => item !== modelItem);
90
+ let lastLeaf = modelItem;
91
+ while (lastLeaf.lastLeaf_) {
92
+ lastLeaf = lastLeaf.lastLeaf_;
93
+ }
107
94
  model.spinning_ -= (modelItem.status_ || 0);
108
95
  modelItem.dirty_ = true;
109
- putIntoChildren(modelItem.parentId_, modelItem);
96
+ removeRange(modelItem, lastLeaf);
97
+ putIntoChildren(modelItem.parentId_, modelItem, lastLeaf);
110
98
  }
111
99
  }
112
- }
113
- function putIntoChildren(itemParentId, item) {
100
+ };
101
+ const putIntoChildren = (itemParentId, begin, end) => {
114
102
  let parent = itemById[itemParentId];
115
103
  if (!parent) {
116
- parent = { inputId_: itemParentId, text_: '', children_: [], loglevel_: 0, ref_: new WeakRef(model) };
117
- append(parent, false);
104
+ parent = { inputId_: itemParentId, text_: '', loglevel_: 0, ref_: new WeakRef(model) };
105
+ appendToModel(parent, false);
118
106
  itemById[itemParentId] = parent;
119
107
  }
120
- parent.children_.push(item);
121
- model.spinning_ += (item.status_ || 0);
122
- }
123
- function cleanupModel() {
108
+ appendRange((parent.lastLeaf_ || parent), begin, end);
109
+ parent.lastLeaf_ = begin;
110
+ model.spinning_ += (begin.status_ || 0);
111
+ };
112
+ const cleanupModel = () => {
124
113
  var _a;
125
- for (const item of model.items_) {
126
- if (!((_a = item.ref_) === null || _a === void 0 ? void 0 : _a.deref()) && !item.children_.some(item => { var _a; return (_a = item.ref_) === null || _a === void 0 ? void 0 : _a.deref(); })) {
127
- model.skipLines_ += 1 + item.children_.length;
128
- model.items_.shift();
129
- let currentItem = item;
130
- do {
131
- currentItem.inputId_ != null && delete itemById[currentItem.inputId_];
132
- model.spinning_ -= (currentItem.status_ || 0);
133
- } while ((currentItem = item.children_.pop()));
114
+ for (const item of model) {
115
+ if (!((_a = item.ref_) === null || _a === void 0 ? void 0 : _a.deref())) {
116
+ model.skipLines_ += 1;
117
+ item.inputId_ != null && delete itemById[item.inputId_];
118
+ remove(item);
134
119
  }
135
120
  else {
136
121
  break;
137
122
  }
138
123
  }
139
- }
140
- }
124
+ };
125
+ model.tick_ = model.skipLines_ = model.spinning_ = 0;
126
+ return [({ message: text, inputId, action, loglevel, ref, parentId, context, tag }) => {
127
+ // item has status undefined, so it is static by default
128
+ const item = { text_: text, loglevel_: loglevel, ref_: ref, parentId_: parentId, dirty_: true, context_: context, tag_: tag };
129
+ if (action === 0 /* start */) {
130
+ item.status_ = 1 /* inprogress */;
131
+ }
132
+ if (action === 2 /* finish */) {
133
+ item.status_ = 0 /* finished */;
134
+ }
135
+ if (action !== 3 /* log */) {
136
+ // if status still empty in the original item or item does not exists it will remain empty and static
137
+ updateModel(inputId, item);
138
+ }
139
+ cleanupModel();
140
+ if (action === 3 /* log */) {
141
+ appendToModel(item, logAboveSpinners);
142
+ }
143
+ return model;
144
+ }, () => {
145
+ cleanupModel();
146
+ return model;
147
+ }];
148
+ };
141
149
 
142
- function createDraftlogAppender(spinner, formatter, logAboveSpinners, ident) {
150
+ const createDraftlogAppender = (spinner, formatter, logAboveSpinners, ident) => {
143
151
  let interval;
144
152
  const [updateModel, getModel] = createModel(logAboveSpinners);
145
153
  const renderModel = createCanvas(spinner, formatter, ident);
146
- return function draftlogAppender(message) {
147
- renderModel(updateModel(message));
148
- checkTimeout();
149
- };
150
- function checkTimeout() {
154
+ const checkTimeout = () => {
151
155
  const spinning = getModel().spinning_;
152
156
  if (spinning && !interval) {
153
157
  interval = setInterval(updateSpinners, spinner.interval);
@@ -157,13 +161,17 @@ function createDraftlogAppender(spinner, formatter, logAboveSpinners, ident) {
157
161
  clearInterval(interval);
158
162
  interval = undefined;
159
163
  }
160
- }
161
- function updateSpinners() {
164
+ };
165
+ const updateSpinners = () => {
162
166
  const model = getModel();
163
167
  model.tick_++;
164
168
  model.tick_ %= spinner.frames.length;
165
169
  renderModel(model);
166
- }
167
- }
170
+ };
171
+ return (message) => {
172
+ renderModel(updateModel(message));
173
+ checkTimeout();
174
+ };
175
+ };
168
176
 
169
177
  export { createDraftlogAppender };
@@ -1,4 +1,4 @@
1
1
  import { Formatter } from '@niceties/logger/types';
2
2
  import { Model } from './model';
3
3
  import { Spinner } from '../spinners';
4
- export declare function createCanvas(spinner: Spinner, formatter: Formatter, ident: number): (model: Model) => void;
4
+ export declare const createCanvas: (spinner: Spinner, formatter: Formatter, ident: number) => (model: Model) => void;
@@ -1,23 +1,24 @@
1
1
  import { LogLevel, LogMessage } from '@niceties/logger/types';
2
+ import { List, ListNode } from '@slimlib/list';
2
3
  export declare const enum ItemStatus {
3
4
  finished = 0,
4
5
  inprogress = 1
5
6
  }
6
- export interface ModelItem {
7
+ export interface ModelItem extends Partial<ListNode> {
7
8
  inputId_?: number;
8
9
  text_: string;
9
10
  status_?: ItemStatus;
10
11
  loglevel_: LogLevel;
11
12
  ref_?: WeakRef<never>;
12
13
  parentId_?: number;
13
- next_?: ModelItem;
14
- children_: ModelItem[];
15
14
  dirty_?: boolean;
15
+ lastLeaf_?: ModelItem;
16
+ tag_?: string;
17
+ context_?: any;
16
18
  }
17
- export declare type Model = {
18
- items_: ModelItem[];
19
+ export declare type Model = List<ModelItem> & {
19
20
  skipLines_: number;
20
21
  tick_: number;
21
22
  spinning_: number;
22
23
  };
23
- export declare function createModel(logAboveSpinners: boolean): [(logMessage: LogMessage) => Model, () => Model];
24
+ export declare const createModel: (logAboveSpinners: boolean) => [(logMessage: LogMessage) => Model, () => Model];
package/dist/index.cjs CHANGED
@@ -1,13 +1,18 @@
1
1
  'use strict';
2
2
 
3
- var core = require('@niceties/logger/core');
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$1 = require('./core.cjs');
7
+ var core = require('./core.cjs');
7
8
  var spinners = require('./spinners.cjs');
8
9
  require('draftlog');
10
+ require('@slimlib/list');
9
11
 
10
12
  const supportsUnicode = formatUtils.terminalSupportsUnicode();
11
13
  const spinner = supportsUnicode ? spinners.dots : spinners.line;
12
- const formatter = formatUtils.createFormatter(defaultFormatting.colors, supportsUnicode ? defaultFormatting.unicodePrefixes : defaultFormatting.asciiPrefixes);
13
- core.appender(core$1.createDraftlogAppender(spinner, formatter, false, 2));
14
+ const formatter = formatUtils.createFormatter(defaultFormatting.colors, supportsUnicode ? defaultFormatting.unicodePrefixes : defaultFormatting.asciiPrefixes, defaultFormatting.tagFactory);
15
+ let minLogLevel = 1 /* info */;
16
+ globalAppender.appender(appenderUtils.filterMessages((message) => message.loglevel >= minLogLevel || message.action !== 3 /* log */, core.createDraftlogAppender(spinner, formatter, false, 2), // eslint-disable-line indent
17
+ { setMinLevel(logLevel) { minLogLevel = logLevel; } } // eslint-disable-line indent
18
+ ));
package/dist/index.mjs CHANGED
@@ -1,11 +1,16 @@
1
- import { appender } from '@niceties/logger/core';
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';
8
+ import '@slimlib/list';
7
9
 
8
10
  const supportsUnicode = terminalSupportsUnicode();
9
11
  const spinner = supportsUnicode ? dots : line;
10
- const formatter = createFormatter(colors, supportsUnicode ? unicodePrefixes : asciiPrefixes);
11
- appender(createDraftlogAppender(spinner, formatter, false, 2));
12
+ const formatter = createFormatter(colors, supportsUnicode ? unicodePrefixes : asciiPrefixes, tagFactory);
13
+ let minLogLevel = 1 /* info */;
14
+ appender(filterMessages((message) => message.loglevel >= minLogLevel || message.action !== 3 /* log */, createDraftlogAppender(spinner, formatter, false, 2), // eslint-disable-line indent
15
+ { setMinLevel(logLevel) { minLogLevel = logLevel; } } // eslint-disable-line indent
16
+ ));
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.7",
2
+ "version": "1.2.1",
3
3
  "license": "MIT",
4
4
  "name": "@niceties/draftlog-appender",
5
5
  "author": {
@@ -17,9 +17,10 @@
17
17
  "default": "./dist/core.mjs"
18
18
  },
19
19
  "./spinners": {
20
- "require": "./spinners/dist/spinners.cjs",
21
- "default": "./spinners/dist/spinners.mjs"
22
- }
20
+ "require": "./dist/spinners.cjs",
21
+ "default": "./dist/spinners.mjs"
22
+ },
23
+ "./package.json": "./package.json"
23
24
  },
24
25
  "main": "./dist/index.cjs",
25
26
  "module": "./dist/index.mjs",
@@ -40,42 +41,38 @@
40
41
  "url": "https://github.com/kshutkin/niceties/issues"
41
42
  },
42
43
  "homepage": "https://github.com/kshutkin/niceties/blob/main/draftlog-appender/README.md",
44
+ "readme": "README.md",
45
+ "description": "Appender for '@niceites/logger' implemented using draftlog package.",
43
46
  "scripts": {
44
- "build": "rimraf ./dist && rollup -c",
45
- "dev": "rimraf ./dist && rollup -c -w",
47
+ "build": "pkgbld",
46
48
  "test": "node --expose-gc ../node_modules/jest-cli/bin/jest.js --collectCoverage",
47
49
  "lint": "eslint ./src",
48
50
  "semantic-release": "npx semantic-release"
49
51
  },
50
52
  "devDependencies": {
51
- "@rollup/plugin-commonjs": "21.0.1",
52
- "@rollup/plugin-node-resolve": "13.0.6",
53
53
  "@semantic-release/changelog": "6.0.1",
54
54
  "@semantic-release/commit-analyzer": "9.0.1",
55
55
  "@semantic-release/git": "10.0.1",
56
56
  "@semantic-release/npm": "8.0.2",
57
57
  "@semantic-release/release-notes-generator": "10.0.2",
58
- "@types/jest": "27.0.2",
59
- "@typescript-eslint/eslint-plugin": "5.3.0",
60
- "@typescript-eslint/parser": "5.3.0",
58
+ "@types/jest": "27.4.0",
59
+ "@typescript-eslint/eslint-plugin": "5.11.0",
60
+ "@typescript-eslint/parser": "5.11.0",
61
61
  "conventional-changelog-angular": "5.0.13",
62
- "eslint": "8.1.0",
63
- "jest": "27.3.1",
64
- "lodash": "4.17.21",
65
- "rimraf": "3.0.2",
66
- "rollup": "2.60.1",
67
- "rollup-plugin-terser": "7.0.2",
68
- "rollup-plugin-typescript2": "0.31.1",
69
- "rollup-plugin-preprocess": "0.0.4",
62
+ "eslint": "8.8.0",
63
+ "jest": "27.5.1",
70
64
  "semantic-release": "18.0.0",
71
65
  "semantic-release-monorepo": "7.0.5",
72
- "ts-jest": "27.0.7",
73
- "typescript": "4.4.x",
74
- "update-monorepo-package-json": "0.1.6"
66
+ "ts-jest": "27.1.3",
67
+ "typescript": "4.5.x",
68
+ "update-monorepo-package-json": "0.2.0",
69
+ "pkgbld": "1.2.0"
75
70
  },
76
- "dependencies": {
77
- "@niceties/logger": "^1.0.4",
78
- "draftlog": "^1.0.13"
71
+ "peerDependencies": {
72
+ "@niceties/logger": "^1.1.2"
79
73
  },
80
- "readme": "ERROR: No README data found!"
74
+ "dependencies": {
75
+ "draftlog": "^1.0.13",
76
+ "@slimlib/list": "^1.0.3"
77
+ }
81
78
  }