You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
686 B
29 lines
686 B
"use strict"; |
|
|
|
var safeToString = require("./safe-to-string"); |
|
|
|
var reNewLine = /[\n\r\u2028\u2029]/g; |
|
|
|
module.exports = function (value) { |
|
var string = safeToString(value); |
|
if (string === null) return "<Non-coercible to string value>"; |
|
// Trim if too long |
|
if (string.length > 100) string = string.slice(0, 99) + "…"; |
|
// Replace eventual new lines |
|
string = string.replace(reNewLine, function (char) { |
|
switch (char) { |
|
case "\n": |
|
return "\\n"; |
|
case "\r": |
|
return "\\r"; |
|
case "\u2028": |
|
return "\\u2028"; |
|
case "\u2029": |
|
return "\\u2029"; |
|
/* istanbul ignore next */ |
|
default: |
|
throw new Error("Unexpected character"); |
|
} |
|
}); |
|
return string; |
|
};
|
|
|