1.0.4 • Published 6 years ago

parse-json-or v1.0.4

Weekly downloads
4
License
MIT
Repository
github
Last release
6 years ago

Parse-Json-Or

Safely parse JSON strings while explicitly indicating the behaviour in case of a parsing error

Getting Started

Just install the package (npm i parse-json-or --save)

Prerequisites

No Prerequisites

Installing

  • Just install the package
 npm i parse-json-or --save

Use it in your code

Variables used in our examples :

// Require the package
let parseJson = require('parse-json-or');
  
// We will use these values for our examples
let demoObject = { foo: 1, bar: 2 };
let validJsonString = JSON.stringify(demoObject);
let invalidJsonString = "a{}" ;

orValue(jsonString: string, orValue: *)

Parse JSON safely or get the 'orValue' in case of failure :

// Parse JSON safely or return the 'orValue'
let value;
  
value = parseJson.orValue(validJsonString, demoObject); // value = { foo: 1, bar: 2 }  
  
value = parseJson.orValue(invalidJsonString, "You can use any value from any type"); // value = "You can use any value from any type"
  
value = parseJson.orValue(invalidJsonString, 15); // value = 15
  
value = parseJson.orValue(invalidJsonString, true); // value = true
  
value = parseJson.orValue(invalidJsonString, { evenObjects: true }); // value = { evenObjects: true }

orError(jsonString: string, errorBuilder: string)

Parse JSON safely or raise an error created with a message that is created from the given string in case of failure :

// Parse JSON safely or raise an error (created from a string) in case of failure
let errorBuilderString = "This is a string message";
let value;
  
value = parseJson.orError(validJsonString, errorBuilderString); // value = { foo: 1, bar: 2}
  
try {
    value = parseJson.orError(invalidJsonString, errorBuilderString); // error = "You can use value from any type";
} catch (err) {
    console.log(err.message); // "This is a string message"
}

orError(jsonString: string, errorBuilder: function)

Parse JSON safely or throw an error with a 'message' property that is the returned value from the passed function

// Parse JSON safely or raise an error (created from a string) in case of failure
let errorBuilderFunction = (parsingError, originalString) => `${parsingError}:${originalString}`;
  
let value;
value = parseJson.orError(validJsonString, errorBuilderFunction); // value = { foo: 1, bar: 2}
  
try {
    value = parseJson.orError(invalidJsonString, errorBuilderFunction); 
} catch (err) {
    console.log(err.message); // "SyntaxError: Unexpected token a in JSON at position 0:a{}"; 
}

orError(jsonString: string)

// In case that the no 'errorBuilder' is given, the default error message will be used.
let value;
value = parseJson.orError(validJsonString); // value = { foo: 1, bar: 2}
  
try {
    value = parseJson.orError(invalidJsonString, errorBuilderFunction); // error = z
} catch (err) {
    console.log(err.message); // "SyntaxError: Unexpected token a in JSON at position 0"
}

Running the tests

npm run test

Built With

  • lodash - A modern JavaScript utility library delivering modularity, performance and extras.

Contributing

We are open to your contribution.

Versioning

We use SemVer for versioning.

Authors

  • Or Lavy - Initial work - OrLavy

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago