json-parse-pmb

1.0.0 • Public • Published

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): Return undefined for easy distinction from valid JSON values like null, 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 original json argument.
  • has a boolean property isSyntaxError.

Usage

see doc/demo/usage.js from test/usage.js: :TODO:

var jsonParse = require('json-parse-pmb'), bad, opts;
 
equal(jsonParse('true'),          true);
equal(jsonParse('{"abc":123}'),   { abc: 123 });
 
bad = '{abc:123, missing: "quotes around key names"}';
equal(jsonParse(bad, opts),   undefined);
 
opts = { synErr: false };
equal(jsonParse(bad, opts),   false);
 
opts.synErr = { err: 'bad json' };
equal(jsonParse(bad, opts),   { err: 'bad json' });

 

License

ISC

Package Sidebar

Install

npm i json-parse-pmb

Weekly Downloads

3

Version

1.0.0

License

ISC

Last publish

Collaborators

  • mk-pmb