@@ -5,25 +5,27 @@ import {getDocument} from './helpers'
5
5
import { getConfig } from './config'
6
6
7
7
const shouldHighlight = ( ) => {
8
- let colors
9
- try {
10
- colors = JSON . parse ( process ?. env ?. COLORS )
11
- } catch ( e ) {
12
- // If this throws, process?.env?.COLORS wasn't parsable. Since we only
13
- // care about `true` or `false`, we can safely ignore the error.
8
+ if ( typeof process === 'undefined' ) {
9
+ // Don't colorize in non-node environments (e.g. Browsers)
10
+ return false
14
11
}
15
-
16
- if ( typeof colors === 'boolean' ) {
17
- // If `colors` is set explicitly (both `true` and `false`), use that value.
18
- return colors
19
- } else {
12
+ // Try to safely parse env COLORS: We will default behavior if any step fails.
13
+ try {
14
+ const colors = process . env ?. COLORS
15
+ if ( colors ) {
16
+ const b = JSON . parse ( colors )
17
+ if ( typeof b === 'boolean' ) {
18
+ return b
19
+ }
20
+ }
21
+ } catch {
20
22
// If `colors` is not set, colorize if we're in node.
21
- return (
22
- typeof process !== 'undefined' &&
23
- process . versions !== undefined &&
24
- process . versions . node !== undefined
25
- )
23
+ return process . versions !== undefined && process . versions . node !== undefined
26
24
}
25
+
26
+ // In all other cases, whether COLORS was a weird type, or the attempt threw:
27
+ // Fall back to colorizing if we are running in node.
28
+ return ! ! process ?. versions ?. node
27
29
}
28
30
29
31
const { DOMCollection} = prettyFormat . plugins
0 commit comments