Skip to main content
This package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
This package works with Browsers
JSR Score
64%
Published
a year ago (0.1.2)

object-identity licenses

A utility that provides a stable identity of an object

This is free to use software, but if you do like it, consider supporting me ❤ī¸

sponsor me buy me a coffee

⚡ Features

  • ✅ Intuitive
  • đŸŒĒ Recursive/Circular support
  • 🏎 Performant — check the benchmarks.
  • đŸĒļ Lightweight — a mere 387B and no dependencies.

🚀 Usage

Avaliable on jsr, NPM and deno.land

import { identify } from 'object-identity';
// or
import { identify } from 'https://deno.land/x/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 deno 1.41.3

✔ object-identity       ~ 14,646,170 ops/sec ± 0.10%
✔ object-hash           ~    144,060 ops/sec ± 0.01%
✔ json-stable-stringify ~    638,559 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

Add Package

deno add jsr:@mr/object-identity

Import symbol

import * as object_identity from "@mr/object-identity";

---- OR ----

Import directly with a jsr specifier

import * as object_identity from "jsr:@mr/object-identity";

Add Package

npx jsr add @mr/object-identity

Import symbol

import * as object_identity from "@mr/object-identity";

Add Package

yarn dlx jsr add @mr/object-identity

Import symbol

import * as object_identity from "@mr/object-identity";

Add Package

pnpm dlx jsr add @mr/object-identity

Import symbol

import * as object_identity from "@mr/object-identity";

Add Package

bunx jsr add @mr/object-identity

Import symbol

import * as object_identity from "@mr/object-identity";