json-operations
TypeScript icon, indicating that this package has built-in type declarations

0.0.6 • Public • Published

json-operations (WIP)

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

Installation

npm install json-operations

Tokenization

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

Errors

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;
}

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.0.6
    0
    • latest

Version History

Package Sidebar

Install

npm i json-operations

Weekly Downloads

0

Version

0.0.6

License

ISC

Unpacked Size

135 kB

Total Files

12

Last publish

Collaborators

  • hhoca