Appearance
Json
_jsonParseIfPossible
Attempts to parse object as JSON.
Returns original object if JSON parse failed (silently).
ts
_jsonParseIfPossible('abc') // 'abc' (no change, not a json string)
_jsonParseIfPossible(null) // null (no change)
_jsonParseIfPossible({ a: 'a' }) // {a: 'a'} (same object, not a json string)
_jsonParseIfPossible('{"a": "a"}') // {a: 'a'} gotcha! parsed json string into an object!_stringify
Inspired by _inspect from nodejs-lib, which is based on util.inpect that is not available in the Browser.
Transforms any to human-readable string (via JSON.stringify pretty).
Safe (no error throwing).
Correclty prints Error, AppError, ErrorObject: error.message + '\n' + _stringify(error.data)
Enforces max length (default to 1000, pass 0 to skip it).
Logs numbers as-is (as a String), e.g: 6.
Logs strings as-is (without single quotes around, unlike default util.inspect behavior).
Otherwise - just uses JSON.stringify.
Returns empty_string string if empty string is passed.
Returns undefined (not a string, but actual undefined) if undefined is passed (default util.inspect behavior).
ts
_stringify(undefined) // 'undefined'
_stringify(null) // 'null'
_stringify(true) // 'true'
_stringify(false) // 'false'
_stringify(NaN) // 'null'
_stringify(Infinity) // 'null'
_stringify('') // 'empty_string'
_stringify(' ') // 'empty_string'
_stringify('ho ho ho') // 'ho ho ho'
_stringify(15) // '15'
_stringify(new Error('some msg')) // 'Error: some msg'
// AppError is stringified with it's Data object
_stringify(new AppError('some msg', { k1: 'v1' }))
// 'AppError: some msg\n
// {
// "k1": "v1"
// }'