@@ -3,6 +3,7 @@ import {basename, dirname, extname, normalize, sep, posix} from 'path'
3
3
import { Intersection , JSONSchema , LinkedJSONSchema , NormalizedJSONSchema , Parent } from './types/JSONSchema'
4
4
import { JSONSchema4 } from 'json-schema'
5
5
import yaml from 'js-yaml'
6
+ import type { Format } from 'cli-color'
6
7
7
8
// TODO: pull out into a separate package
8
9
export function Try < T > ( fn : ( ) => T , err : ( e : Error ) => any ) : T {
@@ -242,7 +243,7 @@ export function log(style: LogStyle, title: string, ...messages: unknown[]): voi
242
243
if ( messages . length > 1 && typeof messages [ messages . length - 1 ] !== 'string' ) {
243
244
lastMessage = messages . splice ( messages . length - 1 , 1 )
244
245
}
245
- console . info ( require ( 'cli- color' ) . whiteBright . bgCyan ( 'debug' ) , getStyledTextForLogging ( style ) ?.( title ) , ...messages )
246
+ console . info ( color ( ) ? .whiteBright . bgCyan ( 'debug' ) , getStyledTextForLogging ( style ) ?.( title ) , ...messages )
246
247
if ( lastMessage ) {
247
248
console . dir ( lastMessage , { depth : 6 , maxArrayLength : 6 } )
248
249
}
@@ -254,19 +255,19 @@ function getStyledTextForLogging(style: LogStyle): ((text: string) => string) |
254
255
}
255
256
switch ( style ) {
256
257
case 'blue' :
257
- return require ( 'cli- color' ) . whiteBright . bgBlue
258
+ return color ( ) ? .whiteBright . bgBlue
258
259
case 'cyan' :
259
- return require ( 'cli- color' ) . whiteBright . bgCyan
260
+ return color ( ) ? .whiteBright . bgCyan
260
261
case 'green' :
261
- return require ( 'cli- color' ) . whiteBright . bgGreen
262
+ return color ( ) ? .whiteBright . bgGreen
262
263
case 'magenta' :
263
- return require ( 'cli- color' ) . whiteBright . bgMagenta
264
+ return color ( ) ? .whiteBright . bgMagenta
264
265
case 'red' :
265
- return require ( 'cli- color' ) . whiteBright . bgRedBright
266
+ return color ( ) ? .whiteBright . bgRedBright
266
267
case 'white' :
267
- return require ( 'cli- color' ) . black . bgWhite
268
+ return color ( ) ? .black . bgWhite
268
269
case 'yellow' :
269
- return require ( 'cli- color' ) . whiteBright . bgYellow
270
+ return color ( ) ? .whiteBright . bgYellow
270
271
}
271
272
}
272
273
@@ -411,3 +412,11 @@ export function parseFileAsJSONSchema(filename: string | null, contents: string)
411
412
function isYaml ( filename : string ) {
412
413
return filename . endsWith ( '.yaml' ) || filename . endsWith ( '.yml' )
413
414
}
415
+
416
+ function color ( ) : Format {
417
+ let cliColor
418
+ try {
419
+ cliColor = require ( 'cli-color' )
420
+ } catch { }
421
+ return cliColor
422
+ }
0 commit comments