standard-log-color 3.2.3 → 5.0.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/LICENSE +1 -1
- package/{lib → cjs}/ansi/adjustCodes.d.ts +0 -0
- package/cjs/ansi/adjustCodes.d.ts.map +1 -0
- package/cjs/ansi/adjustCodes.js +24 -0
- package/cjs/ansi/adjustCodes.js.map +1 -0
- package/cjs/ansi/adjustCodes.spec.d.ts +2 -0
- package/cjs/ansi/adjustCodes.spec.d.ts.map +1 -0
- package/cjs/ansi/adjustCodes.spec.js +13 -0
- package/cjs/ansi/adjustCodes.spec.js.map +1 -0
- package/{lib → cjs}/ansi/ansiFormatter.d.ts +0 -0
- package/cjs/ansi/ansiFormatter.d.ts.map +1 -0
- package/cjs/ansi/ansiFormatter.js +47 -0
- package/cjs/ansi/ansiFormatter.js.map +1 -0
- package/{lib → cjs}/ansi/constants.d.ts +0 -0
- package/cjs/ansi/constants.d.ts.map +1 -0
- package/{lib → cjs}/ansi/constants.js +0 -0
- package/cjs/ansi/constants.js.map +1 -0
- package/{lib → cjs}/ansi/createColorCodes.d.ts +0 -0
- package/cjs/ansi/createColorCodes.d.ts.map +1 -0
- package/cjs/ansi/createColorCodes.js +49 -0
- package/cjs/ansi/createColorCodes.js.map +1 -0
- package/cjs/ansi/createColorCodes.spec.d.ts +2 -0
- package/cjs/ansi/createColorCodes.spec.d.ts.map +1 -0
- package/cjs/ansi/createColorCodes.spec.js +34 -0
- package/cjs/ansi/createColorCodes.spec.js.map +1 -0
- package/cjs/ansi/index.d.ts +4 -0
- package/cjs/ansi/index.d.ts.map +1 -0
- package/cjs/ansi/index.js +20 -0
- package/cjs/ansi/index.js.map +1 -0
- package/{lib → cjs}/ansi/isColor.d.ts +1 -1
- package/cjs/ansi/isColor.d.ts.map +1 -0
- package/cjs/ansi/isColor.js +13 -0
- package/cjs/ansi/isColor.js.map +1 -0
- package/cjs/ansi/isColor.spec.d.ts +2 -0
- package/cjs/ansi/isColor.spec.d.ts.map +1 -0
- package/cjs/ansi/isColor.spec.js +17 -0
- package/cjs/ansi/isColor.spec.js.map +1 -0
- package/{lib → cjs}/ansi/wrapAnsi.d.ts +0 -0
- package/cjs/ansi/wrapAnsi.d.ts.map +1 -0
- package/{lib → cjs}/ansi/wrapAnsi.js +2 -2
- package/cjs/ansi/wrapAnsi.js.map +1 -0
- package/cjs/ansi/wrapAnsi.spec.d.ts +2 -0
- package/cjs/ansi/wrapAnsi.spec.d.ts.map +1 -0
- package/cjs/ansi/wrapAnsi.spec.js +9 -0
- package/cjs/ansi/wrapAnsi.spec.js.map +1 -0
- package/{lib → cjs}/createColorLogReporter.browser.d.ts +0 -0
- package/cjs/createColorLogReporter.browser.d.ts.map +1 -0
- package/{lib → cjs}/createColorLogReporter.browser.js +5 -5
- package/cjs/createColorLogReporter.browser.js.map +1 -0
- package/{lib → cjs}/createColorLogReporter.d.ts +0 -0
- package/cjs/createColorLogReporter.d.ts.map +1 -0
- package/{lib → cjs}/createColorLogReporter.js +5 -5
- package/cjs/createColorLogReporter.js.map +1 -0
- package/cjs/createColorLogReporter.spec.d.ts +2 -0
- package/cjs/createColorLogReporter.spec.d.ts.map +1 -0
- package/cjs/createColorLogReporter.spec.js +178 -0
- package/cjs/createColorLogReporter.spec.js.map +1 -0
- package/{lib → cjs}/css/colors.d.ts +0 -0
- package/cjs/css/colors.d.ts.map +1 -0
- package/{lib → cjs}/css/colors.js +0 -0
- package/cjs/css/colors.js.map +1 -0
- package/{lib → cjs}/css/cssFormatter.d.ts +0 -0
- package/cjs/css/cssFormatter.d.ts.map +1 -0
- package/{lib → cjs}/css/cssFormatter.js +22 -14
- package/cjs/css/cssFormatter.js.map +1 -0
- package/cjs/css/cssFormatter.spec.d.ts +2 -0
- package/cjs/css/cssFormatter.spec.d.ts.map +1 -0
- package/cjs/css/cssFormatter.spec.js +33 -0
- package/cjs/css/cssFormatter.spec.js.map +1 -0
- package/cjs/css/index.d.ts +2 -0
- package/cjs/css/index.d.ts.map +1 -0
- package/cjs/css/index.js +18 -0
- package/cjs/css/index.js.map +1 -0
- package/cjs/index.d.ts +4 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +20 -0
- package/cjs/index.js.map +1 -0
- package/cjs/package.json +3 -0
- package/cjs/utils/index.d.ts +2 -0
- package/cjs/utils/index.d.ts.map +1 -0
- package/cjs/utils/index.js +18 -0
- package/cjs/utils/index.js.map +1 -0
- package/{lib → cjs}/utils/supportColor.browser.d.ts +0 -0
- package/cjs/utils/supportColor.browser.d.ts.map +1 -0
- package/{lib → cjs}/utils/supportColor.browser.js +3 -0
- package/cjs/utils/supportColor.browser.js.map +1 -0
- package/{lib → cjs}/utils/supportColor.d.ts +0 -0
- package/cjs/utils/supportColor.d.ts.map +1 -0
- package/{lib → cjs}/utils/supportColor.js +0 -0
- package/cjs/utils/supportColor.js.map +1 -0
- package/dist/standard-log-color.es5.js +2 -0
- package/dist/standard-log-color.es5.js.gz +0 -0
- package/dist/standard-log-color.es5.js.map +1 -0
- package/dist/standard-log-color.es5.js.map.gz +0 -0
- package/dist/standard-log-color.esm.js +2 -0
- package/dist/standard-log-color.esm.js.gz +0 -0
- package/dist/standard-log-color.esm.js.map +1 -0
- package/dist/standard-log-color.esm.js.map.gz +0 -0
- package/{libm → esm}/ansi/adjustCodes.d.ts +0 -0
- package/esm/ansi/adjustCodes.d.ts.map +1 -0
- package/{libm → esm}/ansi/adjustCodes.js +1 -1
- package/esm/ansi/adjustCodes.js.map +1 -0
- package/esm/ansi/adjustCodes.spec.d.ts +2 -0
- package/esm/ansi/adjustCodes.spec.d.ts.map +1 -0
- package/esm/ansi/adjustCodes.spec.js +11 -0
- package/esm/ansi/adjustCodes.spec.js.map +1 -0
- package/{libm → esm}/ansi/ansiFormatter.d.ts +0 -0
- package/esm/ansi/ansiFormatter.d.ts.map +1 -0
- package/{libm → esm}/ansi/ansiFormatter.js +4 -4
- package/esm/ansi/ansiFormatter.js.map +1 -0
- package/{libm → esm}/ansi/constants.d.ts +0 -0
- package/esm/ansi/constants.d.ts.map +1 -0
- package/{libm → esm}/ansi/constants.js +0 -0
- package/esm/ansi/constants.js.map +1 -0
- package/{libm → esm}/ansi/createColorCodes.d.ts +0 -0
- package/esm/ansi/createColorCodes.d.ts.map +1 -0
- package/{libm → esm}/ansi/createColorCodes.js +2 -2
- package/esm/ansi/createColorCodes.js.map +1 -0
- package/esm/ansi/createColorCodes.spec.d.ts +2 -0
- package/esm/ansi/createColorCodes.spec.d.ts.map +1 -0
- package/esm/ansi/createColorCodes.spec.js +32 -0
- package/esm/ansi/createColorCodes.spec.js.map +1 -0
- package/esm/ansi/index.d.ts +4 -0
- package/esm/ansi/index.d.ts.map +1 -0
- package/esm/ansi/index.js +4 -0
- package/esm/ansi/index.js.map +1 -0
- package/{libm → esm}/ansi/isColor.d.ts +1 -1
- package/esm/ansi/isColor.d.ts.map +1 -0
- package/{libm → esm}/ansi/isColor.js +1 -1
- package/esm/ansi/isColor.js.map +1 -0
- package/esm/ansi/isColor.spec.d.ts +2 -0
- package/esm/ansi/isColor.spec.d.ts.map +1 -0
- package/esm/ansi/isColor.spec.js +15 -0
- package/esm/ansi/isColor.spec.js.map +1 -0
- package/{libm → esm}/ansi/wrapAnsi.d.ts +0 -0
- package/esm/ansi/wrapAnsi.d.ts.map +1 -0
- package/{libm → esm}/ansi/wrapAnsi.js +0 -0
- package/esm/ansi/wrapAnsi.js.map +1 -0
- package/esm/ansi/wrapAnsi.spec.d.ts +2 -0
- package/esm/ansi/wrapAnsi.spec.d.ts.map +1 -0
- package/esm/ansi/wrapAnsi.spec.js +7 -0
- package/esm/ansi/wrapAnsi.spec.js.map +1 -0
- package/{libm → esm}/createColorLogReporter.browser.d.ts +0 -0
- package/esm/createColorLogReporter.browser.d.ts.map +1 -0
- package/{libm → esm}/createColorLogReporter.browser.js +2 -2
- package/esm/createColorLogReporter.browser.js.map +1 -0
- package/{libm → esm}/createColorLogReporter.d.ts +0 -0
- package/esm/createColorLogReporter.d.ts.map +1 -0
- package/{libm → esm}/createColorLogReporter.js +2 -2
- package/esm/createColorLogReporter.js.map +1 -0
- package/esm/createColorLogReporter.spec.d.ts +2 -0
- package/esm/createColorLogReporter.spec.d.ts.map +1 -0
- package/esm/createColorLogReporter.spec.js +152 -0
- package/esm/createColorLogReporter.spec.js.map +1 -0
- package/{libm → esm}/css/colors.d.ts +0 -0
- package/esm/css/colors.d.ts.map +1 -0
- package/{libm → esm}/css/colors.js +0 -0
- package/esm/css/colors.js.map +1 -0
- package/{libm → esm}/css/cssFormatter.d.ts +0 -0
- package/esm/css/cssFormatter.d.ts.map +1 -0
- package/{libm → esm}/css/cssFormatter.js +1 -1
- package/esm/css/cssFormatter.js.map +1 -0
- package/esm/css/cssFormatter.spec.d.ts +2 -0
- package/esm/css/cssFormatter.spec.d.ts.map +1 -0
- package/esm/css/cssFormatter.spec.js +28 -0
- package/esm/css/cssFormatter.spec.js.map +1 -0
- package/esm/css/index.d.ts +2 -0
- package/esm/css/index.d.ts.map +1 -0
- package/esm/css/index.js +2 -0
- package/esm/css/index.js.map +1 -0
- package/esm/index.d.ts +4 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +4 -0
- package/esm/index.js.map +1 -0
- package/esm/utils/index.d.ts +2 -0
- package/esm/utils/index.d.ts.map +1 -0
- package/esm/utils/index.js +2 -0
- package/esm/utils/index.js.map +1 -0
- package/{libm → esm}/utils/supportColor.browser.d.ts +0 -0
- package/esm/utils/supportColor.browser.d.ts.map +1 -0
- package/{libm → esm}/utils/supportColor.browser.js +3 -0
- package/esm/utils/supportColor.browser.js.map +1 -0
- package/{libm → esm}/utils/supportColor.d.ts +0 -0
- package/esm/utils/supportColor.d.ts.map +1 -0
- package/{libm → esm}/utils/supportColor.js +0 -0
- package/esm/utils/supportColor.js.map +1 -0
- package/package.json +81 -35
- package/{src → ts}/ansi/adjustCodes.ts +1 -1
- package/{src → ts}/ansi/ansiFormatter.ts +5 -5
- package/{src → ts}/ansi/constants.ts +0 -0
- package/{src → ts}/ansi/createColorCodes.ts +2 -3
- package/ts/ansi/index.ts +3 -0
- package/{src → ts}/ansi/isColor.ts +1 -1
- package/{src → ts}/ansi/wrapAnsi.ts +0 -0
- package/{src → ts}/createColorLogReporter.browser.ts +2 -2
- package/{src → ts}/createColorLogReporter.ts +2 -2
- package/{src → ts}/css/colors.ts +0 -0
- package/{src → ts}/css/cssFormatter.ts +1 -1
- package/ts/css/index.ts +1 -0
- package/ts/index.ts +3 -0
- package/ts/utils/index.ts +1 -0
- package/{src → ts}/utils/supportColor.browser.ts +6 -3
- package/{src → ts}/utils/supportColor.ts +0 -0
- package/CHANGELOG.md +0 -631
- package/dist/standard-log-color.js +0 -2
- package/dist/standard-log-color.js.gz +0 -0
- package/dist/standard-log-color.js.map +0 -1
- package/dist/standard-log-color.js.map.gz +0 -0
- package/lib/ansi/adjustCodes.d.ts.map +0 -1
- package/lib/ansi/adjustCodes.js +0 -16
- package/lib/ansi/adjustCodes.js.map +0 -1
- package/lib/ansi/ansiFormatter.d.ts.map +0 -1
- package/lib/ansi/ansiFormatter.js +0 -39
- package/lib/ansi/ansiFormatter.js.map +0 -1
- package/lib/ansi/constants.d.ts.map +0 -1
- package/lib/ansi/constants.js.map +0 -1
- package/lib/ansi/createColorCodes.d.ts.map +0 -1
- package/lib/ansi/createColorCodes.js +0 -41
- package/lib/ansi/createColorCodes.js.map +0 -1
- package/lib/ansi/index.d.ts +0 -4
- package/lib/ansi/index.d.ts.map +0 -1
- package/lib/ansi/index.js +0 -7
- package/lib/ansi/index.js.map +0 -1
- package/lib/ansi/isColor.d.ts.map +0 -1
- package/lib/ansi/isColor.js +0 -13
- package/lib/ansi/isColor.js.map +0 -1
- package/lib/ansi/wrapAnsi.d.ts.map +0 -1
- package/lib/ansi/wrapAnsi.js.map +0 -1
- package/lib/createColorLogReporter.browser.d.ts.map +0 -1
- package/lib/createColorLogReporter.browser.js.map +0 -1
- package/lib/createColorLogReporter.d.ts.map +0 -1
- package/lib/createColorLogReporter.js.map +0 -1
- package/lib/css/colors.d.ts.map +0 -1
- package/lib/css/colors.js.map +0 -1
- package/lib/css/cssFormatter.d.ts.map +0 -1
- package/lib/css/cssFormatter.js.map +0 -1
- package/lib/css/index.d.ts +0 -2
- package/lib/css/index.d.ts.map +0 -1
- package/lib/css/index.js +0 -5
- package/lib/css/index.js.map +0 -1
- package/lib/index.d.ts +0 -4
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -7
- package/lib/index.js.map +0 -1
- package/lib/utils/index.d.ts +0 -2
- package/lib/utils/index.d.ts.map +0 -1
- package/lib/utils/index.js +0 -5
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/supportColor.browser.d.ts.map +0 -1
- package/lib/utils/supportColor.browser.js.map +0 -1
- package/lib/utils/supportColor.d.ts.map +0 -1
- package/lib/utils/supportColor.js.map +0 -1
- package/libm/ansi/adjustCodes.d.ts.map +0 -1
- package/libm/ansi/adjustCodes.js.map +0 -1
- package/libm/ansi/ansiFormatter.d.ts.map +0 -1
- package/libm/ansi/ansiFormatter.js.map +0 -1
- package/libm/ansi/constants.d.ts.map +0 -1
- package/libm/ansi/constants.js.map +0 -1
- package/libm/ansi/createColorCodes.d.ts.map +0 -1
- package/libm/ansi/createColorCodes.js.map +0 -1
- package/libm/ansi/index.d.ts +0 -4
- package/libm/ansi/index.d.ts.map +0 -1
- package/libm/ansi/index.js +0 -4
- package/libm/ansi/index.js.map +0 -1
- package/libm/ansi/isColor.d.ts.map +0 -1
- package/libm/ansi/isColor.js.map +0 -1
- package/libm/ansi/wrapAnsi.d.ts.map +0 -1
- package/libm/ansi/wrapAnsi.js.map +0 -1
- package/libm/createColorLogReporter.browser.d.ts.map +0 -1
- package/libm/createColorLogReporter.browser.js.map +0 -1
- package/libm/createColorLogReporter.d.ts.map +0 -1
- package/libm/createColorLogReporter.js.map +0 -1
- package/libm/css/colors.d.ts.map +0 -1
- package/libm/css/colors.js.map +0 -1
- package/libm/css/cssFormatter.d.ts.map +0 -1
- package/libm/css/cssFormatter.js.map +0 -1
- package/libm/css/index.d.ts +0 -2
- package/libm/css/index.d.ts.map +0 -1
- package/libm/css/index.js +0 -2
- package/libm/css/index.js.map +0 -1
- package/libm/index.d.ts +0 -4
- package/libm/index.d.ts.map +0 -1
- package/libm/index.js +0 -4
- package/libm/index.js.map +0 -1
- package/libm/utils/index.d.ts +0 -2
- package/libm/utils/index.d.ts.map +0 -1
- package/libm/utils/index.js +0 -2
- package/libm/utils/index.js.map +0 -1
- package/libm/utils/supportColor.browser.d.ts.map +0 -1
- package/libm/utils/supportColor.browser.js.map +0 -1
- package/libm/utils/supportColor.d.ts.map +0 -1
- package/libm/utils/supportColor.js.map +0 -1
- package/src/ansi/adjustCodes.spec.ts +0 -12
- package/src/ansi/createColorCodes.spec.ts +0 -35
- package/src/ansi/index.ts +0 -3
- package/src/ansi/isColor.spec.ts +0 -18
- package/src/ansi/wrapAnsi.spec.ts +0 -7
- package/src/createColorLogReporter.spec.ts +0 -193
- package/src/css/cssFormatter.spec.ts +0 -30
- package/src/css/index.ts +0 -1
- package/src/index.ts +0 -3
- package/src/utils/index.ts +0 -1
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { addCustomLogLevel, clearCustomLogLevel, configForTest, logLevels, plainLogFormatter } from 'standard-log';
|
|
2
|
+
import { createAnsiFormatter, createColorLogReporter, createCssFormatter } from './index.js';
|
|
3
|
+
beforeAll(() => configForTest());
|
|
4
|
+
describe('rendering tests', () => {
|
|
5
|
+
test('default to color rendering', () => {
|
|
6
|
+
const reporter = createColorLogReporter();
|
|
7
|
+
['emergency', 'info', 'warn', 'debug'].forEach(level => {
|
|
8
|
+
reporter.write({ id: 'color', level: logLevels[level], args: ['hello', 'world'], timestamp: new Date() });
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
test('plain rendering', () => {
|
|
12
|
+
const reporter = createColorLogReporter({ formatter: plainLogFormatter });
|
|
13
|
+
['emergency', 'info', 'warn', 'debug'].forEach(level => {
|
|
14
|
+
reporter.write({ id: 'plain', level: logLevels[level], args: ['hello', 'world'], timestamp: new Date() });
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
test('different timestamp settings', () => {
|
|
18
|
+
const reporter = createColorLogReporter();
|
|
19
|
+
['none', 'iso', 'elapsed'].forEach((timestamp) => {
|
|
20
|
+
reporter.formatter = createAnsiFormatter({ timestamp });
|
|
21
|
+
reporter.write({ id: timestamp, level: logLevels.info, args: ['hello', 'world'], timestamp: new Date() });
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
test('different timestamp settings for css', () => {
|
|
25
|
+
const reporter = createColorLogReporter();
|
|
26
|
+
['none', 'iso', 'elapsed'].forEach((timestamp) => {
|
|
27
|
+
reporter.formatter = createCssFormatter({ timestamp });
|
|
28
|
+
reporter.write({ id: timestamp, level: logLevels.info, args: ['hello', 'world'], timestamp: new Date() });
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
describe('id', () => {
|
|
33
|
+
test('default is "console"', () => {
|
|
34
|
+
const reporter = createColorLogReporter();
|
|
35
|
+
expect(reporter.id).toBe('console');
|
|
36
|
+
});
|
|
37
|
+
test('can be overridden', () => {
|
|
38
|
+
const reporter = createColorLogReporter({ id: 'neo-console' });
|
|
39
|
+
expect(reporter.id).toBe('neo-console');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('log level', () => {
|
|
43
|
+
test('error, alert, critical and emergency logs are written to console.error', () => {
|
|
44
|
+
const id = 'log';
|
|
45
|
+
const reporter = createColorLogReporter();
|
|
46
|
+
const fakeConsole = reporter.console = createFakeConsole();
|
|
47
|
+
reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() });
|
|
48
|
+
reporter.write({ id, level: logLevels.critical, args: ['critical'], timestamp: new Date() });
|
|
49
|
+
reporter.write({ id, level: logLevels.alert, args: ['alert'], timestamp: new Date() });
|
|
50
|
+
reporter.write({ id, level: logLevels.error, args: ['error'], timestamp: new Date() });
|
|
51
|
+
expect(fakeConsole.errors.length).toBe(4);
|
|
52
|
+
});
|
|
53
|
+
test('warn logs are written to console.warn', () => {
|
|
54
|
+
const id = 'log';
|
|
55
|
+
const reporter = createColorLogReporter();
|
|
56
|
+
const fakeConsole = reporter.console = createFakeConsole();
|
|
57
|
+
reporter.write({ id, level: logLevels.warn, args: ['warn'], timestamp: new Date() });
|
|
58
|
+
expect(fakeConsole.warns.length).toBe(1);
|
|
59
|
+
});
|
|
60
|
+
test('notice and info logs are written to console.info', () => {
|
|
61
|
+
const id = 'log';
|
|
62
|
+
const reporter = createColorLogReporter();
|
|
63
|
+
const fakeConsole = reporter.console = createFakeConsole();
|
|
64
|
+
reporter.write({ id, level: logLevels.notice, args: ['notice'], timestamp: new Date() });
|
|
65
|
+
reporter.write({ id, level: logLevels.info, args: ['info'], timestamp: new Date() });
|
|
66
|
+
expect(fakeConsole.infos.length).toBe(2);
|
|
67
|
+
});
|
|
68
|
+
test('debug, trace, and planck logs are written to console.debug', () => {
|
|
69
|
+
const id = 'log';
|
|
70
|
+
const reporter = createColorLogReporter();
|
|
71
|
+
const fakeConsole = reporter.console = createFakeConsole();
|
|
72
|
+
reporter.write({ id, level: logLevels.debug, args: ['debug'], timestamp: new Date() });
|
|
73
|
+
reporter.write({ id, level: logLevels.trace, args: ['trace'], timestamp: new Date() });
|
|
74
|
+
reporter.write({ id, level: logLevels.planck, args: ['planck'], timestamp: new Date() });
|
|
75
|
+
expect(fakeConsole.debugs.length).toBe(3);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe('custom logs', () => {
|
|
79
|
+
afterEach(() => clearCustomLogLevel());
|
|
80
|
+
test('are written according to their log level value', () => {
|
|
81
|
+
addCustomLogLevel('high', 50);
|
|
82
|
+
addCustomLogLevel('important', 450);
|
|
83
|
+
addCustomLogLevel('interest', 650);
|
|
84
|
+
addCustomLogLevel('silly', 1000);
|
|
85
|
+
const id = 'log';
|
|
86
|
+
const reporter = createColorLogReporter();
|
|
87
|
+
const fakeConsole = reporter.console = createFakeConsole();
|
|
88
|
+
reporter.write({ id, level: 50, args: ['a'], timestamp: new Date() });
|
|
89
|
+
reporter.write({ id, level: 450, args: ['b'], timestamp: new Date() });
|
|
90
|
+
reporter.write({ id, level: 650, args: ['c'], timestamp: new Date() });
|
|
91
|
+
reporter.write({ id, level: 1000, args: ['d'], timestamp: new Date() });
|
|
92
|
+
expect(fakeConsole.errors.length).toBe(1);
|
|
93
|
+
expect(fakeConsole.warns.length).toBe(1);
|
|
94
|
+
expect(fakeConsole.infos.length).toBe(1);
|
|
95
|
+
expect(fakeConsole.debugs.length).toBe(1);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
const idFormatter = (entry) => [entry.id];
|
|
99
|
+
describe('formatter', () => {
|
|
100
|
+
test('use specific formatter', () => {
|
|
101
|
+
const id = 'id-only';
|
|
102
|
+
const reporter = createColorLogReporter({ formatter: idFormatter });
|
|
103
|
+
const fakeConsole = reporter.console = createFakeConsole();
|
|
104
|
+
reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() });
|
|
105
|
+
expect(fakeConsole.errors).toEqual([['id-only']]);
|
|
106
|
+
});
|
|
107
|
+
test('formatter can be changed afterward', () => {
|
|
108
|
+
const id = 'id-only';
|
|
109
|
+
const reporter = createColorLogReporter();
|
|
110
|
+
reporter.formatter = idFormatter;
|
|
111
|
+
const fakeConsole = reporter.console = createFakeConsole();
|
|
112
|
+
reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() });
|
|
113
|
+
expect(fakeConsole.errors).toEqual([['id-only']]);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
describe('filter', () => {
|
|
117
|
+
const filter = (entry) => entry.id !== 'secret';
|
|
118
|
+
test('use specific filter', () => {
|
|
119
|
+
const reporter = createColorLogReporter({ formatter: idFormatter, filter });
|
|
120
|
+
const fakeConsole = reporter.console = createFakeConsole();
|
|
121
|
+
reporter.write({ id: 'normal', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() });
|
|
122
|
+
reporter.write({ id: 'secret', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() });
|
|
123
|
+
expect(fakeConsole.errors).toEqual([['normal']]);
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
test('write log entry with multiple arguments', () => {
|
|
127
|
+
const id = 'log';
|
|
128
|
+
const reporter = createColorLogReporter({ formatter: plainLogFormatter });
|
|
129
|
+
const fakeConsole = reporter.console = createFakeConsole();
|
|
130
|
+
const entry = { id, level: logLevels.info, args: ['a', 'b', 'c'], timestamp: new Date() };
|
|
131
|
+
reporter.write(entry);
|
|
132
|
+
expect(fakeConsole.infos).toEqual([
|
|
133
|
+
[entry.timestamp.toISOString(), 'log', '(INFO)', 'a', 'b', 'c']
|
|
134
|
+
]);
|
|
135
|
+
});
|
|
136
|
+
function createFakeConsole() {
|
|
137
|
+
const errors = [];
|
|
138
|
+
const infos = [];
|
|
139
|
+
const warns = [];
|
|
140
|
+
const debugs = [];
|
|
141
|
+
return {
|
|
142
|
+
errors,
|
|
143
|
+
infos,
|
|
144
|
+
warns,
|
|
145
|
+
debugs,
|
|
146
|
+
error(...args) { errors.push(args); },
|
|
147
|
+
info(...args) { infos.push(args); },
|
|
148
|
+
warn(...args) { warns.push(args); },
|
|
149
|
+
debug(...args) { debugs.push(args); }
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=createColorLogReporter.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createColorLogReporter.spec.js","sourceRoot":"","sources":["../ts/createColorLogReporter.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n addCustomLogLevel, clearCustomLogLevel, configForTest,\n ConsoleLogFormatter, LogFilter, logLevels, plainLogFormatter\n} from 'standard-log'\nimport { createAnsiFormatter, createColorLogReporter, createCssFormatter } from './index.js'\n\nbeforeAll(() => configForTest())\n\ndescribe('rendering tests', () => {\n test('default to color rendering', () => {\n const reporter = createColorLogReporter();\n ['emergency', 'info', 'warn', 'debug'].forEach(level => {\n reporter.write({ id: 'color', level: (logLevels as any)[level], args: ['hello', 'world'], timestamp: new Date() })\n })\n })\n test('plain rendering', () => {\n const reporter = createColorLogReporter({ formatter: plainLogFormatter });\n ['emergency', 'info', 'warn', 'debug'].forEach(level => {\n reporter.write({ id: 'plain', level: (logLevels as any)[level], args: ['hello', 'world'], timestamp: new Date() })\n })\n })\n\n test('different timestamp settings', () => {\n const reporter = createColorLogReporter();\n\n ['none', 'iso', 'elapsed'].forEach((timestamp: any) => {\n reporter.formatter = createAnsiFormatter({ timestamp })\n reporter.write({ id: timestamp, level: logLevels.info, args: ['hello', 'world'], timestamp: new Date() })\n })\n })\n test('different timestamp settings for css', () => {\n const reporter = createColorLogReporter();\n\n ['none', 'iso', 'elapsed'].forEach((timestamp: any) => {\n reporter.formatter = createCssFormatter({ timestamp })\n reporter.write({ id: timestamp, level: logLevels.info, args: ['hello', 'world'], timestamp: new Date() })\n })\n })\n})\n\ndescribe('id', () => {\n test('default is \"console\"', () => {\n const reporter = createColorLogReporter()\n expect(reporter.id).toBe('console')\n })\n test('can be overridden', () => {\n const reporter = createColorLogReporter({ id: 'neo-console' })\n expect(reporter.id).toBe('neo-console')\n })\n})\n\ndescribe('log level', () => {\n test('error, alert, critical and emergency logs are written to console.error', () => {\n const id = 'log'\n const reporter = createColorLogReporter()\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.critical, args: ['critical'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.alert, args: ['alert'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.error, args: ['error'], timestamp: new Date() })\n\n expect(fakeConsole.errors.length).toBe(4)\n })\n\n test('warn logs are written to console.warn', () => {\n const id = 'log'\n const reporter = createColorLogReporter()\n\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.warn, args: ['warn'], timestamp: new Date() })\n\n expect(fakeConsole.warns.length).toBe(1)\n })\n\n test('notice and info logs are written to console.info', () => {\n const id = 'log'\n const reporter = createColorLogReporter()\n\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.notice, args: ['notice'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.info, args: ['info'], timestamp: new Date() })\n\n expect(fakeConsole.infos.length).toBe(2)\n })\n\n\n test('debug, trace, and planck logs are written to console.debug', () => {\n const id = 'log'\n const reporter = createColorLogReporter()\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.debug, args: ['debug'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.trace, args: ['trace'], timestamp: new Date() })\n reporter.write({ id, level: logLevels.planck, args: ['planck'], timestamp: new Date() })\n\n expect(fakeConsole.debugs.length).toBe(3)\n })\n})\n\ndescribe('custom logs', () => {\n afterEach(() => clearCustomLogLevel())\n\n test('are written according to their log level value', () => {\n addCustomLogLevel('high', 50)\n addCustomLogLevel('important', 450)\n addCustomLogLevel('interest', 650)\n addCustomLogLevel('silly', 1000)\n\n const id = 'log'\n const reporter = createColorLogReporter()\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: 50, args: ['a'], timestamp: new Date() })\n reporter.write({ id, level: 450, args: ['b'], timestamp: new Date() })\n reporter.write({ id, level: 650, args: ['c'], timestamp: new Date() })\n reporter.write({ id, level: 1000, args: ['d'], timestamp: new Date() })\n\n expect(fakeConsole.errors.length).toBe(1)\n expect(fakeConsole.warns.length).toBe(1)\n expect(fakeConsole.infos.length).toBe(1)\n expect(fakeConsole.debugs.length).toBe(1)\n })\n})\n\nconst idFormatter: ConsoleLogFormatter = (entry) => [entry.id]\n\ndescribe('formatter', () => {\n test('use specific formatter', () => {\n const id = 'id-only'\n const reporter = createColorLogReporter({ formatter: idFormatter })\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n\n expect(fakeConsole.errors).toEqual([['id-only']])\n })\n\n test('formatter can be changed afterward', () => {\n const id = 'id-only'\n const reporter = createColorLogReporter()\n reporter.formatter = idFormatter\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id, level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n\n expect(fakeConsole.errors).toEqual([['id-only']])\n })\n})\n\ndescribe('filter', () => {\n const filter: LogFilter = (entry) => entry.id !== 'secret'\n test('use specific filter', () => {\n const reporter = createColorLogReporter({ formatter: idFormatter, filter })\n const fakeConsole = reporter.console = createFakeConsole()\n\n reporter.write({ id: 'normal', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n reporter.write({ id: 'secret', level: logLevels.emergency, args: ['emergency'], timestamp: new Date() })\n\n expect(fakeConsole.errors).toEqual([['normal']])\n })\n})\n\ntest('write log entry with multiple arguments', () => {\n const id = 'log'\n const reporter = createColorLogReporter({ formatter: plainLogFormatter })\n const fakeConsole = reporter.console = createFakeConsole()\n\n const entry = { id, level: logLevels.info, args: ['a', 'b', 'c'], timestamp: new Date() }\n\n reporter.write(entry)\n\n expect(fakeConsole.infos).toEqual([\n [entry.timestamp.toISOString(), 'log', '(INFO)', 'a', 'b', 'c']\n ])\n})\n\nfunction createFakeConsole() {\n const errors: any[] = []\n const infos: any[] = []\n const warns: any[] = []\n const debugs: any[] = []\n return {\n errors,\n infos,\n warns,\n debugs,\n error(...args: any[]) { errors.push(args) },\n info(...args: any[]) { infos.push(args) },\n warn(...args: any[]) { warns.push(args) },\n debug(...args: any[]) { debugs.push(args) }\n }\n}\n"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../ts/css/colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,eAAO,MAAM,OAAO,EAAE,QAUrB,CAAA"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../ts/css/colors.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAAa;IAC/B,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;IAC/B,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;IAClC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE;IAClC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;IACpC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;IACnC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;IACpC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;IACnC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE;IACpC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;CAC/B,CAAA","sourcesContent":["import { ColorMap } from 'color-map'\n\nexport const rainbow: ColorMap = [\n { index: 0, rgb: [150, 0, 90] },\n { index: 0.125, rgb: [0, 0, 200] },\n { index: 0.25, rgb: [0, 25, 255] },\n { index: 0.375, rgb: [0, 152, 255] },\n { index: 0.5, rgb: [44, 255, 150] },\n { index: 0.625, rgb: [151, 255, 0] },\n { index: 0.75, rgb: [255, 234, 0] },\n { index: 0.875, rgb: [255, 111, 0] },\n { index: 1, rgb: [255, 0, 0] }\n]\n"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cssFormatter.d.ts","sourceRoot":"","sources":["../../ts/css/cssFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAKlF,oBAAY,mBAAmB,GAAG;IAChC;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,eAAe,CAAA;CAC3B,CAAA;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,WAQnC,QAAQ,WA+B7C"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createTimestampFormatter } from 'standard-log';
|
|
2
2
|
import { createColorsFromMap, rgbHex } from 'color-map';
|
|
3
3
|
import { required } from 'unpartial';
|
|
4
|
-
import { rainbow } from './colors';
|
|
4
|
+
import { rainbow } from './colors.js';
|
|
5
5
|
export function createCssFormatter(options) {
|
|
6
6
|
const { maxColor, timestamp } = required({ maxColor: 20, timestamp: 'none' }, options);
|
|
7
7
|
const loggerMap = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cssFormatter.js","sourceRoot":"","sources":["../../ts/css/cssFormatter.ts"],"names":[],"mappings":"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","sourcesContent":["import { createTimestampFormatter, LogEntry, TimestampFormat } from 'standard-log'\nimport { createColorsFromMap, RGB, RGBA, rgbHex } from 'color-map'\nimport { required } from 'unpartial'\nimport { rainbow } from './colors.js'\n\nexport type CssFormatterOptions = {\n /**\n * How many colors available.\n * Recommend at least 10.\n * Default to 20.\n */\n maxColor: number,\n timestamp: TimestampFormat\n}\n\nexport function createCssFormatter(options?: Partial<CssFormatterOptions>) {\n const { maxColor, timestamp } = required({ maxColor: 20, timestamp: 'none' }, options)\n const loggerMap: Record<string, RGB> = {}\n const colorMap: RGBA[] = createColorsFromMap(rainbow, maxColor)\n let count = 0\n\n const timestampFormatter = createTimestampFormatter(timestamp)\n\n return function cssFormatter(entry: LogEntry) {\n let idStr = `%c ${entry.id} `\n let args: any[]\n if (firstArgIsColorTemplate(entry.args)) {\n idStr += entry.args[0]\n args = [...entry.args.slice(1)]\n }\n else {\n args = [...entry.args]\n }\n const rgb = getRgb(entry.id)\n const background = rgbHex(rgb)\n const border = rgbHex(rgb.map(x => Math.max(0, x - 32)) as RGB)\n const color = getForegroundColor(rgb)\n const result = [\n idStr,\n `padding: 2px; margin: 2px; line-height: 1.8em;background: ${background};border: 1px solid ${border};color: ${color};`,\n ...args\n ]\n const t = timestampFormatter(entry.timestamp)\n if (t !== undefined) result.push(t)\n return result\n }\n\n function firstArgIsColorTemplate(args: any[]) {\n return typeof args[0] === 'string' && args[0].indexOf('%c') !== -1\n }\n\n function getRgb(id: string) {\n return loggerMap[id] = loggerMap[id] || colorMap[count++ & maxColor]\n }\n}\n\nconst gammaMap = {\n rc: 0.2126,\n gc: 0.7152,\n bc: 0.0722,\n lowc: 1 / 12.92\n}\n\nfunction getForegroundColor(background: RGB) {\n // Setting the contrasting color as default\n let color = getComplementary(background)\n const bgLuminance = getRelativeLuminance(background)\n const fgLuminance = (color === '#ffffff') ?\n getRelativeLuminance([255, 255, 255]) :\n getRelativeLuminance([0, 0, 0])\n const relativeL = bgLuminance > fgLuminance ? (bgLuminance + 0.05) / (fgLuminance + 0.05) : (fgLuminance + 0.05) / (bgLuminance + 0.05)\n\n // Can set the contrast ratio based on text size later.\n if (relativeL < 4.5) {\n const avgLuminance = background[0] * gammaMap['rc'] + background[1] * gammaMap['gc'] + background[2] * gammaMap['bc']\n\n // If the relative contrast is lower than standard, we switch color to black/white\n color = (avgLuminance < 220) ? '#ffffff' : '#000000'\n }\n return color\n}\n\nfunction getRelativeLuminance(rgb: RGB) {\n // https://www.w3.org/TR/WCAG/#relativeluminancedef\n const rsrgb = rgb[0] / 255\n const gsrgb = rgb[1] / 255\n const bsrgb = rgb[2] / 255\n\n const r = rsrgb <= 0.03928 ? rsrgb * gammaMap['lowc'] : Math.pow((rsrgb + 0.055) / 1.055, 2.4)\n const g = gsrgb <= 0.03928 ? gsrgb * gammaMap['lowc'] : Math.pow((gsrgb + 0.055) / 1.055, 2.4)\n const b = bsrgb <= 0.03928 ? bsrgb * gammaMap['lowc'] : Math.pow((bsrgb + 0.055) / 1.055, 2.4)\n\n return r * gammaMap['rc'] + g * gammaMap['gc'] + b * gammaMap['bc']\n}\n\nfunction getComplementary(rgb: RGB) {\n const r = 255 - rgb[0]\n const g = 255 - rgb[1]\n const b = 255 - rgb[2]\n return rgbHex([r, g, b])\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cssFormatter.spec.d.ts","sourceRoot":"","sources":["../../ts/css/cssFormatter.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { logLevels } from 'standard-log';
|
|
2
|
+
import a from 'assertron';
|
|
3
|
+
import { anything } from 'satisfier';
|
|
4
|
+
import { createCssFormatter } from './cssFormatter.js';
|
|
5
|
+
const cssFormatter = createCssFormatter();
|
|
6
|
+
test('same logger will get the same color', () => {
|
|
7
|
+
const a = cssFormatter({ id: 'log', level: logLevels.critical, args: ['a'], timestamp: new Date() });
|
|
8
|
+
const b = cssFormatter({ id: 'log', level: logLevels.critical, args: ['a'], timestamp: new Date() });
|
|
9
|
+
expect(a[1]).toEqual('padding: 2px; margin: 2px; line-height: 1.8em;background: #96005a;border: 1px solid #76003a;color: #ffffff;');
|
|
10
|
+
expect(a[1]).toEqual(b[1]);
|
|
11
|
+
});
|
|
12
|
+
test('support color template', () => {
|
|
13
|
+
const actual = cssFormatter({
|
|
14
|
+
id: 'color-template',
|
|
15
|
+
level: logLevels.critical,
|
|
16
|
+
args: ['%c SomeColored Text %c AnotherColor', 'color:blue;', 'color:red;', 'not colored'],
|
|
17
|
+
timestamp: new Date()
|
|
18
|
+
});
|
|
19
|
+
a.satisfies(actual, [
|
|
20
|
+
'%c color-template %c SomeColored Text %c AnotherColor',
|
|
21
|
+
'padding: 2px; margin: 2px; line-height: 1.8em;background: #96005a;border: 1px solid #76003a;color: #ffffff;',
|
|
22
|
+
'color:blue;',
|
|
23
|
+
'color:red;',
|
|
24
|
+
'not colored',
|
|
25
|
+
anything
|
|
26
|
+
]);
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=cssFormatter.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cssFormatter.spec.js","sourceRoot":"","sources":["../../ts/css/cssFormatter.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,CAAC,MAAM,WAAW,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAA;AAEzC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;IAC/C,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;IACpG,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAA;IACpG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,6GAA6G,CAAC,CAAA;IACnI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;IAClC,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,SAAS,CAAC,QAAQ;QACzB,IAAI,EAAE,CAAC,qCAAqC,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,CAAC;QACzF,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC,CAAA;IACF,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE;QAClB,uDAAuD;QACvD,6GAA6G;QAC7G,aAAa;QACb,YAAY;QACZ,aAAa;QACb,QAAQ;KACT,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import { logLevels } from 'standard-log'\nimport a from 'assertron'\nimport { anything } from 'satisfier'\nimport { createCssFormatter } from './cssFormatter.js'\n\nconst cssFormatter = createCssFormatter()\n\ntest('same logger will get the same color', () => {\n const a = cssFormatter({ id: 'log', level: logLevels.critical, args: ['a'], timestamp: new Date() })\n const b = cssFormatter({ id: 'log', level: logLevels.critical, args: ['a'], timestamp: new Date() })\n expect(a[1]).toEqual('padding: 2px; margin: 2px; line-height: 1.8em;background: #96005a;border: 1px solid #76003a;color: #ffffff;')\n expect(a[1]).toEqual(b[1])\n})\n\ntest('support color template', () => {\n const actual = cssFormatter({\n id: 'color-template',\n level: logLevels.critical,\n args: ['%c SomeColored Text %c AnotherColor', 'color:blue;', 'color:red;', 'not colored'],\n timestamp: new Date()\n })\n a.satisfies(actual, [\n '%c color-template %c SomeColored Text %c AnotherColor',\n 'padding: 2px; margin: 2px; line-height: 1.8em;background: #96005a;border: 1px solid #76003a;color: #ffffff;',\n 'color:blue;',\n 'color:red;',\n 'not colored',\n anything\n ])\n})\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/css/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
|
package/esm/css/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/css/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA","sourcesContent":["export * from './cssFormatter.js'\n"]}
|
package/esm/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA"}
|
package/esm/index.js
ADDED
package/esm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../ts/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA","sourcesContent":["export * from './ansi/index.js'\nexport * from './createColorLogReporter.js'\nexport * from './css/index.js'\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA","sourcesContent":["export * from './supportColor.js'\n"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supportColor.browser.d.ts","sourceRoot":"","sources":["../../ts/utils/supportColor.browser.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,IAAI,OAAO,CAEtC"}
|
|
@@ -6,6 +6,7 @@ function doesBrowserSupportColor() {
|
|
|
6
6
|
// NB: In an Electron preload script, document will be defined but not fully
|
|
7
7
|
// initialized. Since we know we're in Chrome, we'll just detect this case
|
|
8
8
|
// explicitly
|
|
9
|
+
// @ts-ignore
|
|
9
10
|
if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
|
|
10
11
|
return true;
|
|
11
12
|
}
|
|
@@ -15,8 +16,10 @@ function doesBrowserSupportColor() {
|
|
|
15
16
|
}
|
|
16
17
|
// Is webkit? http://stackoverflow.com/a/16459606/376773
|
|
17
18
|
// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
|
|
19
|
+
// @ts-ignore
|
|
18
20
|
return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
|
|
19
21
|
// Is firebug? http://stackoverflow.com/a/398120/376773
|
|
22
|
+
// @ts-ignore
|
|
20
23
|
(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
|
|
21
24
|
// Is firefox >= v31?
|
|
22
25
|
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supportColor.browser.js","sourceRoot":"","sources":["../../ts/utils/supportColor.browser.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY;IAC1B,OAAO,uBAAuB,EAAE,CAAA;AAClC,CAAC;AAED,uBAAuB;AACvB,SAAS,uBAAuB;IAC9B,4EAA4E;IAC5E,0EAA0E;IAC1E,aAAa;IACb,aAAa;IACb,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACpH,OAAO,IAAI,CAAA;KACZ;IAED,oDAAoD;IACpD,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE;QAC/H,OAAO,KAAK,CAAA;KACb;IAED,wDAAwD;IACxD,4FAA4F;IAC5F,aAAa;IACb,OAAO,CAAC,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACvJ,uDAAuD;QACvD,aAAa;QACb,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACnI,qBAAqB;QACrB,8EAA8E;QAC9E,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACvJ,mEAAmE;QACnE,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAA;AAC9H,CAAC","sourcesContent":["export function supportColor(): boolean {\n return doesBrowserSupportColor()\n}\n\n// istanbul ignore next\nfunction doesBrowserSupportColor() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n // @ts-ignore\n if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n return true\n }\n\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false\n }\n\n // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n // @ts-ignore\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // Is firebug? http://stackoverflow.com/a/398120/376773\n // @ts-ignore\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // Double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/))\n}\n"]}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supportColor.d.ts","sourceRoot":"","sources":["../../ts/utils/supportColor.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,IAAI,OAAO,CAEtC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supportColor.js","sourceRoot":"","sources":["../../ts/utils/supportColor.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["export function supportColor(): boolean {\n return true\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "standard-log-color",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Color console reporter for `standard-log`",
|
|
5
5
|
"homepage": "https://github.com/unional/standard-log/tree/master/packages/color",
|
|
6
6
|
"bugs": {
|
|
@@ -15,52 +15,98 @@
|
|
|
15
15
|
"name": "Homa Wong",
|
|
16
16
|
"email": "homawong@gmail.com"
|
|
17
17
|
},
|
|
18
|
+
"sideEffects": false,
|
|
19
|
+
"type": "module",
|
|
20
|
+
"exports": {
|
|
21
|
+
"import": "./esm/index.js",
|
|
22
|
+
"require": "./cjs/index.js"
|
|
23
|
+
},
|
|
24
|
+
"main": "./cjs/index.js",
|
|
25
|
+
"browser": {
|
|
26
|
+
"./cjs/createColorLogReporter.d.ts": "./cjs/createColorLogReporter.browser.d.ts",
|
|
27
|
+
"./cjs/createColorLogReporter.js": "./cjs/createColorLogReporter.browser.js",
|
|
28
|
+
"./cjs/createColorLogReporter.js.map": "./cjs/createColorLogReporter.browser.js.map",
|
|
29
|
+
"./cjs/utils/supportColor.d.ts": "./cjs/utils/supportColor.browser.d.ts",
|
|
30
|
+
"./cjs/utils/supportColor.js": "./cjs/utils/supportColor.browser.js",
|
|
31
|
+
"./cjs/utils/supportColor.js.map": "./cjs/utils/supportColor.browser.js.map",
|
|
32
|
+
"./esm/createColorLogReporter.d.ts": "./esm/createColorLogReporter.browser.d.ts",
|
|
33
|
+
"./esm/createColorLogReporter.js": "./esm/createColorLogReporter.browser.js",
|
|
34
|
+
"./esm/createColorLogReporter.js.map": "./esm/createColorLogReporter.browser.js.map",
|
|
35
|
+
"./esm/utils/supportColor.d.ts": "./esm/utils/supportColor.browser.d.ts",
|
|
36
|
+
"./esm/utils/supportColor.js": "./esm/utils/supportColor.browser.js",
|
|
37
|
+
"./esm/utils/supportColor.js.map": "./esm/utils/supportColor.browser.js.map",
|
|
38
|
+
"./ts/createColorLogReporter.ts": "./ts/createColorLogReporter.browser.ts",
|
|
39
|
+
"./ts/utils/supportColor.ts": "./ts/utils/supportColor.browser.ts"
|
|
40
|
+
},
|
|
41
|
+
"types": "./cjs/index.d.ts",
|
|
18
42
|
"files": [
|
|
19
43
|
"dist",
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
44
|
+
"cjs",
|
|
45
|
+
"esm",
|
|
46
|
+
"ts",
|
|
47
|
+
"!ts/**/*.spec.ts"
|
|
23
48
|
],
|
|
24
|
-
"main": "lib/index.js",
|
|
25
|
-
"module": "libm/index.js",
|
|
26
|
-
"jsnext:main": "libm/index.js",
|
|
27
|
-
"typings": "lib/index.d.ts",
|
|
28
|
-
"browser": {
|
|
29
|
-
"./lib/utils/supportColor.js": "./lib/utils/supportColor.browser.js",
|
|
30
|
-
"./lib/utils/supportColor.d.ts": "./lib/utils/supportColor.browser.d.ts",
|
|
31
|
-
"./lib/utils/supportColor.js.map": "./lib/utils/supportColor.browser.js.map",
|
|
32
|
-
"./libm/utils/supportColor.js": "./libm/utils/supportColor.browser.js",
|
|
33
|
-
"./libm/utils/supportColor.d.ts": "./libm/utils/supportColor.browser.d.ts",
|
|
34
|
-
"./libm/utils/supportColor.js.map": "./libm/utils/supportColor.browser.js.map",
|
|
35
|
-
"./src/utils/supportColor.ts": "./src/utils/supportColor.browser.ts",
|
|
36
|
-
"./lib/createColorLogReporter.js": "./lib/createColorLogReporter.browser.js",
|
|
37
|
-
"./lib/createColorLogReporter.d.ts": "./lib/createColorLogReporter.browser.d.ts",
|
|
38
|
-
"./lib/createColorLogReporter.js.map": "./lib/createColorLogReporter.browser.js.map",
|
|
39
|
-
"./libm/createColorLogReporter.js": "./libm/createColorLogReporter.browser.js",
|
|
40
|
-
"./libm/createColorLogReporter.d.ts": "./libm/createColorLogReporter.browser.d.ts",
|
|
41
|
-
"./libm/createColorLogReporter.js.map": "./libm/createColorLogReporter.browser.js.map",
|
|
42
|
-
"./src/createColorLogReporter.ts": "./src/createColorLogReporter.browser.ts"
|
|
43
|
-
},
|
|
44
|
-
"sideEffects": false,
|
|
45
49
|
"scripts": {
|
|
46
|
-
"build": "
|
|
47
|
-
"
|
|
48
|
-
"
|
|
50
|
+
"build": "npm-run-all build:clean -p build:cjs build:esm build:tslib bundle:es5 bundle:esm",
|
|
51
|
+
"build:clean": "rimraf .tsbuildinfo || true",
|
|
52
|
+
"build:cjs": "tsc -p ./tsconfig.cjs.json",
|
|
53
|
+
"build:esm": "tsc -p ./tsconfig.esm.json",
|
|
54
|
+
"build:tslib": "tsc -p ./tsconfig.tslib.json",
|
|
55
|
+
"bundle": "run-p bundle:es5 bundle:esm",
|
|
56
|
+
"bundle:es5": "webpack -c ./webpack.es5.cjs",
|
|
57
|
+
"bundle:esm": "webpack -c ./webpack.esm.cjs",
|
|
58
|
+
"clean": "rimraf dist lib libm csj esm tslib coverage || true",
|
|
49
59
|
"coverage": "jest --coverage",
|
|
50
|
-
"depcheck": "
|
|
60
|
+
"depcheck": "depcheck",
|
|
61
|
+
"lint": "cross-env TIMING=1 eslint --ext=ts,js,cjs,mjs .",
|
|
51
62
|
"prepublishOnly": "yarn build && yarn bundle",
|
|
63
|
+
"size": "size-limit",
|
|
52
64
|
"test": "jest",
|
|
53
65
|
"test:watch": "jest --watch",
|
|
54
|
-
"verify": "
|
|
66
|
+
"verify": "npm-run-all clean -p build depcheck lint coverage -p size",
|
|
55
67
|
"watch": "jest --watch"
|
|
56
68
|
},
|
|
57
69
|
"dependencies": {
|
|
58
|
-
"color-map": "^1.1.
|
|
59
|
-
"
|
|
60
|
-
|
|
70
|
+
"color-map": "^1.1.4",
|
|
71
|
+
"unpartial": "^0.7.4"
|
|
72
|
+
},
|
|
73
|
+
"devDependencies": {
|
|
74
|
+
"@size-limit/preset-small-lib": "^7.0.8",
|
|
75
|
+
"assertron": "^9.2.3",
|
|
76
|
+
"compression-webpack-plugin": "^10.0.0",
|
|
77
|
+
"cross-env": "^7.0.3",
|
|
78
|
+
"depcheck": "^1.4.3",
|
|
79
|
+
"eslint": "^8.17.0",
|
|
80
|
+
"jest": "^28.1.0",
|
|
81
|
+
"npm-run-all": "^4.1.5",
|
|
82
|
+
"param-case": "^3.0.4",
|
|
83
|
+
"pascal-case": "^3.1.2",
|
|
84
|
+
"rimraf": "^3.0.2",
|
|
85
|
+
"satisfier": "^5.2.0",
|
|
86
|
+
"size-limit": "^7.0.8",
|
|
87
|
+
"standard-log": "workspace:*",
|
|
88
|
+
"ts-jest": "^28.0.4",
|
|
89
|
+
"ts-loader": "^9.3.0",
|
|
90
|
+
"tslib": "^2.4.0",
|
|
91
|
+
"typescript": "^4.7.3",
|
|
92
|
+
"webpack": "^5.73.0",
|
|
93
|
+
"webpack-cli": "^4.9.2"
|
|
61
94
|
},
|
|
62
95
|
"peerDependencies": {
|
|
63
|
-
"standard-log": ">=
|
|
96
|
+
"standard-log": ">=8.0.0"
|
|
64
97
|
},
|
|
65
|
-
"
|
|
98
|
+
"size-limit": [
|
|
99
|
+
{
|
|
100
|
+
"path": "./cjs/index.js",
|
|
101
|
+
"limit": "10 kB"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"path": "./esm/index.js",
|
|
105
|
+
"limit": "10 kB"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"path": "./tslib/index.js",
|
|
109
|
+
"limit": "10 kB"
|
|
110
|
+
}
|
|
111
|
+
]
|
|
66
112
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ANSI_RED, ANSI_BACKGROUND, ANSI_YELLOW, ANSI_BLACK, ANSI_FOREGROUND } from './constants'
|
|
1
|
+
import { ANSI_RED, ANSI_BACKGROUND, ANSI_YELLOW, ANSI_BLACK, ANSI_FOREGROUND } from './constants.js'
|
|
2
2
|
|
|
3
3
|
export function adjustCodes(codes: number[], consoleMethod: string) {
|
|
4
4
|
if (
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { createTimestampFormatter, LogEntry, TimestampFormat, toConsoleMethod } from 'standard-log'
|
|
2
|
-
import { adjustCodes } from './adjustCodes'
|
|
3
|
-
import { ANSI_FOREGROUND, ANSI_RED, ANSI_YELLOW } from './constants'
|
|
4
|
-
import { createColorCodes } from './createColorCodes'
|
|
5
|
-
import { wrapAnsi, wrapAnsiId } from './wrapAnsi'
|
|
1
|
+
import { createTimestampFormatter, LogEntry, TimestampFormat, toConsoleMethod } from 'standard-log'
|
|
2
|
+
import { adjustCodes } from './adjustCodes.js'
|
|
3
|
+
import { ANSI_FOREGROUND, ANSI_RED, ANSI_YELLOW } from './constants.js'
|
|
4
|
+
import { createColorCodes } from './createColorCodes.js'
|
|
5
|
+
import { wrapAnsi, wrapAnsiId } from './wrapAnsi.js'
|
|
6
6
|
|
|
7
7
|
type Context = {
|
|
8
8
|
colorMap: number[][],
|
|
File without changes
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { ANSI_BACKGROUND, ANSI_BLUE, ANSI_BRIGHT, ANSI_CYAN, ANSI_FOREGROUND, ANSI_GREEN, ANSI_MAGENTA, ANSI_RED, ANSI_UNDERSCORE, ANSI_WHITE, ANSI_YELLOW } from './constants'
|
|
2
|
-
import { isColor } from './isColor'
|
|
3
|
-
|
|
1
|
+
import { ANSI_BACKGROUND, ANSI_BLUE, ANSI_BRIGHT, ANSI_CYAN, ANSI_FOREGROUND, ANSI_GREEN, ANSI_MAGENTA, ANSI_RED, ANSI_UNDERSCORE, ANSI_WHITE, ANSI_YELLOW } from './constants.js'
|
|
2
|
+
import { isColor } from './isColor.js'
|
|
4
3
|
|
|
5
4
|
export function createColorCodes() {
|
|
6
5
|
const baseColors = [ANSI_RED, ANSI_GREEN, ANSI_YELLOW, ANSI_BLUE, ANSI_MAGENTA, ANSI_CYAN]
|
package/ts/ansi/index.ts
ADDED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnsiColor, AnsiStyle, ANSI_BACKGROUND, ANSI_FOREGROUND, ANSI_WHITE } from './constants'
|
|
1
|
+
import { AnsiColor, AnsiStyle, ANSI_BACKGROUND, ANSI_FOREGROUND, ANSI_WHITE } from './constants.js'
|
|
2
2
|
|
|
3
3
|
export function isColor(color: number[], foreground: AnsiColor, background: AnsiColor, style?: AnsiStyle) {
|
|
4
4
|
if (color.length === 1) {
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ConsoleLogReporterOptions, createConsoleLogReporter, plainLogFormatter } from 'standard-log'
|
|
2
2
|
import { required } from 'unpartial'
|
|
3
|
-
import { createCssFormatter } from './css'
|
|
4
|
-
import { supportColor } from './utils'
|
|
3
|
+
import { createCssFormatter } from './css/index.js'
|
|
4
|
+
import { supportColor } from './utils/index.js'
|
|
5
5
|
|
|
6
6
|
export function createColorLogReporter(options?: ConsoleLogReporterOptions) {
|
|
7
7
|
return createConsoleLogReporter(required({ formatter: getFormatter() }, options))
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ConsoleLogReporterOptions, createConsoleLogReporter, plainLogFormatter } from 'standard-log'
|
|
2
2
|
import { required } from 'unpartial'
|
|
3
|
-
import { createAnsiFormatter } from './ansi'
|
|
4
|
-
import { supportColor } from './utils'
|
|
3
|
+
import { createAnsiFormatter } from './ansi/index.js'
|
|
4
|
+
import { supportColor } from './utils/index.js'
|
|
5
5
|
|
|
6
6
|
export function createColorLogReporter(options?: ConsoleLogReporterOptions) {
|
|
7
7
|
return createConsoleLogReporter(required({ formatter: getFormatter() }, options))
|
package/{src → ts}/css/colors.ts
RENAMED
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createTimestampFormatter, LogEntry, TimestampFormat } from 'standard-log'
|
|
2
2
|
import { createColorsFromMap, RGB, RGBA, rgbHex } from 'color-map'
|
|
3
3
|
import { required } from 'unpartial'
|
|
4
|
-
import { rainbow } from './colors'
|
|
4
|
+
import { rainbow } from './colors.js'
|
|
5
5
|
|
|
6
6
|
export type CssFormatterOptions = {
|
|
7
7
|
/**
|