0.1.2 ā€¢ Published 10 months ago

object-identity v0.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

object-identity

npm add object-identity hashes objects

āš” Features

  • āœ… Intuitive
  • šŸŒŖ Recursive/Circular support
  • šŸŽ Performant ā€” check the benchmarks.
  • šŸŖ¶ Lightweight ā€” a mere 387B and no dependencies.

šŸš€ Usage

import { identify } from 'object-identity';

// ~> identity the object
const id1 = identify({ a: new Set(['b', 'c', new Map([['d', 'e']])]) });
// ~> an entirely different object, but structurally the same
const id2 = identify({ a: new Set(['b', 'c', new Map([['e', 'e']])]) });

// they should equal
assert.toEqual(hashA, hashB);

šŸ’Ø Benchmark

via the /bench directory with Node v18.16.1 (Apple M1 Pro)

āœ” object-identity           ~ 53,216,325 ops/sec Ā± 0.34%
āœ” object-hash               ~    110,440 ops/sec Ā± 0.01%
āœ” object-identity :: hashed ~ 45,415,100 ops/sec Ā± 0.05%
āœ” object-hash :: hashed     ~     51,365 ops/sec Ā± 0.01%

^ object-identity is not as feature-full it's alternatives, specifically around function values and other node builtins. So take this benchmark with a grain of salt, as it's only testing "json-like" payloads.

License

MIT Ā© Marais Rossouw

0.1.0

11 months ago

0.1.2

10 months ago

0.1.1

11 months ago

0.0.5

1 year ago

0.0.6

1 year ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

3 years ago