https://github.com/postmanlabs/teleport-javascript
A super light and fast JavaScript object (de)serialization that includes date, bigint, regex, etc.
https://github.com/postmanlabs/teleport-javascript
bigint circular cyclic date json parse serialization stringify
Last synced: 4 months ago
JSON representation
A super light and fast JavaScript object (de)serialization that includes date, bigint, regex, etc.
- Host: GitHub
- URL: https://github.com/postmanlabs/teleport-javascript
- Owner: postmanlabs
- License: isc
- Fork: true (WebReflection/flatted)
- Created: 2019-10-29T09:40:52.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-05-11T16:20:44.000Z (over 2 years ago)
- Last Synced: 2025-01-15T01:49:36.331Z (about 1 year ago)
- Topics: bigint, circular, cyclic, date, json, parse, serialization, stringify
- Language: JavaScript
- Homepage:
- Size: 129 KB
- Stars: 10
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# teleport-javascript
[](https://coveralls.io/github/codenirvana/teleport-javascript?branch=master) [](https://travis-ci.org/codenirvana/teleport-javascript) [](https://opensource.org/licenses/ISC) [](https://standardjs.com)
A super light and fast JavaScript object (de)serialization that includes Date, BigInt, RegExp, etc.
### Installation
```console
$ npm -i teleport-javascript
```
### Usage
```js
const {parse, stringify} = require('teleport-javascript');
const obj = {
key: 'value',
undefined: undefined,
regex: /a-z/gi,
set: new Set([-Infinity, NaN, Infinity]),
bigint: 900719925474099123n,
symbol: Symbol('key')
};
obj.circular = obj;
const stringified = stringify(obj);
// '[{"key":"1","undefined":"_0","regex":"_1","set":"_2","bigint":"_3","symbol":"_4","circular":"0"},"value",["u","R/a-z/gi","S[[\\"_0\\",\\"_1\\",\\"_2\\"],[\\"n-Infinity\\",\\"nNaN\\",\\"nInfinity\\"]]","b900719925474099123","skey"]]'
const parsed = parse(stringified);
// {
// key: 'value',
// undefined: undefined,
// regex: /a-z/gi,
// set: Set { -Infinity, NaN, Infinity },
// bigint: 900719925474099123n,
// symbol: Symbol(key),
// circular: [Circular]
// }
```
### Supported Data Types
* String
* Number _(including NaN, Infinity, -Infinity)_
* BigInt
* Boolean
* Symbol
* Null
* Undefined
* Array
- Int8Array
- Uint8Array
- Uint8ClampedArray
- Int16Array
- Uint16Array
- Int32Array
- Uint32Array
- Float32Array
- Float64Array
* Object _(including circular reference)_
- Date
- Buffer
- RegExp
- Map
- Set
### Benchmarks
[Benchmark Results](test/bench.txt)
## License
ISC