0.1.0 • Published 3 years ago

@webreflection/json-map v0.1.0

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

JSON Map & Set

A basic utility to stringify and parse specialized Maps and Sets.

Exports

  • JSONMap as Map extend, it can contain only serializable instances
  • JSONSet as Set extend, it can contain only serializable instances
  • SerializableMap as Map extend, it can contain any JSON friendly value, but not serializable instances
  • SerializableSet as Set extend, it can contain any JSON friendly value, but not serializable instances
import {JSONSet, SerializableSet} from '@webreflection/json-map';

const generic1 = new SerializableSet;
generic1.add(1);
generic1.add(2);
generic1.add(3);

const generic2 = new SerializableSet;
generic2.add('a');
generic2.add('b');

const serializable = new JSONSet;
serializable.add(generic1);
serializable.add(generic2);

// will invoke toJSON automatically
const asString = JSON.stringify(serializable);
// '{"json_set":[{"set":[1,2,3]},{"set":["a","b"]}]}'

const asJSONSet = JSONSet.fromJSON(JSON.parse(asString));

//  JSONSet(2) [Set] {
//    SerializableSet(3) [Set] { 1, 2, 3 },
//    SerializableSet(2) [Set] { 'a', 'b' }
//  }

Goal

This module has a very specific use case in mind, and it's best combined with flatted to be able to parse back and forward recursive maps and sets.