Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/primus/ejson

EJSON - Extended JSON from Meteor available for Node.js and the front-end in one handy neat package. Made compatible for Primus.
https://github.com/primus/ejson

Last synced: 3 months ago
JSON representation

EJSON - Extended JSON from Meteor available for Node.js and the front-end in one handy neat package. Made compatible for Primus.

Awesome Lists containing this project

README

        

# ejson

[![Version npm](https://img.shields.io/npm/v/ejson.svg?style=flat-square)](https://www.npmjs.com/package/ejson)[![CI](https://img.shields.io/github/actions/workflow/status/primus/ejson/ci.yml?branch=master&label=CI&style=flat-square)](https://github.com/primus/ejson/actions?query=workflow%3ACI+branch%3Amaster)[![Coverage Status](https://img.shields.io/coveralls/primus/ejson/master.svg?style=flat-square)](https://coveralls.io/r/primus/ejson?branch=master)

`ejson` is an extension of JSON to support more types. It supports all JSON-safe
types as well as

- **Date**: It maintains a date instance instead of transforming it to a string.
- **Binary**: `Uint8Array`
- **User defined types**

The `ejson` module is port of Meteor's EJSON parser which has been made
compatible for Node.js and browsers. This way, other
[real-time libraries](https://github.com/primus/primus) can also make use of
these extensions.

## Installation

The module is released through npm:

```
npm install --save ejson
```

## Usage

The API is exactly the same as the API that Meteor provides as it uses exactly
the same code. The most important API's are:

- `EJSON.clone`
- `EJSON.parse`
- `EJSON.stringify`

And some utility methods:

- `EJSON.toJSONValue`
- `EJSON.fromJSONValue`
- `EJSON.isBinary`
- `EJSON.newBinary`
- `EJSON.equals`

See the [meteor EJSON documentation](https://docs.meteor.com/#ejson) for more
detailed information.

## License

This module is licensed under MIT. Same as Meteor.js is.