colorino 0.7.4 → 0.8.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/README.md +285 -262
- package/dist/browser.cjs +1 -1
- package/dist/browser.d.cts +2 -2
- package/dist/browser.d.mts +2 -2
- package/dist/browser.d.ts +2 -2
- package/dist/browser.mjs +1 -1
- package/dist/node.cjs +10 -4
- package/dist/node.d.cts +2 -2
- package/dist/node.d.mts +2 -2
- package/dist/node.d.ts +2 -2
- package/dist/node.mjs +10 -4
- package/dist/shared/{colorino.D5epIHWO.d.cts → colorino.5b7Tq7_-.d.cts} +1 -1
- package/dist/shared/{colorino.D5epIHWO.d.mts → colorino.5b7Tq7_-.d.mts} +1 -1
- package/dist/shared/{colorino.D5epIHWO.d.ts → colorino.5b7Tq7_-.d.ts} +1 -1
- package/dist/shared/{colorino.Di3ygmIx.cjs → colorino.B2VY_Grv.cjs} +21 -3
- package/dist/shared/{colorino.BKNhSLFs.mjs → colorino.CwcatZ-Z.mjs} +21 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,262 +1,285 @@
|
|
|
1
|
-
# <a id="0"></a>🎨 Colorino
|
|
2
|
-
|
|
3
|
-
**The zero-configuration, context-aware `console` logger for Node.js and the browser.**
|
|
4
|
-
|
|
5
|
-
Colorino automatically adapts its palette to your terminal or browser DevTools theme.
|
|
6
|
-
|
|
7
|
-
# <a id="0"></a><a id="0"></a>
|
|
8
|
-
|
|
9
|
-
- [Why use Colorino?](#1)
|
|
10
|
-
- [Features](#2)
|
|
11
|
-
- [Installation](#3)
|
|
12
|
-
- [Usage](#4)
|
|
13
|
-
- [Quick Start](#4-1)
|
|
14
|
-
- [Creating a Custom Logger](#4-2)
|
|
15
|
-
- [Options & Theme Overrides](#4-3)
|
|
16
|
-
- [Available Theme Presets](#4-3-1)
|
|
17
|
-
- [Examples](#4-3-2)
|
|
18
|
-
- [Customization](#4-4)
|
|
19
|
-
- [Supported Environment Variables](#4-5)
|
|
20
|
-
- [Colorino vs. Chalk](#5)
|
|
21
|
-
- [API Reference](#6)
|
|
22
|
-
- [1. `colorino` (default instance)](#6-1)
|
|
23
|
-
- [2. `createColorino(palette?, options?)` (factory)](#6-2)
|
|
24
|
-
- [Extending Colorino](#7)
|
|
25
|
-
- [Why This Pattern?](#7-1)
|
|
26
|
-
- [License](#8)
|
|
27
|
-
|
|
28
|
-
<!-- Table of contents is made with https://github.com/eugene-khyst/md-toc-cli -->
|
|
29
|
-
|
|
30
|
-
## <a id="1"></a>Why use Colorino?
|
|
31
|
-
|
|
32
|
-
Plain `console.log` is colorless and inconsistent. Libraries like `chalk` let you style strings, but you have to decorate every message and manually manage color choices.
|
|
33
|
-
|
|
34
|
-
Colorino is different: it’s a "batteries-included" logging facade with beautiful, theme-aware colors and a familiar API—no learning curve, no configuration. Instantly upgrade your logs everywhere.
|
|
35
|
-
|
|
36
|
-
## <a id="2"></a>Features
|
|
37
|
-
|
|
38
|
-
- 🎨 **Smart Theming:** Automatically detects *dark/light* mode and
|
|
39
|
-
- 🤝 **Familiar API:** If you know `console.log`, you already know Colorino: all standard log levels are supported.
|
|
40
|
-
- 🔀 **Environment-Aware:** Works in **Node.js** (ANSI color and truecolor) and all major **Browsers** (CSS styles).
|
|
41
|
-
- ⚡️ **Fast, Lightweight:** Minimal dependencies, works great in modern frameworks and CLIs.
|
|
42
|
-
- 🔒 **Robust:** Handles bad inputs and weird environments safely.
|
|
43
|
-
- 🛠️ **Customizable:** Override individual log colors for your own branding.
|
|
44
|
-
|
|
45
|
-
## <a id="3"></a>Installation
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
npm install colorino
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## <a id="4"></a>Usage
|
|
52
|
-
|
|
53
|
-
### <a id="4-1"></a>Quick Start
|
|
54
|
-
|
|
55
|
-
Just import the default instance and log away!
|
|
56
|
-
|
|
57
|
-
```typescript
|
|
58
|
-
import { colorino } from 'colorino'
|
|
59
|
-
|
|
60
|
-
// All log levels automatically themed
|
|
61
|
-
colorino.error('A critical error!')
|
|
62
|
-
colorino.warn('A warning message.')
|
|
63
|
-
colorino.info('Useful info logging.')
|
|
64
|
-
colorino.log('A plain log.')
|
|
65
|
-
colorino.debug('Debug with objects:', { x: 5, y: 9 })
|
|
66
|
-
colorino.trace('Tracing app start...')
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### <a id="4-2"></a>Creating a Custom Logger
|
|
70
|
-
|
|
71
|
-
Need your own colors or different settings?
|
|
72
|
-
Use the factory to create as many loggers as you want (each with its own palette and options):
|
|
73
|
-
|
|
74
|
-
```typescript
|
|
75
|
-
import { createColorino } from 'colorino'
|
|
76
|
-
|
|
77
|
-
const myLogger = createColorino(
|
|
78
|
-
{ // Palette (partial)
|
|
79
|
-
error: '#ff007b',
|
|
80
|
-
info: '#3498db'
|
|
81
|
-
},
|
|
82
|
-
{ disableWarnings: true } // Options (see below)
|
|
83
|
-
)
|
|
84
|
-
myLogger.error('Critical!')
|
|
85
|
-
myLogger.info('Rebranded info!')
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### <a id="4-3"></a>Options & Theme Overrides
|
|
89
|
-
|
|
90
|
-
`createColorino(palette?, options?)` accepts:
|
|
91
|
-
|
|
92
|
-
| Option | Type | Default | Description |
|
|
93
|
-
|-------------------|--------------------------------|---------|--------------------------------------------------------------------------------|
|
|
94
|
-
| `disableWarnings` | `boolean` | `false` | Suppress warnings when color support can't be detected or is disabled. |
|
|
95
|
-
| `theme` | `ThemeOption` (see below) | `'auto'`| Control the active color theme or force a specific mode. |
|
|
96
|
-
|
|
97
|
-
**`theme` accepts three types of values:**
|
|
98
|
-
|
|
99
|
-
1. **`'auto'`** (Default): Automatically detects your terminal or browser theme (dark/light) and applies the matching default preset.
|
|
100
|
-
2. **`'dark' | 'light'`**: Forces the logger into a specific mode using the default preset for that mode.
|
|
101
|
-
3. **`ThemeName`**: Forces a specific built-in palette (e.g., `'dracula'`).
|
|
102
|
-
|
|
103
|
-
#### <a id="4-3-1"></a>Available Theme Presets
|
|
104
|
-
|
|
105
|
-
Pass any of these names to the `theme` option to use a specific palette:
|
|
106
|
-
|
|
107
|
-
| Theme Name | Type | Description |
|
|
108
|
-
|----------------------|-----------------|--------------------------------------------------|
|
|
109
|
-
| `'dracula'` | **Dark** (High) | Vibrant pinks, purples, and cyans. |
|
|
110
|
-
| `'catppuccin-mocha'` | **Dark** (Low) |
|
|
111
|
-
| `'
|
|
112
|
-
| `'
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
//
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
//
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
```typescript
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
logger
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
1
|
+
# <a id="0"></a>🎨 Colorino
|
|
2
|
+
|
|
3
|
+
**The zero-configuration, context-aware `console` logger for Node.js and the browser.**
|
|
4
|
+
|
|
5
|
+
Colorino automatically adapts its palette to your terminal or browser DevTools theme, and defaults to **minimal, high-contrast** colors unless you opt into a specific theme preset.
|
|
6
|
+
|
|
7
|
+
# <a id="0"></a><a id="0"></a>
|
|
8
|
+
|
|
9
|
+
- [Why use Colorino?](#1)
|
|
10
|
+
- [Features](#2)
|
|
11
|
+
- [Installation](#3)
|
|
12
|
+
- [Usage](#4)
|
|
13
|
+
- [Quick Start](#4-1)
|
|
14
|
+
- [Creating a Custom Logger](#4-2)
|
|
15
|
+
- [Options & Theme Overrides](#4-3)
|
|
16
|
+
- [Available Theme Presets](#4-3-1)
|
|
17
|
+
- [Examples](#4-3-2)
|
|
18
|
+
- [Customization](#4-4)
|
|
19
|
+
- [Supported Environment Variables](#4-5)
|
|
20
|
+
- [Colorino vs. Chalk](#5)
|
|
21
|
+
- [API Reference](#6)
|
|
22
|
+
- [1. `colorino` (default instance)](#6-1)
|
|
23
|
+
- [2. `createColorino(palette?, options?)` (factory)](#6-2)
|
|
24
|
+
- [Extending Colorino](#7)
|
|
25
|
+
- [Why This Pattern?](#7-1)
|
|
26
|
+
- [License](#8)
|
|
27
|
+
|
|
28
|
+
<!-- Table of contents is made with https://github.com/eugene-khyst/md-toc-cli -->
|
|
29
|
+
|
|
30
|
+
## <a id="1"></a>Why use Colorino?
|
|
31
|
+
|
|
32
|
+
Plain `console.log` is colorless and inconsistent. Libraries like `chalk` let you style strings, but you have to decorate every message and manually manage color choices.
|
|
33
|
+
|
|
34
|
+
Colorino is different: it’s a "batteries-included" logging facade with beautiful, theme-aware colors and a familiar API—no learning curve, no configuration. Instantly upgrade your logs everywhere.
|
|
35
|
+
|
|
36
|
+
## <a id="2"></a>Features
|
|
37
|
+
|
|
38
|
+
- 🎨 **Smart Theming:** Automatically detects *dark/light* mode and applies a **minimal** high-contrast base palette by default; opt into a coordinated theme preset when you want richer colors.
|
|
39
|
+
- 🤝 **Familiar API:** If you know `console.log`, you already know Colorino: all standard log levels are supported.
|
|
40
|
+
- 🔀 **Environment-Aware:** Works in **Node.js** (ANSI color and truecolor) and all major **Browsers** (CSS styles).
|
|
41
|
+
- ⚡️ **Fast, Lightweight:** Minimal dependencies, works great in modern frameworks and CLIs.
|
|
42
|
+
- 🔒 **Robust:** Handles bad inputs and weird environments safely.
|
|
43
|
+
- 🛠️ **Customizable:** Override individual log colors for your own branding.
|
|
44
|
+
|
|
45
|
+
## <a id="3"></a>Installation
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npm install colorino
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## <a id="4"></a>Usage
|
|
52
|
+
|
|
53
|
+
### <a id="4-1"></a>Quick Start
|
|
54
|
+
|
|
55
|
+
Just import the default instance and log away!
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
import { colorino } from 'colorino'
|
|
59
|
+
|
|
60
|
+
// All log levels automatically themed
|
|
61
|
+
colorino.error('A critical error!')
|
|
62
|
+
colorino.warn('A warning message.')
|
|
63
|
+
colorino.info('Useful info logging.')
|
|
64
|
+
colorino.log('A plain log.')
|
|
65
|
+
colorino.debug('Debug with objects:', { x: 5, y: 9 })
|
|
66
|
+
colorino.trace('Tracing app start...')
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### <a id="4-2"></a>Creating a Custom Logger
|
|
70
|
+
|
|
71
|
+
Need your own colors or different settings?
|
|
72
|
+
Use the factory to create as many loggers as you want (each with its own palette and options):
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
import { createColorino } from 'colorino'
|
|
76
|
+
|
|
77
|
+
const myLogger = createColorino(
|
|
78
|
+
{ // Palette (partial)
|
|
79
|
+
error: '#ff007b',
|
|
80
|
+
info: '#3498db'
|
|
81
|
+
},
|
|
82
|
+
{ disableWarnings: true } // Options (see below)
|
|
83
|
+
)
|
|
84
|
+
myLogger.error('Critical!')
|
|
85
|
+
myLogger.info('Rebranded info!')
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### <a id="4-3"></a>Options & Theme Overrides
|
|
89
|
+
|
|
90
|
+
`createColorino(palette?, options?)` accepts:
|
|
91
|
+
|
|
92
|
+
| Option | Type | Default | Description |
|
|
93
|
+
|-------------------|--------------------------------|---------|--------------------------------------------------------------------------------|
|
|
94
|
+
| `disableWarnings` | `boolean` | `false` | Suppress warnings when color support can't be detected or is disabled. |
|
|
95
|
+
| `theme` | `ThemeOption` (see below) | `'auto'`| Control the active color theme or force a specific mode. |
|
|
96
|
+
|
|
97
|
+
**`theme` accepts three types of values:**
|
|
98
|
+
|
|
99
|
+
1. **`'auto'`** (Default): Automatically detects your terminal or browser theme (dark/light) and applies the matching default preset.
|
|
100
|
+
2. **`'dark' | 'light'`**: Forces the logger into a specific mode using the default preset for that mode.
|
|
101
|
+
3. **`ThemeName`**: Forces a specific built-in palette (e.g., `'dracula'`).
|
|
102
|
+
|
|
103
|
+
#### <a id="4-3-1"></a>Available Theme Presets
|
|
104
|
+
|
|
105
|
+
Pass any of these names to the `theme` option to use a specific palette:
|
|
106
|
+
|
|
107
|
+
| Theme Name | Type | Description |
|
|
108
|
+
|----------------------|-----------------|--------------------------------------------------|
|
|
109
|
+
| `'dracula'` | **Dark** (High) | Vibrant pinks, purples, and cyans. |
|
|
110
|
+
| `'catppuccin-mocha'` | **Dark** (Low) | Soothing pastel colors. |
|
|
111
|
+
| `'minimal-dark'` | **Dark** | *Default Dark (auto).* Minimal, high-contrast. |
|
|
112
|
+
| `'minimal-light'` | **Light** | *Default Light (auto).* Minimal, high-contrast. |
|
|
113
|
+
| `'github-light'` | **Light** (High)| Clean, sharp, high-contrast. |
|
|
114
|
+
| `'catppuccin-latte'` | **Light** (Low) | Warm, cozy light mode with soft colors. |
|
|
115
|
+
|
|
116
|
+
#### <a id="4-3-2"></a>Examples
|
|
117
|
+
|
|
118
|
+
**1. Minimal defaults with custom branding (recommended):**
|
|
119
|
+
Set only the colors you care about; everything else stays maximally readable.
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
// Only customize error and warn
|
|
123
|
+
const myLogger = createColorino({
|
|
124
|
+
error: '#ff007b',
|
|
125
|
+
warn: '#ffa500'
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
// Detected dark terminal:
|
|
129
|
+
// - error: #ff007b (your custom red)
|
|
130
|
+
// - warn: #ffa500 (your custom orange)
|
|
131
|
+
// - info, log, debug, trace: #ffffff (white - safe on dark)
|
|
132
|
+
|
|
133
|
+
// Detected light terminal:
|
|
134
|
+
// - error: #ff007b (your custom red)
|
|
135
|
+
// - warn: #ffa500 (your custom orange)
|
|
136
|
+
// - info, log, debug, trace: #000000 (black - safe on light)
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**2. Force a specific mode (uses defaults):**
|
|
140
|
+
Useful for CI/CD or environments where detection fails.
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
// Forces dark mode using the default minimal palette (minimal-dark)
|
|
144
|
+
const darkLogger = createColorino({}, { theme: 'dark' })
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**3. Use a specific preset:**
|
|
148
|
+
Instant branding with zero configuration.
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
// Forces the Dracula palette
|
|
152
|
+
const draculaLogger = createColorino({}, { theme: 'dracula' })
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**4. Customize a preset:**
|
|
156
|
+
Overlay your own colors on top of a built-in theme.
|
|
157
|
+
|
|
158
|
+
```typescript
|
|
159
|
+
// Use GitHub Light but with a custom error color
|
|
160
|
+
const myLogger = createColorino(
|
|
161
|
+
{ error: '#ff007b' },
|
|
162
|
+
{ theme: 'github-light' }
|
|
163
|
+
)
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
> **Tip:**
|
|
167
|
+
> Forcing `'dark'` or `'light'` bypasses automatic theming, ensuring predictable colors in environments with unknown or unsupported theme detection (like some CI pipelines, dumb terminals, or minimal browsers).
|
|
168
|
+
|
|
169
|
+
### <a id="4-4"></a>Customization
|
|
170
|
+
|
|
171
|
+
Use your brand colors by passing a partial palette to the `createColorino` factory. Any log levels you don't specify will use the detected **minimal** defaults (`minimal-dark` / `minimal-light`) unless you explicitly select a theme preset.
|
|
172
|
+
|
|
173
|
+
```typescript
|
|
174
|
+
import { createColorino } from 'colorino'
|
|
175
|
+
|
|
176
|
+
// Custom error color; others use theme defaults
|
|
177
|
+
const myLogger = createColorino({ error: '#ff007b' })
|
|
178
|
+
|
|
179
|
+
myLogger.error('Oh no!') // Uses your custom color
|
|
180
|
+
myLogger.info('Still styled by theme.') // Uses the default theme color
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### <a id="4-5"></a>Supported Environment Variables
|
|
184
|
+
|
|
185
|
+
Colorino auto-detects your environment and color support, but you can override behavior using these standard environment variables (compatible with Chalk):
|
|
186
|
+
|
|
187
|
+
| Variable | Effect | Example |
|
|
188
|
+
|------------------|---------------------------------------------------|--------------------------|
|
|
189
|
+
| `NO_COLOR` | Forces *no color* output | `NO_COLOR=1 node app.js` |
|
|
190
|
+
| `FORCE_COLOR` | Forces color (`1`=ANSI, `2`=256, `3`=truecolor) | `FORCE_COLOR=3 node app.js` |
|
|
191
|
+
| `CLICOLOR` | `"0"` disables color | `CLICOLOR=0 node app.js` |
|
|
192
|
+
| `CLICOLOR_FORCE` | Non-`"0"` value enables color even if not a TTY | `CLICOLOR_FORCE=1 node app.js` |
|
|
193
|
+
| `TERM` | Terminal type, can increase/decrease support | `TERM=xterm-256color` |
|
|
194
|
+
| `COLORTERM` | `'truecolor'` or `'24bit'` enables truecolor | `COLORTERM=truecolor` |
|
|
195
|
+
| `WT_SESSION` | Detected for Windows Terminal (enables color) | |
|
|
196
|
+
| `CI` | Many CI platforms default to *no color* | `CI=1 node app.js` |
|
|
197
|
+
|
|
198
|
+
## <a id="5"></a>Colorino vs. Chalk
|
|
199
|
+
|
|
200
|
+
| Feature | 🎨 **Colorino** | 🖍️ **Chalk** |
|
|
201
|
+
|--------------------------|----------------------------|-----------------|
|
|
202
|
+
| Out-of-box logs | ✔ themed, all log levels | ✘ string styling|
|
|
203
|
+
| Zero-config | ✔ | ✘ manual, per-use|
|
|
204
|
+
| Node + browser | ✔ | ✘ (Node only) |
|
|
205
|
+
| CSS console logs | ✔ | ✘ |
|
|
206
|
+
| Extensible / Composable | ✔ (via factory) | ✘ |
|
|
207
|
+
|
|
208
|
+
## <a id="6"></a>API Reference
|
|
209
|
+
|
|
210
|
+
The `colorino` package exports two main items:
|
|
211
|
+
|
|
212
|
+
### <a id="6-1"></a>1. `colorino` (default instance)
|
|
213
|
+
|
|
214
|
+
A pre-configured, zero-setup logger instance. Just import and use.
|
|
215
|
+
|
|
216
|
+
- `.log(...args)`
|
|
217
|
+
- `.info(...args)`
|
|
218
|
+
- `.warn(...args)`
|
|
219
|
+
- `.error(...args)`
|
|
220
|
+
- `.debug(...args)`
|
|
221
|
+
- `.trace(...args)`
|
|
222
|
+
|
|
223
|
+
### <a id="6-2"></a>2. `createColorino(palette?, options?)` (factory)
|
|
224
|
+
|
|
225
|
+
A factory function to create your own customized logger instances.
|
|
226
|
+
|
|
227
|
+
- `palette` (`Partial<Palette>`): An object to override default colors for specific log levels (e.g., `{ error: '#ff007b' }`).
|
|
228
|
+
- `options` (`ColorinoOptions`): An object to control behavior:
|
|
229
|
+
- `disableWarnings: boolean` (default `false`): Suppress warnings on environments with no color support.
|
|
230
|
+
- `theme: 'dark' | 'light'` (default `auto`): Force a specific theme instead of auto-detecting.
|
|
231
|
+
|
|
232
|
+
## <a id="7"></a>Extending Colorino
|
|
233
|
+
|
|
234
|
+
Example: Add a `fatal()` logger for critical errors.
|
|
235
|
+
|
|
236
|
+
Since colorino uses a factory pattern, extend it by creating your own factory that composes the base logger with additional methods:
|
|
237
|
+
|
|
238
|
+
```typescript
|
|
239
|
+
import { createColorino, type ColorinoOptions, type Palette } from 'colorino'
|
|
240
|
+
|
|
241
|
+
// Create a factory for your custom logger
|
|
242
|
+
export function createMyLogger(palette?: Partial<Palette>, options?: ColorinoOptions) {
|
|
243
|
+
// Get the base logger instance
|
|
244
|
+
const baseLogger = createColorino(palette, options)
|
|
245
|
+
|
|
246
|
+
// Define your custom method
|
|
247
|
+
function fatal(...args: unknown[]): void {
|
|
248
|
+
// Reuse the base logger's error method
|
|
249
|
+
baseLogger.error(...args)
|
|
250
|
+
|
|
251
|
+
// Add your custom behavior
|
|
252
|
+
if (typeof process !== 'undefined' && process.exit) {
|
|
253
|
+
process.exit(1)
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// Return a new object with all base methods + your custom ones
|
|
258
|
+
// This preserves type safety and the original API
|
|
259
|
+
return {
|
|
260
|
+
...baseLogger,
|
|
261
|
+
fatal,
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Usage:
|
|
267
|
+
|
|
268
|
+
```typescript
|
|
269
|
+
const logger = createMyLogger({ error: '#d92626' })
|
|
270
|
+
|
|
271
|
+
logger.info('Starting!')
|
|
272
|
+
logger.fatal('Missing config: Exiting')
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### <a id="7-1"></a>Why This Pattern?
|
|
276
|
+
|
|
277
|
+
- **Composition > Inheritance**: No fragile base class problems
|
|
278
|
+
- **Type Safe**: TypeScript infers the return type correctly
|
|
279
|
+
- **Future Proof**: Works even if colorino's internal implementation changes
|
|
280
|
+
- **Clean**: No messing with `super()` or constructor parameters
|
|
281
|
+
- **Composable**: You can layer multiple extensions
|
|
282
|
+
|
|
283
|
+
## <a id="8"></a>License
|
|
284
|
+
|
|
285
|
+
[MIT](LICENSE.md)
|
package/dist/browser.cjs
CHANGED
package/dist/browser.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.
|
|
2
|
-
export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.
|
|
1
|
+
import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.5b7Tq7_-.cjs';
|
|
2
|
+
export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.5b7Tq7_-.cjs';
|
|
3
3
|
|
|
4
4
|
declare function createColorino(palette?: Partial<Palette>, options?: ColorinoOptions): Colorino;
|
|
5
5
|
|
package/dist/browser.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.
|
|
2
|
-
export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.
|
|
1
|
+
import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.5b7Tq7_-.mjs';
|
|
2
|
+
export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.5b7Tq7_-.mjs';
|
|
3
3
|
|
|
4
4
|
declare function createColorino(palette?: Partial<Palette>, options?: ColorinoOptions): Colorino;
|
|
5
5
|
|
package/dist/browser.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.
|
|
2
|
-
export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.
|
|
1
|
+
import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.5b7Tq7_-.js';
|
|
2
|
+
export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.5b7Tq7_-.js';
|
|
3
3
|
|
|
4
4
|
declare function createColorino(palette?: Partial<Palette>, options?: ColorinoOptions): Colorino;
|
|
5
5
|
|
package/dist/browser.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as ColorLevel, t as themePalettes, a as Colorino, I as InputValidator, d as determineBaseTheme } from './shared/colorino.
|
|
1
|
+
import { C as ColorLevel, t as themePalettes, a as Colorino, I as InputValidator, d as determineBaseTheme } from './shared/colorino.CwcatZ-Z.mjs';
|
|
2
2
|
|
|
3
3
|
class BrowserColorSupportDetector {
|
|
4
4
|
constructor(_window, _navigator, _overrideTheme) {
|
package/dist/node.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const determineBaseTheme = require('./shared/colorino.
|
|
3
|
+
const determineBaseTheme = require('./shared/colorino.B2VY_Grv.cjs');
|
|
4
|
+
const node_child_process = require('node:child_process');
|
|
4
5
|
|
|
5
6
|
class OscThemeQuerier {
|
|
6
7
|
constructor(_stdin, _stdout, _timeout = 300, _cacheTtl = 36e5) {
|
|
@@ -54,9 +55,14 @@ class OscThemeQuerier {
|
|
|
54
55
|
this._stdin.pause();
|
|
55
56
|
}
|
|
56
57
|
_sleepSync(ms) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
if (process.platform === "win32") {
|
|
59
|
+
node_child_process.spawnSync("timeout", ["/T", String(Math.ceil(ms / 1e3)), "/NOBREAK"], {
|
|
60
|
+
stdio: "ignore",
|
|
61
|
+
shell: true
|
|
62
|
+
});
|
|
63
|
+
} else {
|
|
64
|
+
node_child_process.spawnSync("sleep", [String(ms / 1e3)], { stdio: "ignore" });
|
|
65
|
+
}
|
|
60
66
|
}
|
|
61
67
|
_parseResponse(response) {
|
|
62
68
|
const rgbMatch = response.match(
|
package/dist/node.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.
|
|
2
|
-
export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.
|
|
1
|
+
import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.5b7Tq7_-.cjs';
|
|
2
|
+
export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.5b7Tq7_-.cjs';
|
|
3
3
|
|
|
4
4
|
declare function createColorino(palette?: Partial<Palette>, options?: ColorinoOptions): Colorino;
|
|
5
5
|
|
package/dist/node.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.
|
|
2
|
-
export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.
|
|
1
|
+
import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.5b7Tq7_-.mjs';
|
|
2
|
+
export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.5b7Tq7_-.mjs';
|
|
3
3
|
|
|
4
4
|
declare function createColorino(palette?: Partial<Palette>, options?: ColorinoOptions): Colorino;
|
|
5
5
|
|
package/dist/node.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.
|
|
2
|
-
export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.
|
|
1
|
+
import { P as Palette, C as ColorinoOptions, a as Colorino } from './shared/colorino.5b7Tq7_-.js';
|
|
2
|
+
export { L as LogLevel, T as ThemeName, t as themePalettes } from './shared/colorino.5b7Tq7_-.js';
|
|
3
3
|
|
|
4
4
|
declare function createColorino(palette?: Partial<Palette>, options?: ColorinoOptions): Colorino;
|
|
5
5
|
|
package/dist/node.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { e as err, O as OscQueryError, o as ok, C as ColorLevel, d as determineBaseTheme, t as themePalettes, a as Colorino, I as InputValidator } from './shared/colorino.
|
|
1
|
+
import { e as err, O as OscQueryError, o as ok, C as ColorLevel, d as determineBaseTheme, t as themePalettes, a as Colorino, I as InputValidator } from './shared/colorino.CwcatZ-Z.mjs';
|
|
2
|
+
import { spawnSync } from 'node:child_process';
|
|
2
3
|
|
|
3
4
|
class OscThemeQuerier {
|
|
4
5
|
constructor(_stdin, _stdout, _timeout = 300, _cacheTtl = 36e5) {
|
|
@@ -52,9 +53,14 @@ class OscThemeQuerier {
|
|
|
52
53
|
this._stdin.pause();
|
|
53
54
|
}
|
|
54
55
|
_sleepSync(ms) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
if (process.platform === "win32") {
|
|
57
|
+
spawnSync("timeout", ["/T", String(Math.ceil(ms / 1e3)), "/NOBREAK"], {
|
|
58
|
+
stdio: "ignore",
|
|
59
|
+
shell: true
|
|
60
|
+
});
|
|
61
|
+
} else {
|
|
62
|
+
spawnSync("sleep", [String(ms / 1e3)], { stdio: "ignore" });
|
|
63
|
+
}
|
|
58
64
|
}
|
|
59
65
|
_parseResponse(response) {
|
|
60
66
|
const rgbMatch = response.match(
|
|
@@ -2,7 +2,7 @@ type ConsoleMethod = 'log' | 'info' | 'warn' | 'error' | 'trace' | 'debug';
|
|
|
2
2
|
type LogLevel = ConsoleMethod & string;
|
|
3
3
|
type Palette = Record<LogLevel, string>;
|
|
4
4
|
type TerminalTheme = 'dark' | 'light' | 'unknown';
|
|
5
|
-
type ThemeName = 'catppuccin-mocha' | 'catppuccin-latte' | 'dracula' | 'github-light';
|
|
5
|
+
type ThemeName = 'catppuccin-mocha' | 'catppuccin-latte' | 'dracula' | 'github-light' | 'minimal-dark' | 'minimal-light';
|
|
6
6
|
interface ColorinoOptions {
|
|
7
7
|
disableWarnings?: boolean;
|
|
8
8
|
theme?: TerminalTheme | ThemeName | 'auto';
|
|
@@ -2,7 +2,7 @@ type ConsoleMethod = 'log' | 'info' | 'warn' | 'error' | 'trace' | 'debug';
|
|
|
2
2
|
type LogLevel = ConsoleMethod & string;
|
|
3
3
|
type Palette = Record<LogLevel, string>;
|
|
4
4
|
type TerminalTheme = 'dark' | 'light' | 'unknown';
|
|
5
|
-
type ThemeName = 'catppuccin-mocha' | 'catppuccin-latte' | 'dracula' | 'github-light';
|
|
5
|
+
type ThemeName = 'catppuccin-mocha' | 'catppuccin-latte' | 'dracula' | 'github-light' | 'minimal-dark' | 'minimal-light';
|
|
6
6
|
interface ColorinoOptions {
|
|
7
7
|
disableWarnings?: boolean;
|
|
8
8
|
theme?: TerminalTheme | ThemeName | 'auto';
|
|
@@ -2,7 +2,7 @@ type ConsoleMethod = 'log' | 'info' | 'warn' | 'error' | 'trace' | 'debug';
|
|
|
2
2
|
type LogLevel = ConsoleMethod & string;
|
|
3
3
|
type Palette = Record<LogLevel, string>;
|
|
4
4
|
type TerminalTheme = 'dark' | 'light' | 'unknown';
|
|
5
|
-
type ThemeName = 'catppuccin-mocha' | 'catppuccin-latte' | 'dracula' | 'github-light';
|
|
5
|
+
type ThemeName = 'catppuccin-mocha' | 'catppuccin-latte' | 'dracula' | 'github-light' | 'minimal-dark' | 'minimal-light';
|
|
6
6
|
interface ColorinoOptions {
|
|
7
7
|
disableWarnings?: boolean;
|
|
8
8
|
theme?: TerminalTheme | ThemeName | 'auto';
|
|
@@ -783,15 +783,33 @@ const githubLightPalette = {
|
|
|
783
783
|
trace: "#6a737d"
|
|
784
784
|
// Gray-light
|
|
785
785
|
};
|
|
786
|
+
const minimalDarkPalette = {
|
|
787
|
+
log: "#ffffff",
|
|
788
|
+
info: "#ffffff",
|
|
789
|
+
warn: "#ffffff",
|
|
790
|
+
error: "#ffffff",
|
|
791
|
+
debug: "#ffffff",
|
|
792
|
+
trace: "#ffffff"
|
|
793
|
+
};
|
|
794
|
+
const minimalLightPalette = {
|
|
795
|
+
log: "#000000",
|
|
796
|
+
info: "#000000",
|
|
797
|
+
warn: "#000000",
|
|
798
|
+
error: "#000000",
|
|
799
|
+
debug: "#000000",
|
|
800
|
+
trace: "#000000"
|
|
801
|
+
};
|
|
786
802
|
|
|
787
803
|
const themePalettes = {
|
|
788
804
|
"catppuccin-mocha": catppuccinMochaPalette,
|
|
789
805
|
"catppuccin-latte": catppuccinLattePalette,
|
|
790
806
|
dracula: draculaPalette,
|
|
791
|
-
"github-light": githubLightPalette
|
|
807
|
+
"github-light": githubLightPalette,
|
|
808
|
+
"minimal-dark": minimalDarkPalette,
|
|
809
|
+
"minimal-light": minimalLightPalette
|
|
792
810
|
};
|
|
793
|
-
const defaultDarkTheme = "
|
|
794
|
-
const defaultLightTheme = "
|
|
811
|
+
const defaultDarkTheme = "minimal-dark";
|
|
812
|
+
const defaultLightTheme = "minimal-light";
|
|
795
813
|
function isThemeName(theme) {
|
|
796
814
|
return theme in themePalettes;
|
|
797
815
|
}
|
|
@@ -781,15 +781,33 @@ const githubLightPalette = {
|
|
|
781
781
|
trace: "#6a737d"
|
|
782
782
|
// Gray-light
|
|
783
783
|
};
|
|
784
|
+
const minimalDarkPalette = {
|
|
785
|
+
log: "#ffffff",
|
|
786
|
+
info: "#ffffff",
|
|
787
|
+
warn: "#ffffff",
|
|
788
|
+
error: "#ffffff",
|
|
789
|
+
debug: "#ffffff",
|
|
790
|
+
trace: "#ffffff"
|
|
791
|
+
};
|
|
792
|
+
const minimalLightPalette = {
|
|
793
|
+
log: "#000000",
|
|
794
|
+
info: "#000000",
|
|
795
|
+
warn: "#000000",
|
|
796
|
+
error: "#000000",
|
|
797
|
+
debug: "#000000",
|
|
798
|
+
trace: "#000000"
|
|
799
|
+
};
|
|
784
800
|
|
|
785
801
|
const themePalettes = {
|
|
786
802
|
"catppuccin-mocha": catppuccinMochaPalette,
|
|
787
803
|
"catppuccin-latte": catppuccinLattePalette,
|
|
788
804
|
dracula: draculaPalette,
|
|
789
|
-
"github-light": githubLightPalette
|
|
805
|
+
"github-light": githubLightPalette,
|
|
806
|
+
"minimal-dark": minimalDarkPalette,
|
|
807
|
+
"minimal-light": minimalLightPalette
|
|
790
808
|
};
|
|
791
|
-
const defaultDarkTheme = "
|
|
792
|
-
const defaultLightTheme = "
|
|
809
|
+
const defaultDarkTheme = "minimal-dark";
|
|
810
|
+
const defaultLightTheme = "minimal-light";
|
|
793
811
|
function isThemeName(theme) {
|
|
794
812
|
return theme in themePalettes;
|
|
795
813
|
}
|