30 lines
686 B
Plaintext
30 lines
686 B
Plaintext
"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;
|
|
};
|