@@ -119,6 +119,7 @@ function styleText(format, text, { validateStream = true, stream = process.stdou |
119 | 119 | validateString(text, 'text'); |
120 | 120 | validateBoolean(validateStream, 'options.validateStream'); |
121 | 121 |
|
| 122 | + let skipColorize; |
122 | 123 | if (validateStream) { |
123 | 124 | if ( |
124 | 125 | !isReadableStream(stream) && |
@@ -127,40 +128,28 @@ function styleText(format, text, { validateStream = true, stream = process.stdou |
127 | 128 | ) { |
128 | 129 | throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream); |
129 | 130 | } |
130 | | - } |
131 | | - |
132 | | - if (ArrayIsArray(format)) { |
133 | | - let left = ''; |
134 | | - let right = ''; |
135 | | - for (const key of format) { |
136 | | - const formatCodes = inspect.colors[key]; |
137 | | - if (formatCodes == null) { |
138 | | - validateOneOf(key, 'format', ObjectKeys(inspect.colors)); |
139 | | - } |
140 | | - left += escapeStyleCode(formatCodes[0]); |
141 | | - right = `${escapeStyleCode(formatCodes[1])}${right}`; |
142 | | - } |
143 | 131 |
|
144 | | - return `${left}${text}${right}`; |
| 132 | + // If the stream is falsy or should not be colorized, set skipColorize to true |
| 133 | + skipColorize = !lazyUtilColors().shouldColorize(stream); |
145 | 134 | } |
146 | 135 |
|
147 | | - const formatCodes = inspect.colors[format]; |
148 | | - if (formatCodes == null) { |
149 | | - validateOneOf(format, 'format', ObjectKeys(inspect.colors)); |
150 | | - } |
| 136 | + // If the format is not an array, convert it to an array |
| 137 | + const formatArray = ArrayIsArray(format) ? format : [format]; |
151 | 138 |
|
152 | | - // Check colorize only after validating arg type and value |
153 | | - if ( |
154 | | - validateStream && |
155 | | - ( |
156 | | - !stream || |
157 | | - !lazyUtilColors().shouldColorize(stream) |
158 | | - ) |
159 | | - ) { |
160 | | - return text; |
| 139 | + let left = ''; |
| 140 | + let right = ''; |
| 141 | + for (const key of formatArray) { |
| 142 | + const formatCodes = inspect.colors[key]; |
| 143 | + // If the format is not a valid style, throw an error |
| 144 | + if (formatCodes == null) { |
| 145 | + validateOneOf(key, 'format', ObjectKeys(inspect.colors)); |
| 146 | + } |
| 147 | + if (skipColorize) continue; |
| 148 | + left += escapeStyleCode(formatCodes[0]); |
| 149 | + right = `${escapeStyleCode(formatCodes[1])}${right}`; |
161 | 150 | } |
162 | 151 |
|
163 | | - return `${escapeStyleCode(formatCodes[0])}${text}${escapeStyleCode(formatCodes[1])}`; |
| 152 | + return skipColorize ? text : `${left}${text}${right}`; |
164 | 153 | } |
165 | 154 |
|
166 | 155 | /** |
|