Skip to content
/ meek Public

Weak data collections without the limitations

License

Notifications You must be signed in to change notification settings

hqtsm/meek

Repository files navigation

HQTSM: Meek

Weak data collections without the limitations

weakset weakmap weakvaluemap enumerable iterable collection

JSR npm CI

Features

  • Pure TypeScript, run anywhere
  • Enumerable WeakSet: MeekSet
  • Enumerable WeakMap: MeekMap
  • WeakValueMap: MeekValueMap
  • Designed to be as compatible with the native collection types as possible
  • Do almost anything you can with regular collections with weak collections

Usage

MeekSet

import { MeekSet } from '@hqtsm/meek';

const values = [{ a: 1 }, { b: 2 }, { c: 3 }];
const set = new MeekSet(values);
console.assert(JSON.stringify([...set]) === JSON.stringify(values));

MeekMap

import { MeekMap } from '@hqtsm/meek';

const values: [{ i: number }, number][] = [
	[{ i: 0 }, 1],
	[{ i: 1 }, 2],
	[{ i: 2 }, 3],
];
const map = new MeekMap(values);
console.assert(JSON.stringify([...map]) === JSON.stringify(values));

MeekValueMap

import { MeekValueMap } from '@hqtsm/meek';

const values: [number, { i: number }][] = [
	[1, { i: 0 }],
	[2, { i: 1 }],
	[3, { i: 2 }],
];
const map = new MeekValueMap(values);
console.assert(JSON.stringify([...map]) === JSON.stringify(values));

About

Weak data collections without the limitations

Resources

License

Stars

Watchers

Forks

Packages

No packages published