MCPcopy
hub / github.com/serverless/serverless / writeStdErr

Function writeStdErr

packages/util/src/logger/index.js:231–348  ·  view source on GitHub ↗
({
  level = renderer.logLevel,
  messageTokens = [],
  type = null,
  prefix = null,
  prefixColor = null,
  disableNewLine = null,
})

Source from the content-addressed store, hash-verified

229 * If no type is provided, applies the default styling to the log message.
230 */
231const writeStdErr = ({
232 level = renderer.logLevel,
233 messageTokens = [],
234 type = null,
235 prefix = null,
236 prefixColor = null,
237 disableNewLine = null,
238}) => {
239 level = level || renderer.logLevel
240
241 // If the log level is higher than the global log level, do not write the log
242 if (renderer.levels[level] > renderer.levels[renderer.logLevel]) {
243 return
244 }
245
246 // Stop the spinner to not collide with log output
247 renderer.spinner.stop()
248
249 // Process the message tokens
250 let formattedMessage = ''
251
252 // Remove first token
253 const firstToken = messageTokens.shift()
254
255 // Check if firstToken is actually a string and contains placeholders
256 if (typeof firstToken === 'string' && /%[sd]/.test(firstToken)) {
257 // Replace format specifiers with values from the messageTokens
258 formattedMessage = firstToken.replace(/%s|%d/g, () => {
259 const token = messageTokens.shift()
260 if (typeof token === 'object' && token !== null) {
261 return util.inspect(token, { colors: true, depth: null })
262 }
263 return token
264 })
265 } else {
266 // Often empty messages are used to create blank lines
267 if (firstToken === undefined) {
268 formattedMessage = ''
269 } else if (firstToken instanceof Error) {
270 formattedMessage = firstToken.stack
271 ? firstToken.stack
272 : firstToken.message
273 } else if (typeof firstToken === 'object' && firstToken !== null) {
274 formattedMessage = util.inspect(firstToken, {
275 colors: true,
276 depth: null,
277 })
278 } else {
279 formattedMessage = firstToken
280 }
281 }
282
283 // Process remaining tokens if any exist after the initial formatting
284 while (messageTokens.length > 0) {
285 const token = messageTokens.shift()
286 let messageContent = ''
287 if (token instanceof Error) {
288 messageContent = token.toString()

Callers 15

writeProgressFunction · 0.85
noticeMethod · 0.85
errorMethod · 0.85
warningMethod · 0.85
noticeMethod · 0.85
writeMethod · 0.85
writeComposeMethod · 0.85
infoMethod · 0.85
debugMethod · 0.85
asideMethod · 0.85
titleMethod · 0.85
successMethod · 0.85

Calls 6

colorizeStringFunction · 0.85
errorMethod · 0.80
writeMethod · 0.80
stopMethod · 0.45
infoMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…