{"ast":null,"code":"/* eslint-disable no-console */\nconst messageTypes = {\n  error: 'error',\n  info: 'info',\n  warn: 'warn'\n};\nObject.freeze(messageTypes);\n\nconst logMessage = (messageType, message) => {\n  if (Object.values(messageTypes).includes(messageType)) {\n    console[messageType](message);\n  } else {\n    console.info(message);\n  }\n};\n\nexport const consoleMessage = function (messageType, message, config) {\n  const {\n    errorStackTraceLimit,\n    strictMode\n  } = config || this.config;\n  const prevStackLimit = Error.stackTraceLimit;\n  let util;\n\n  if (!strictMode) {\n    return;\n  }\n\n  if (false) {\n    util = require('util');\n  } else {\n    return;\n  }\n  /*\n      Temporarily set the stacktrace to 0 or errorStackTraceLimit,\n      in order to only display a message\n  */\n\n\n  Error.stackTraceLimit = errorStackTraceLimit || 0;\n  /*\n      Make room for new message\n  */\n\n  console.log();\n  /*\n      Make sure the message is a string\n  */\n\n  if (typeof message !== 'string') {\n    const metaError = new Error();\n    metaError.name = 'Meta';\n    metaError.message = `Param message needs to be of type: string. Instead, '${typeof message}' was provided.\\n\n------------------------------------------------\\n\n\\u200b\n        The provided ${typeof message}:\\n\n\\u200b\n          ${util.inspect(message, true, 8, true)}\n\\u200b\n------------------------------------------------\\n\n    `;\n    console.error(metaError);\n    return;\n  }\n  /*\n      Log the message to console\n  */\n\n\n  logMessage(messageType, message);\n  /*\n      Reset stack limit\n  */\n\n  Error.stackTraceLimit = prevStackLimit;\n};","map":null,"metadata":{},"sourceType":"module"}