json-parse-pmb
Yet another try/catch for JSON#parse. This one returns your custom error token value in case of a SyntaxError (default: undefined), and passes all other errors to your custom error handler (default: re-throw).
API
This module exports one function:
parseJson(json[, opts])
Where json
should be a string with data in JSON format,
and opts
is an optional config object which supports these keys:
synErr
: What to do in case of a syntax error.undefined
(default): Returnundefined
for easy distinction from valid JSON values likenull
,false
, zero and the empty string.- any string or false-y value: Return that value.
true
: Throw an error.- a function: Call it, with one argument, the error object.
- any other value: Fail in unreliable, mysterious ways.
othErr
: What to do in case of a non-syntax error.undefined
(default) or any false-y value: re-throw the error.- any other value: like
synErr
.
Any error that is re-thrown or forwarded to your custom error handler function…
- is indeed an object. Caught non-objects will be wrapped in an Error.
- has a property
input
set to the originaljson
argument. - has a boolean property
isSyntaxError
.
Usage
see doc/demo/usage.js from test/usage.js: :TODO:
var jsonParse = bad opts; ;; bad = '{abc:123, missing: "quotes around key names"}';; opts = synErr: false ;; optssynErr = err: 'bad json' ;;
License
ISC