termpainter 1.0.1 → 1.3.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 +129 -10
- package/dist/cjs/badge.cjs +3 -0
- package/dist/cjs/badge.d.ts.map +1 -1
- package/dist/cjs/badge.js.map +1 -1
- package/dist/cjs/box.cjs +6 -3
- package/dist/cjs/box.d.ts.map +1 -1
- package/dist/cjs/box.js.map +1 -1
- package/dist/cjs/env.cjs +4 -0
- package/dist/cjs/env.d.cts +1 -0
- package/dist/cjs/env.d.ts +1 -0
- package/dist/cjs/env.d.ts.map +1 -1
- package/dist/cjs/env.js.map +1 -1
- package/dist/cjs/icons.cjs +19 -0
- package/dist/cjs/icons.d.cts +10 -0
- package/dist/cjs/icons.d.ts +10 -0
- package/dist/cjs/icons.d.ts.map +1 -0
- package/dist/cjs/icons.js.map +1 -0
- package/dist/cjs/index.cjs +9 -1
- package/dist/cjs/index.d.cts +7 -2
- package/dist/cjs/index.d.ts +7 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/paint.cjs +8 -0
- package/dist/cjs/paint.d.cts +1 -0
- package/dist/cjs/paint.d.ts +1 -0
- package/dist/cjs/paint.d.ts.map +1 -1
- package/dist/cjs/paint.js.map +1 -1
- package/dist/cjs/silent.cjs +12 -0
- package/dist/cjs/silent.d.cts +3 -0
- package/dist/cjs/silent.d.ts +3 -0
- package/dist/cjs/silent.d.ts.map +1 -0
- package/dist/cjs/silent.js.map +1 -0
- package/dist/cjs/spinner.cjs +44 -0
- package/dist/cjs/spinner.d.cts +6 -0
- package/dist/cjs/spinner.d.ts +6 -0
- package/dist/cjs/spinner.d.ts.map +1 -0
- package/dist/cjs/spinner.js.map +1 -0
- package/dist/cjs/style.cjs +55 -8
- package/dist/cjs/style.d.cts +8 -4
- package/dist/cjs/style.d.ts +8 -4
- package/dist/cjs/style.d.ts.map +1 -1
- package/dist/cjs/style.js.map +1 -1
- package/dist/esm/badge.js +3 -0
- package/dist/esm/badge.js.map +1 -1
- package/dist/esm/box.js +7 -4
- package/dist/esm/box.js.map +1 -1
- package/dist/esm/env.js +3 -0
- package/dist/esm/env.js.map +1 -1
- package/dist/esm/icons.js +15 -0
- package/dist/esm/icons.js.map +1 -0
- package/dist/esm/index.js +5 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/paint.js +7 -0
- package/dist/esm/paint.js.map +1 -1
- package/dist/esm/silent.js +8 -0
- package/dist/esm/silent.js.map +1 -0
- package/dist/esm/spinner.js +41 -0
- package/dist/esm/spinner.js.map +1 -0
- package/dist/esm/style.js +55 -8
- package/dist/esm/style.js.map +1 -1
- package/dist/types/badge.d.ts.map +1 -1
- package/dist/types/box.d.ts.map +1 -1
- package/dist/types/env.d.ts +1 -0
- package/dist/types/env.d.ts.map +1 -1
- package/dist/types/icons.d.ts +10 -0
- package/dist/types/icons.d.ts.map +1 -0
- package/dist/types/index.d.ts +7 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/paint.d.ts +1 -0
- package/dist/types/paint.d.ts.map +1 -1
- package/dist/types/silent.d.ts +3 -0
- package/dist/types/silent.d.ts.map +1 -0
- package/dist/types/spinner.d.ts +6 -0
- package/dist/types/spinner.d.ts.map +1 -0
- package/dist/types/style.d.ts +8 -4
- package/dist/types/style.d.ts.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ npm install termpainter
|
|
|
11
11
|
|
|
12
12
|
## usage
|
|
13
13
|
```ts
|
|
14
|
-
import { style, badge, box, paint } from 'termpainter'
|
|
14
|
+
import { style, badge, box, paint, spin, strip, setIcons, setSilent, isInteractive } from 'termpainter'
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
### styles
|
|
@@ -27,6 +27,30 @@ style.bold('Important message') // bold white
|
|
|
27
27
|
style.highlight('termpainter') // cyan
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
+
### structured log output
|
|
31
|
+
|
|
32
|
+
any `style.*` method accepts an optional second argument — a plain object whose keys and values are printed below the message, indented and with keys in cyan.
|
|
33
|
+
```ts
|
|
34
|
+
style.info('User created', { id: 123, role: 'admin' })
|
|
35
|
+
// ℹ User created
|
|
36
|
+
// id 123
|
|
37
|
+
// role admin
|
|
38
|
+
|
|
39
|
+
style.error('Request failed', { status: 503, path: '/api/data' })
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### debug
|
|
43
|
+
|
|
44
|
+
only outputs when `DEBUG` is set to any truthy value. silently returns an empty string otherwise. styled gray + dim with a 🔍 prefix.
|
|
45
|
+
```ts
|
|
46
|
+
style.debug('cache miss for key xyz')
|
|
47
|
+
style.debug('query executed', { rows: 42, ms: 18 })
|
|
48
|
+
```
|
|
49
|
+
```sh
|
|
50
|
+
DEBUG=1 node app.js # shows debug output
|
|
51
|
+
node app.js # debug lines are invisible
|
|
52
|
+
```
|
|
53
|
+
|
|
30
54
|
### badges
|
|
31
55
|
|
|
32
56
|
inline labels. good for status, versions, environments.
|
|
@@ -40,10 +64,11 @@ badge('offline', 'red')
|
|
|
40
64
|
|
|
41
65
|
### boxes
|
|
42
66
|
|
|
43
|
-
draws a clean unicode border around anything. multiline works fine.
|
|
67
|
+
draws a clean unicode border around anything. multiline works fine. fully composable — pass styled strings directly.
|
|
44
68
|
```ts
|
|
45
69
|
box('Deploy complete\n3 services restarted\nAll checks passed', 'green')
|
|
46
70
|
box('Critical error\nProcess exited with code 1', 'red')
|
|
71
|
+
box(style.success('done')) // styled content inside a box
|
|
47
72
|
```
|
|
48
73
|
|
|
49
74
|
### divider
|
|
@@ -78,18 +103,105 @@ style.timestamp('Connection failed', 'red') // timestamp in red
|
|
|
78
103
|
|
|
79
104
|
### paint
|
|
80
105
|
|
|
81
|
-
low level, for when you need something the presets
|
|
106
|
+
low level, for when you need something the presets don't cover.
|
|
82
107
|
```ts
|
|
83
108
|
paint('custom text', { color: 'magenta', bold: true })
|
|
84
109
|
paint('highlighted', { color: 'white', bg: 'blue' })
|
|
85
110
|
paint('soft note', { color: 'gray', italic: true, dim: true })
|
|
86
111
|
```
|
|
87
112
|
|
|
113
|
+
### group
|
|
114
|
+
|
|
115
|
+
groups a list of already-styled lines under a labeled header.
|
|
116
|
+
```ts
|
|
117
|
+
style.group('Deploy', [
|
|
118
|
+
style.info('Building'),
|
|
119
|
+
style.success('Done'),
|
|
120
|
+
])
|
|
121
|
+
// ▶ Deploy
|
|
122
|
+
// ℹ Building
|
|
123
|
+
// ✔ Done
|
|
124
|
+
|
|
125
|
+
style.group('Checks', [
|
|
126
|
+
style.success('Lint passed'),
|
|
127
|
+
style.warn('Coverage at 74%'),
|
|
128
|
+
style.error('Tests failed'),
|
|
129
|
+
])
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### spinner
|
|
133
|
+
|
|
134
|
+
animated terminal spinner. returns a handle with `succeed` and `fail` to stop it. no external dependencies. automatically degrades to a single printed line when not running in a TTY (CI, piped output).
|
|
135
|
+
```ts
|
|
136
|
+
const s = spin('Deploying...')
|
|
137
|
+
|
|
138
|
+
// later, when done:
|
|
139
|
+
s.succeed('Deploy complete') // stops spinner, shows style.success
|
|
140
|
+
s.fail('Deploy failed') // stops spinner, shows style.error
|
|
141
|
+
|
|
142
|
+
// optional: reuse the original message
|
|
143
|
+
s.succeed()
|
|
144
|
+
s.fail()
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### strip
|
|
148
|
+
|
|
149
|
+
removes all ANSI escape codes from a string. useful for writing styled output to log files or comparing strings in tests.
|
|
150
|
+
```ts
|
|
151
|
+
const raw = strip(style.success('Build complete'))
|
|
152
|
+
// => '✔ Build complete'
|
|
153
|
+
|
|
154
|
+
fs.appendFileSync('app.log', strip(style.info('Server started')) + '\n')
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### silent mode
|
|
158
|
+
|
|
159
|
+
suppress all output globally. every function returns an empty string and produces no side effects. useful for tests, CI, and benchmarks.
|
|
160
|
+
```ts
|
|
161
|
+
import { setSilent } from 'termpainter'
|
|
162
|
+
|
|
163
|
+
setSilent(true)
|
|
164
|
+
|
|
165
|
+
style.success('done') // ''
|
|
166
|
+
badge('v1.0.0', 'cyan') // ''
|
|
167
|
+
box('hello') // ''
|
|
168
|
+
|
|
169
|
+
setSilent(false) // restore normal output
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### isInteractive
|
|
173
|
+
|
|
174
|
+
returns `true` if stdout is an interactive TTY. useful for conditionally using spinners or dynamic layouts.
|
|
175
|
+
```ts
|
|
176
|
+
import { isInteractive } from 'termpainter'
|
|
177
|
+
|
|
178
|
+
if (isInteractive()) {
|
|
179
|
+
const s = spin('Loading...')
|
|
180
|
+
// ...
|
|
181
|
+
} else {
|
|
182
|
+
console.log(style.muted('Loading...'))
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### custom icons
|
|
187
|
+
|
|
188
|
+
override the default icons for any or all style methods. unspecified keys fall back to defaults.
|
|
189
|
+
```ts
|
|
190
|
+
import { setIcons } from 'termpainter'
|
|
191
|
+
|
|
192
|
+
setIcons({ success: '✓', error: '✕' })
|
|
193
|
+
|
|
194
|
+
style.success('done') // ✓ done (custom icon)
|
|
195
|
+
style.warn('careful') // ⚠ careful (default icon unchanged)
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
available keys: `success`, `error`, `warn`, `info`, `debug`
|
|
199
|
+
|
|
88
200
|
---
|
|
89
201
|
|
|
90
202
|
## color support
|
|
91
203
|
|
|
92
|
-
termpainter automatically strips all ANSI codes when `NO_COLOR` is set, when running in CI, or when output is piped. your logs
|
|
204
|
+
termpainter automatically strips all ANSI codes when `NO_COLOR` is set, when running in CI, or when output is piped. your logs won't be full of broken escape sequences.
|
|
93
205
|
```ts
|
|
94
206
|
import { isColorEnabled } from 'termpainter'
|
|
95
207
|
|
|
@@ -102,10 +214,11 @@ isColorEnabled() // true in an interactive terminal, false everywhere else
|
|
|
102
214
|
|
|
103
215
|
| function | description |
|
|
104
216
|
|---|---|
|
|
105
|
-
| `style.error(msg)` | red, prepends ✖ |
|
|
106
|
-
| `style.success(msg)` | green, prepends ✔ |
|
|
107
|
-
| `style.warn(msg)` | yellow, prepends ⚠ |
|
|
108
|
-
| `style.info(msg)` | blue, prepends ℹ |
|
|
217
|
+
| `style.error(msg, meta?)` | red, prepends ✖ |
|
|
218
|
+
| `style.success(msg, meta?)` | green, prepends ✔ |
|
|
219
|
+
| `style.warn(msg, meta?)` | yellow, prepends ⚠ |
|
|
220
|
+
| `style.info(msg, meta?)` | blue, prepends ℹ |
|
|
221
|
+
| `style.debug(msg, meta?)` | gray+dim, 🔍 prefix, only when `DEBUG` is set |
|
|
109
222
|
| `style.muted(msg)` | gray, dimmed |
|
|
110
223
|
| `style.bold(msg)` | bold white |
|
|
111
224
|
| `style.highlight(msg)` | cyan |
|
|
@@ -113,7 +226,13 @@ isColorEnabled() // true in an interactive terminal, false everywhere else
|
|
|
113
226
|
| `style.table(data, color?)` | aligned key-value table, keys in cyan |
|
|
114
227
|
| `style.timestamp(msg, color?)` | prepends [HH:MM:SS], default gray |
|
|
115
228
|
| `badge(text, color?)` | [text] in chosen color, default white |
|
|
116
|
-
| `box(text, color?)` | unicode border box, multiline aware |
|
|
229
|
+
| `box(text, color?)` | unicode border box, multiline and ANSI-aware |
|
|
230
|
+
| `style.group(label, lines[])` | ▶ label in cyan, lines indented 2 spaces |
|
|
231
|
+
| `spin(msg)` | animated spinner, returns `{ succeed(msg?), fail(msg?) }` |
|
|
232
|
+
| `strip(str)` | removes all ANSI escape codes from a string |
|
|
233
|
+
| `setIcons(icons)` | override icons for error, success, warn, info, debug |
|
|
234
|
+
| `setSilent(mode)` | suppress all output globally when `true` |
|
|
235
|
+
| `isInteractive()` | returns `true` if stdout is a TTY |
|
|
117
236
|
| `paint(text, options?)` | raw ANSI composer |
|
|
118
237
|
| `isColorEnabled()` | returns true if colors are active |
|
|
119
238
|
|
|
@@ -121,4 +240,4 @@ isColorEnabled() // true in an interactive terminal, false everywhere else
|
|
|
121
240
|
|
|
122
241
|
## license
|
|
123
242
|
|
|
124
|
-
MIT © Abdullah Hashmi
|
|
243
|
+
MIT © Abdullah Hashmi
|
package/dist/cjs/badge.cjs
CHANGED
|
@@ -4,7 +4,10 @@ exports.badge = badge;
|
|
|
4
4
|
const paint_js_1 = require('./paint.cjs');
|
|
5
5
|
const codes_js_1 = require('./codes.cjs');
|
|
6
6
|
const env_js_1 = require('./env.cjs');
|
|
7
|
+
const silent_js_1 = require('./silent.cjs');
|
|
7
8
|
function badge(text, color = 'white') {
|
|
9
|
+
if ((0, silent_js_1.isSilent)())
|
|
10
|
+
return '';
|
|
8
11
|
if (!(0, env_js_1.isColorEnabled)())
|
|
9
12
|
return `[${text}]`;
|
|
10
13
|
const code = paint_js_1.fgMap[color];
|
package/dist/cjs/badge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/badge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAS,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/badge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAS,MAAM,YAAY,CAAC;AAK/C,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,KAAe,GAAG,MAAM,CAKlE"}
|
package/dist/cjs/badge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../src/badge.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"badge.js","sourceRoot":"","sources":["../../src/badge.ts"],"names":[],"mappings":";;AAKA,sBAKC;AAVD,yCAA+C;AAC/C,yCAAmC;AACnC,qCAA0C;AAC1C,2CAAuC;AAEvC,SAAgB,KAAK,CAAC,IAAY,EAAE,QAAe,OAAO;IACxD,IAAI,IAAA,oBAAQ,GAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,CAAC,IAAA,uBAAc,GAAE;QAAE,OAAO,IAAI,IAAI,GAAG,CAAC;IAC1C,MAAM,IAAI,GAAG,gBAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,gBAAK,EAAE,CAAC;AACpC,CAAC"}
|
package/dist/cjs/box.cjs
CHANGED
|
@@ -4,14 +4,17 @@ exports.box = box;
|
|
|
4
4
|
const paint_js_1 = require('./paint.cjs');
|
|
5
5
|
const codes_js_1 = require('./codes.cjs');
|
|
6
6
|
const env_js_1 = require('./env.cjs');
|
|
7
|
+
const silent_js_1 = require('./silent.cjs');
|
|
7
8
|
function box(text, color = 'white') {
|
|
9
|
+
if ((0, silent_js_1.isSilent)())
|
|
10
|
+
return '';
|
|
8
11
|
const lines = text.split('\n');
|
|
9
|
-
const width = Math.max(...lines.map((l) => l.length));
|
|
12
|
+
const width = Math.max(...lines.map((l) => (0, paint_js_1.strip)(l).length));
|
|
10
13
|
if (!(0, env_js_1.isColorEnabled)()) {
|
|
11
14
|
const top = `╭${'─'.repeat(width + 2)}╮`;
|
|
12
15
|
const bottom = `╰${'─'.repeat(width + 2)}╯`;
|
|
13
16
|
const middle = lines.map((line) => {
|
|
14
|
-
const padding = ' '.repeat(width - line.length);
|
|
17
|
+
const padding = ' '.repeat(width - (0, paint_js_1.strip)(line).length);
|
|
15
18
|
return `│ ${line}${padding} │`;
|
|
16
19
|
});
|
|
17
20
|
return [top, ...middle, bottom].join('\n');
|
|
@@ -20,7 +23,7 @@ function box(text, color = 'white') {
|
|
|
20
23
|
const top = `${c}╭${'─'.repeat(width + 2)}╮${codes_js_1.RESET}`;
|
|
21
24
|
const bottom = `${c}╰${'─'.repeat(width + 2)}╯${codes_js_1.RESET}`;
|
|
22
25
|
const middle = lines.map((line) => {
|
|
23
|
-
const padding = ' '.repeat(width - line.length);
|
|
26
|
+
const padding = ' '.repeat(width - (0, paint_js_1.strip)(line).length);
|
|
24
27
|
return `${c}│${codes_js_1.RESET} ${line}${padding} ${c}│${codes_js_1.RESET}`;
|
|
25
28
|
});
|
|
26
29
|
return [top, ...middle, bottom].join('\n');
|
package/dist/cjs/box.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,YAAY,CAAC;AAKtD,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,KAAe,GAAG,MAAM,CAwBhE"}
|
package/dist/cjs/box.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"box.js","sourceRoot":"","sources":["../../src/box.ts"],"names":[],"mappings":";;AAKA,kBAwBC;AA7BD,yCAAsD;AACtD,yCAAmC;AACnC,qCAA0C;AAC1C,2CAAuC;AAEvC,SAAgB,GAAG,CAAC,IAAY,EAAE,QAAe,OAAO;IACtD,IAAI,IAAA,oBAAQ,GAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gBAAK,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7D,IAAI,CAAC,IAAA,uBAAc,GAAE,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC;QAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,IAAA,gBAAK,EAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;YACvD,OAAO,KAAK,IAAI,GAAG,OAAO,IAAI,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,GAAG,gBAAK,CAAC,KAAK,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,gBAAK,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,gBAAK,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,IAAA,gBAAK,EAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC,IAAI,gBAAK,IAAI,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,gBAAK,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/cjs/env.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isInteractive = isInteractive;
|
|
3
4
|
exports.isColorEnabled = isColorEnabled;
|
|
4
5
|
/**
|
|
5
6
|
* Returns true if ANSI color codes should be emitted.
|
|
@@ -8,6 +9,9 @@ exports.isColorEnabled = isColorEnabled;
|
|
|
8
9
|
* - CI env var is set (raw escape codes look broken in most CI logs)
|
|
9
10
|
* - process.stdout.isTTY is false/undefined (output is being piped)
|
|
10
11
|
*/
|
|
12
|
+
function isInteractive() {
|
|
13
|
+
return process.stdout.isTTY === true;
|
|
14
|
+
}
|
|
11
15
|
function isColorEnabled() {
|
|
12
16
|
if (process.env.NO_COLOR !== undefined)
|
|
13
17
|
return false;
|
package/dist/cjs/env.d.cts
CHANGED
|
@@ -5,5 +5,6 @@
|
|
|
5
5
|
* - CI env var is set (raw escape codes look broken in most CI logs)
|
|
6
6
|
* - process.stdout.isTTY is false/undefined (output is being piped)
|
|
7
7
|
*/
|
|
8
|
+
export declare function isInteractive(): boolean;
|
|
8
9
|
export declare function isColorEnabled(): boolean;
|
|
9
10
|
//# sourceMappingURL=env.d.ts.map
|
package/dist/cjs/env.d.ts
CHANGED
|
@@ -5,5 +5,6 @@
|
|
|
5
5
|
* - CI env var is set (raw escape codes look broken in most CI logs)
|
|
6
6
|
* - process.stdout.isTTY is false/undefined (output is being piped)
|
|
7
7
|
*/
|
|
8
|
+
export declare function isInteractive(): boolean;
|
|
8
9
|
export declare function isColorEnabled(): boolean;
|
|
9
10
|
//# sourceMappingURL=env.d.ts.map
|
package/dist/cjs/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAKxC"}
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAgB,cAAc,IAAI,OAAO,CAKxC"}
|
package/dist/cjs/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":";;AAOA,wCAKC;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/env.ts"],"names":[],"mappings":";;AAOA,sCAEC;AAED,wCAKC;AAhBD;;;;;;GAMG;AACH,SAAgB,aAAa;IAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;AACvC,CAAC;AAED,SAAgB,cAAc;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setIcons = setIcons;
|
|
4
|
+
exports.getIcons = getIcons;
|
|
5
|
+
const defaults = {
|
|
6
|
+
error: '✖',
|
|
7
|
+
success: '✔',
|
|
8
|
+
warn: '⚠',
|
|
9
|
+
info: 'ℹ',
|
|
10
|
+
debug: '🔍',
|
|
11
|
+
};
|
|
12
|
+
let current = { ...defaults };
|
|
13
|
+
function setIcons(icons) {
|
|
14
|
+
current = { ...defaults, ...icons };
|
|
15
|
+
}
|
|
16
|
+
function getIcons() {
|
|
17
|
+
return current;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface Icons {
|
|
2
|
+
error: string;
|
|
3
|
+
success: string;
|
|
4
|
+
warn: string;
|
|
5
|
+
info: string;
|
|
6
|
+
debug: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function setIcons(icons: Partial<Icons>): void;
|
|
9
|
+
export declare function getIcons(): Icons;
|
|
10
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface Icons {
|
|
2
|
+
error: string;
|
|
3
|
+
success: string;
|
|
4
|
+
warn: string;
|
|
5
|
+
info: string;
|
|
6
|
+
debug: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function setIcons(icons: Partial<Icons>): void;
|
|
9
|
+
export declare function getIcons(): Icons;
|
|
10
|
+
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/icons.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAYD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAEpD;AAED,wBAAgB,QAAQ,IAAI,KAAK,CAEhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/icons.ts"],"names":[],"mappings":";;AAkBA,4BAEC;AAED,4BAEC;AAhBD,MAAM,QAAQ,GAAU;IACtB,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,IAAI,OAAO,GAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;AAErC,SAAgB,QAAQ,CAAC,KAAqB;IAC5C,OAAO,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,EAAE,CAAC;AACtC,CAAC;AAED,SAAgB,QAAQ;IACtB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -14,16 +14,24 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.isColorEnabled = exports.box = exports.badge = exports.style = exports.paint = void 0;
|
|
17
|
+
exports.isInteractive = exports.isColorEnabled = exports.setSilent = exports.setIcons = exports.spin = exports.box = exports.badge = exports.style = exports.strip = exports.paint = void 0;
|
|
18
18
|
var paint_js_1 = require('./paint.cjs');
|
|
19
19
|
Object.defineProperty(exports, "paint", { enumerable: true, get: function () { return paint_js_1.paint; } });
|
|
20
|
+
Object.defineProperty(exports, "strip", { enumerable: true, get: function () { return paint_js_1.strip; } });
|
|
20
21
|
var style_js_1 = require('./style.cjs');
|
|
21
22
|
Object.defineProperty(exports, "style", { enumerable: true, get: function () { return style_js_1.style; } });
|
|
22
23
|
var badge_js_1 = require('./badge.cjs');
|
|
23
24
|
Object.defineProperty(exports, "badge", { enumerable: true, get: function () { return badge_js_1.badge; } });
|
|
24
25
|
var box_js_1 = require('./box.cjs');
|
|
25
26
|
Object.defineProperty(exports, "box", { enumerable: true, get: function () { return box_js_1.box; } });
|
|
27
|
+
var spinner_js_1 = require('./spinner.cjs');
|
|
28
|
+
Object.defineProperty(exports, "spin", { enumerable: true, get: function () { return spinner_js_1.spin; } });
|
|
29
|
+
var icons_js_1 = require('./icons.cjs');
|
|
30
|
+
Object.defineProperty(exports, "setIcons", { enumerable: true, get: function () { return icons_js_1.setIcons; } });
|
|
31
|
+
var silent_js_1 = require('./silent.cjs');
|
|
32
|
+
Object.defineProperty(exports, "setSilent", { enumerable: true, get: function () { return silent_js_1.setSilent; } });
|
|
26
33
|
var env_js_1 = require('./env.cjs');
|
|
27
34
|
Object.defineProperty(exports, "isColorEnabled", { enumerable: true, get: function () { return env_js_1.isColorEnabled; } });
|
|
35
|
+
Object.defineProperty(exports, "isInteractive", { enumerable: true, get: function () { return env_js_1.isInteractive; } });
|
|
28
36
|
__exportStar(require('./codes.cjs'), exports);
|
|
29
37
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.d.cts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
export { paint } from './paint.js';
|
|
1
|
+
export { paint, strip } from './paint.js';
|
|
2
2
|
export type { PaintOptions, Color } from './paint.js';
|
|
3
3
|
export { style } from './style.js';
|
|
4
4
|
export { badge } from './badge.js';
|
|
5
5
|
export { box } from './box.js';
|
|
6
|
-
export {
|
|
6
|
+
export { spin } from './spinner.js';
|
|
7
|
+
export type { SpinnerHandle } from './spinner.js';
|
|
8
|
+
export { setIcons } from './icons.js';
|
|
9
|
+
export type { Icons } from './icons.js';
|
|
10
|
+
export { setSilent } from './silent.js';
|
|
11
|
+
export { isColorEnabled, isInteractive } from './env.js';
|
|
7
12
|
export * from './codes.js';
|
|
8
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
export { paint } from './paint.js';
|
|
1
|
+
export { paint, strip } from './paint.js';
|
|
2
2
|
export type { PaintOptions, Color } from './paint.js';
|
|
3
3
|
export { style } from './style.js';
|
|
4
4
|
export { badge } from './badge.js';
|
|
5
5
|
export { box } from './box.js';
|
|
6
|
-
export {
|
|
6
|
+
export { spin } from './spinner.js';
|
|
7
|
+
export type { SpinnerHandle } from './spinner.js';
|
|
8
|
+
export { setIcons } from './icons.js';
|
|
9
|
+
export type { Icons } from './icons.js';
|
|
10
|
+
export { setSilent } from './silent.js';
|
|
11
|
+
export { isColorEnabled, isInteractive } from './env.js';
|
|
7
12
|
export * from './codes.js';
|
|
8
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzD,cAAc,YAAY,CAAC"}
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAA0C;AAAjC,iGAAA,KAAK,OAAA;AAAE,iGAAA,KAAK,OAAA;AAErB,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AACd,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AACd,mCAA+B;AAAtB,6FAAA,GAAG,OAAA;AACZ,2CAAoC;AAA3B,kGAAA,IAAI,OAAA;AAEb,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAEjB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,mCAAyD;AAAhD,wGAAA,cAAc,OAAA;AAAE,uGAAA,aAAa,OAAA;AACtC,6CAA2B"}
|
package/dist/cjs/paint.cjs
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.bgMap = exports.fgMap = void 0;
|
|
4
4
|
exports.paint = paint;
|
|
5
|
+
exports.strip = strip;
|
|
5
6
|
const codes_js_1 = require('./codes.cjs');
|
|
6
7
|
const env_js_1 = require('./env.cjs');
|
|
8
|
+
const silent_js_1 = require('./silent.cjs');
|
|
7
9
|
const fgMap = {
|
|
8
10
|
black: codes_js_1.BLACK,
|
|
9
11
|
red: codes_js_1.RED,
|
|
@@ -29,6 +31,8 @@ const bgMap = {
|
|
|
29
31
|
};
|
|
30
32
|
exports.bgMap = bgMap;
|
|
31
33
|
function paint(text, options = {}) {
|
|
34
|
+
if ((0, silent_js_1.isSilent)())
|
|
35
|
+
return '';
|
|
32
36
|
if (!(0, env_js_1.isColorEnabled)())
|
|
33
37
|
return text;
|
|
34
38
|
let prefix = '';
|
|
@@ -48,4 +52,8 @@ function paint(text, options = {}) {
|
|
|
48
52
|
return text;
|
|
49
53
|
return `${prefix}${text}${codes_js_1.RESET}`;
|
|
50
54
|
}
|
|
55
|
+
function strip(str) {
|
|
56
|
+
// eslint-disable-next-line no-control-regex
|
|
57
|
+
return str.replace(/\x1b\[[0-9;]*m/g, '');
|
|
58
|
+
}
|
|
51
59
|
//# sourceMappingURL=paint.js.map
|
package/dist/cjs/paint.d.cts
CHANGED
|
@@ -10,5 +10,6 @@ export interface PaintOptions {
|
|
|
10
10
|
declare const fgMap: Record<Color, string>;
|
|
11
11
|
declare const bgMap: Record<Color, string>;
|
|
12
12
|
export declare function paint(text: string, options?: PaintOptions): string;
|
|
13
|
+
export declare function strip(str: string): string;
|
|
13
14
|
export { fgMap, bgMap };
|
|
14
15
|
//# sourceMappingURL=paint.d.ts.map
|
package/dist/cjs/paint.d.ts
CHANGED
|
@@ -10,5 +10,6 @@ export interface PaintOptions {
|
|
|
10
10
|
declare const fgMap: Record<Color, string>;
|
|
11
11
|
declare const bgMap: Record<Color, string>;
|
|
12
12
|
export declare function paint(text: string, options?: PaintOptions): string;
|
|
13
|
+
export declare function strip(str: string): string;
|
|
13
14
|
export { fgMap, bgMap };
|
|
14
15
|
//# sourceMappingURL=paint.d.ts.map
|
package/dist/cjs/paint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../src/paint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../src/paint.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE1G,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,QAAA,MAAM,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAUhC,CAAC;AAEF,QAAA,MAAM,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAUhC,CAAC;AAEF,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM,CAYtE;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGzC;AAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC"}
|
package/dist/cjs/paint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paint.js","sourceRoot":"","sources":["../../src/paint.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"paint.js","sourceRoot":"","sources":["../../src/paint.ts"],"names":[],"mappings":";;;AA2CA,sBAYC;AAED,sBAGC;AA5DD,yCAIoB;AACpB,qCAA0C;AAC1C,2CAAuC;AAavC,MAAM,KAAK,GAA0B;IACnC,KAAK,EAAE,gBAAK;IACZ,GAAG,EAAE,cAAG;IACR,KAAK,EAAE,gBAAK;IACZ,MAAM,EAAE,iBAAM;IACd,IAAI,EAAE,eAAI;IACV,OAAO,EAAE,kBAAO;IAChB,IAAI,EAAE,eAAI;IACV,KAAK,EAAE,gBAAK;IACZ,IAAI,EAAE,eAAI;CACX,CAAC;AAiCO,sBAAK;AA/Bd,MAAM,KAAK,GAA0B;IACnC,KAAK,EAAE,mBAAQ;IACf,GAAG,EAAE,iBAAM;IACX,KAAK,EAAE,mBAAQ;IACf,MAAM,EAAE,oBAAS;IACjB,IAAI,EAAE,kBAAO;IACb,OAAO,EAAE,qBAAU;IACnB,IAAI,EAAE,kBAAO;IACb,KAAK,EAAE,mBAAQ;IACf,IAAI,EAAE,kBAAO;CACd,CAAC;AAqBc,sBAAK;AAnBrB,SAAgB,KAAK,CAAC,IAAY,EAAE,UAAwB,EAAE;IAC5D,IAAI,IAAA,oBAAQ,GAAE;QAAE,OAAO,EAAE,CAAC;IAC1B,IAAI,CAAC,IAAA,uBAAc,GAAE;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,OAAO,CAAC,IAAI;QAAE,MAAM,IAAI,eAAI,CAAC;IACjC,IAAI,OAAO,CAAC,GAAG;QAAE,MAAM,IAAI,cAAG,CAAC;IAC/B,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,iBAAM,CAAC;IACrC,IAAI,OAAO,CAAC,SAAS;QAAE,MAAM,IAAI,oBAAS,CAAC;IAC3C,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,gBAAK,EAAE,CAAC;AACpC,CAAC;AAED,SAAgB,KAAK,CAAC,GAAW;IAC/B,4CAA4C;IAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setSilent = setSilent;
|
|
4
|
+
exports.isSilent = isSilent;
|
|
5
|
+
let silentMode = false;
|
|
6
|
+
function setSilent(mode) {
|
|
7
|
+
silentMode = mode;
|
|
8
|
+
}
|
|
9
|
+
function isSilent() {
|
|
10
|
+
return silentMode;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=silent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"silent.d.ts","sourceRoot":"","sources":["../../src/silent.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE7C;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"silent.js","sourceRoot":"","sources":["../../src/silent.ts"],"names":[],"mappings":";;AAEA,8BAEC;AAED,4BAEC;AARD,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,SAAgB,SAAS,CAAC,IAAa;IACrC,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,SAAgB,QAAQ;IACtB,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.spin = spin;
|
|
4
|
+
const style_js_1 = require('./style.cjs');
|
|
5
|
+
const silent_js_1 = require('./silent.cjs');
|
|
6
|
+
const FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
7
|
+
function spin(msg) {
|
|
8
|
+
if ((0, silent_js_1.isSilent)()) {
|
|
9
|
+
return {
|
|
10
|
+
succeed(_) { },
|
|
11
|
+
fail(_) { },
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
if (!process.stdout.isTTY) {
|
|
15
|
+
process.stdout.write(style_js_1.style.muted(msg) + '\n');
|
|
16
|
+
return {
|
|
17
|
+
succeed(newMsg) {
|
|
18
|
+
process.stdout.write(style_js_1.style.success(newMsg ?? msg) + '\n');
|
|
19
|
+
},
|
|
20
|
+
fail(newMsg) {
|
|
21
|
+
process.stdout.write(style_js_1.style.error(newMsg ?? msg) + '\n');
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
let i = 0;
|
|
26
|
+
const timer = setInterval(() => {
|
|
27
|
+
const frame = FRAMES[i % FRAMES.length];
|
|
28
|
+
process.stdout.write(`\r\x1b[K${frame} ${msg}`);
|
|
29
|
+
i++;
|
|
30
|
+
}, 80);
|
|
31
|
+
function stop(output) {
|
|
32
|
+
clearInterval(timer);
|
|
33
|
+
process.stdout.write(`\r\x1b[K${output}\n`);
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
succeed(newMsg) {
|
|
37
|
+
stop(style_js_1.style.success(newMsg ?? msg));
|
|
38
|
+
},
|
|
39
|
+
fail(newMsg) {
|
|
40
|
+
stop(style_js_1.style.error(newMsg ?? msg));
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/spinner.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAwC/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/spinner.ts"],"names":[],"mappings":";;AAUA,oBAwCC;AAlDD,yCAAmC;AACnC,2CAAuC;AAEvC,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAOlE,SAAgB,IAAI,CAAC,GAAW;IAC9B,IAAI,IAAA,oBAAQ,GAAE,EAAE,CAAC;QACf,OAAO;YACL,OAAO,CAAC,CAAU,IAAS,CAAC;YAC5B,IAAI,CAAC,CAAU,IAAS,CAAC;SAC1B,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9C,OAAO;YACL,OAAO,CAAC,MAAe;gBACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAK,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,MAAe;gBAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAK,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC1D,CAAC;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC,EAAE,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,IAAI,CAAC,MAAc;QAC1B,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,MAAM,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,OAAO,CAAC,MAAe;YACrB,IAAI,CAAC,gBAAK,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,MAAe;YAClB,IAAI,CAAC,gBAAK,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;KACF,CAAC;AACJ,CAAC"}
|