@niceties/draftlog-appender 1.2.3 → 1.2.4

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/core/package.json CHANGED
@@ -1,3 +1,5 @@
1
1
  {
2
- "types": "../dist/core.d.ts"
2
+ "type": "module",
3
+ "types": "../dist/core.d.ts",
4
+ "main": "../dist/core.mjs"
3
5
  }
package/dist/core.cjs CHANGED
@@ -1,25 +1,18 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var draftlog = require('draftlog');
6
4
  var list = require('@slimlib/list');
7
5
 
8
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
-
10
- var draftlog__default = /*#__PURE__*/_interopDefaultLegacy(draftlog);
11
-
12
6
  const createCanvas = (spinner, formatter, ident) => {
13
- draftlog__default["default"](console);
14
- draftlog__default["default"].defaults.canReWrite = false;
7
+ draftlog(console);
8
+ draftlog.defaults.canReWrite = false;
15
9
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
10
  const updaters = [];
17
11
  const getPrefix = (status, tick) => {
18
12
  // status is truthy when it is inprogress
19
- const prefix = status ? spinner.frames[tick] :
13
+ return status ? spinner.frames[tick] :
20
14
  // status not null when it is finished
21
15
  status != null;
22
- return prefix;
23
16
  };
24
17
  return (model) => {
25
18
  if (model.skipLines_) {
package/dist/core.mjs CHANGED
@@ -8,10 +8,9 @@ const createCanvas = (spinner, formatter, ident) => {
8
8
  const updaters = [];
9
9
  const getPrefix = (status, tick) => {
10
10
  // status is truthy when it is inprogress
11
- const prefix = status ? spinner.frames[tick] :
11
+ return status ? spinner.frames[tick] :
12
12
  // status not null when it is finished
13
13
  status != null;
14
- return prefix;
15
14
  };
16
15
  return (model) => {
17
16
  if (model.skipLines_) {
package/dist/index.cjs CHANGED
@@ -1,18 +1,58 @@
1
1
  'use strict';
2
2
 
3
- var appenderUtils = require('@niceties/logger/appender-utils');
4
- var globalAppender = require('@niceties/logger/global-appender');
5
- var formatUtils = require('@niceties/logger/format-utils');
6
- var defaultFormatting = require('@niceties/logger/default-formatting');
3
+ var kleur = require('kleur');
7
4
  var core = require('./core.cjs');
8
5
  var spinners = require('./spinners.cjs');
9
6
  require('draftlog');
10
7
  require('@slimlib/list');
11
8
 
12
- const supportsUnicode = formatUtils.terminalSupportsUnicode();
9
+ const filterMessages = (predicate, appender, api) => {
10
+ return Object.assign(function (logMessage) {
11
+ if (predicate(logMessage)) {
12
+ appender(logMessage);
13
+ }
14
+ }, api);
15
+ };
16
+
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ let globalAppender;
19
+ const appender = (appender) => {
20
+ if (appender !== undefined) {
21
+ globalAppender = appender;
22
+ }
23
+ return globalAppender;
24
+ };
25
+
26
+ const createFormatter = (colors, prefixes, tagFactory) => {
27
+ return ({ loglevel, message, context, action, tag }, usePrefix, identation = 0) => {
28
+ const prefix = usePrefix === true ? (`${prefixes[loglevel]} `) : (typeof usePrefix === 'string' ? (`${usePrefix} `) : '');
29
+ const color = colors[loglevel];
30
+ const text = `${prefix}${loglevel === 0 /* verbose */ && action === 3 /* log */ && tag !== undefined ? tagFactory(tag) + ' ' : ''}${message}${context != null ? ' ' + context : ''}`;
31
+ return `${' '.repeat(identation)}${color ? color(text) : text}`;
32
+ };
33
+ };
34
+ // from dreidels/utils
35
+ const terminalSupportsUnicode = () => {
36
+ // The default command prompt and powershell in Windows do not support Unicode characters.
37
+ // However, the VSCode integrated terminal and the Windows Terminal both do.
38
+ return process.platform !== 'win32'
39
+ || process.env.TERM_PROGRAM === 'vscode'
40
+ || !!process.env.WT_SESSION;
41
+ };
42
+
43
+ const { green, red, yellow, blue } = kleur;
44
+ const unicodePrefixes = [`${green('✓')}`, `${green('✓')}`, '⚠', '✕'];
45
+ const asciiPrefixes = [`${green('+')}`, `${green('+')}`, '!', 'x'];
46
+ // eslint-disable-next-line no-sparse-arrays
47
+ const colors = [, , yellow, red];
48
+ const tagFactory = (tag) => {
49
+ return '[' + blue(tag) + ']';
50
+ };
51
+
52
+ const supportsUnicode = terminalSupportsUnicode();
13
53
  const spinner = supportsUnicode ? spinners.dots : spinners.line;
14
- const formatter = formatUtils.createFormatter(defaultFormatting.colors, supportsUnicode ? defaultFormatting.unicodePrefixes : defaultFormatting.asciiPrefixes, defaultFormatting.tagFactory);
54
+ const formatter = createFormatter(colors, supportsUnicode ? unicodePrefixes : asciiPrefixes, tagFactory);
15
55
  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
56
+ appender(filterMessages((message) => message.loglevel >= minLogLevel && message.action !== 3 /* log */, core.createDraftlogAppender(spinner, formatter, false, 2), // eslint-disable-line indent
17
57
  { setMinLevel(logLevel) { minLogLevel = logLevel; } } // eslint-disable-line indent
18
58
  ));
package/dist/index.mjs CHANGED
@@ -1,16 +1,56 @@
1
- import { filterMessages } from '@niceties/logger/appender-utils';
2
- import { appender } from '@niceties/logger/global-appender';
3
- import { terminalSupportsUnicode, createFormatter } from '@niceties/logger/format-utils';
4
- import { colors, unicodePrefixes, asciiPrefixes, tagFactory } from '@niceties/logger/default-formatting';
1
+ import kleur from 'kleur';
5
2
  import { createDraftlogAppender } from './core.mjs';
6
3
  import { dots, line } from './spinners.mjs';
7
4
  import 'draftlog';
8
5
  import '@slimlib/list';
9
6
 
7
+ const filterMessages = (predicate, appender, api) => {
8
+ return Object.assign(function (logMessage) {
9
+ if (predicate(logMessage)) {
10
+ appender(logMessage);
11
+ }
12
+ }, api);
13
+ };
14
+
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ let globalAppender;
17
+ const appender = (appender) => {
18
+ if (appender !== undefined) {
19
+ globalAppender = appender;
20
+ }
21
+ return globalAppender;
22
+ };
23
+
24
+ const createFormatter = (colors, prefixes, tagFactory) => {
25
+ return ({ loglevel, message, context, action, tag }, usePrefix, identation = 0) => {
26
+ const prefix = usePrefix === true ? (`${prefixes[loglevel]} `) : (typeof usePrefix === 'string' ? (`${usePrefix} `) : '');
27
+ const color = colors[loglevel];
28
+ const text = `${prefix}${loglevel === 0 /* verbose */ && action === 3 /* log */ && tag !== undefined ? tagFactory(tag) + ' ' : ''}${message}${context != null ? ' ' + context : ''}`;
29
+ return `${' '.repeat(identation)}${color ? color(text) : text}`;
30
+ };
31
+ };
32
+ // from dreidels/utils
33
+ const terminalSupportsUnicode = () => {
34
+ // The default command prompt and powershell in Windows do not support Unicode characters.
35
+ // However, the VSCode integrated terminal and the Windows Terminal both do.
36
+ return process.platform !== 'win32'
37
+ || process.env.TERM_PROGRAM === 'vscode'
38
+ || !!process.env.WT_SESSION;
39
+ };
40
+
41
+ const { green, red, yellow, blue } = kleur;
42
+ const unicodePrefixes = [`${green('✓')}`, `${green('✓')}`, '⚠', '✕'];
43
+ const asciiPrefixes = [`${green('+')}`, `${green('+')}`, '!', 'x'];
44
+ // eslint-disable-next-line no-sparse-arrays
45
+ const colors = [, , yellow, red];
46
+ const tagFactory = (tag) => {
47
+ return '[' + blue(tag) + ']';
48
+ };
49
+
10
50
  const supportsUnicode = terminalSupportsUnicode();
11
51
  const spinner = supportsUnicode ? dots : line;
12
52
  const formatter = createFormatter(colors, supportsUnicode ? unicodePrefixes : asciiPrefixes, tagFactory);
13
53
  let minLogLevel = 1 /* info */;
14
- appender(filterMessages((message) => message.loglevel >= minLogLevel || message.action !== 3 /* log */, createDraftlogAppender(spinner, formatter, false, 2), // eslint-disable-line indent
54
+ appender(filterMessages((message) => message.loglevel >= minLogLevel && message.action !== 3 /* log */, createDraftlogAppender(spinner, formatter, false, 2), // eslint-disable-line indent
15
55
  { setMinLevel(logLevel) { minLogLevel = logLevel; } } // eslint-disable-line indent
16
56
  ));
package/dist/spinners.cjs CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  const dots = {
6
4
  interval: 50,
7
5
  frames: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏']
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.2.3",
2
+ "version": "1.2.4",
3
3
  "license": "MIT",
4
4
  "name": "@niceties/draftlog-appender",
5
5
  "author": {
@@ -43,7 +43,7 @@
43
43
  "readme": "README.md",
44
44
  "description": "Appender for '@niceites/logger' implemented using draftlog package.",
45
45
  "scripts": {
46
- "build": "pkgbld",
46
+ "build": "pkgbld-internal",
47
47
  "test": "node --expose-gc ../node_modules/jest-cli/bin/jest.js --collectCoverage",
48
48
  "lint": "eslint ./src",
49
49
  "semantic-release": "npx semantic-release"
@@ -65,10 +65,10 @@
65
65
  "ts-jest": "27.1.3",
66
66
  "typescript": "4.6.x",
67
67
  "update-monorepo-package-json": "0.2.0",
68
- "pkgbld": "1.2.1"
68
+ "pkgbld-internal": "1.0.2"
69
69
  },
70
70
  "peerDependencies": {
71
- "@niceties/logger": "^1.1.4"
71
+ "@niceties/logger": "^1.1.5"
72
72
  },
73
73
  "dependencies": {
74
74
  "draftlog": "^1.0.13",
@@ -1,3 +1,5 @@
1
1
  {
2
- "types": "../dist/spinners.d.ts"
2
+ "type": "module",
3
+ "types": "../dist/spinners.d.ts",
4
+ "main": "../dist/spinners.mjs"
3
5
  }