Json operations is my attempt at writing a way of parsing, tokenizing and generally working with JSON that can be used on browsers/node etc while having a standard error schema. If you are after simple parsing I recommend still using JSON.parse().
I was building something that required for me to raise errors when JSON was invalid and identify where it was broken, I couldn't find a library that I liked that did it (and JSON.parse() throws different errors on each browser). So I wrote this library
npm install json-operations
import { tokenize } from "json-operations"
const token = tokenize(`{"foo":"bar"}`);
if(token.success == true) {
console.log(token.result);
} else {
console.err(token.errors[0]);
}
TODO: Expand this bit more, explain it bit more
The following error messages might come out of tokenize function:
- Invalid character
- Incomplete unicode character
- Strings cannot be spread over multiple lines
- Unterminated string literal
- Unterminated array
- Commas should be followed by items within arrays
- Invalid property name (property names can only be strings)
- Unterminated object
- Incomplete property
- Commas should be followed by more properties within objects
JsonTokenizeError has the following format (all of the following will be thrown using this class):
class JsonTokenizeError {
public message : string; //error message (possible values listed above)
public position : number; //index of the character that triggered the error
public line : number; //current line (based on \n)
public column : number; //current index of the character within the line
}
UnexpectedJsonTokenizeError has the following format & it is a catch all for unexpected (bugs) errors (this should never be thrown, if you encounter this error, open an issue in GitHub):
class UnexpectedJsonTokenizeError {
public message : string = "An unexpected error has occurred";
public error: any;
public position? : number;
public line? : number;
public column? : number;
}