teleport-javascript

A super light and fast JavaScript object (de)serialization that includes date, bigint, regex, etc.

Usage no npm install needed!

<script type="module">
  import teleportJavascript from 'https://cdn.skypack.dev/teleport-javascript';
</script>

README

teleport-javascript

Coverage Status Build Status License: ISC JavaScript Style Guide

A super light and fast JavaScript object (de)serialization that includes Date, BigInt, RegExp, etc.

Installation

$ npm -i teleport-javascript

Usage

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

License

ISC