Socket
Book a DemoInstallSign in
Socket

@bloque/differ

Package Overview
Dependencies
Maintainers
3
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bloque/differ

wraps objects and arrays and keeps track of global changes around wrapped objects

1.1.5
latest
npmnpm
Version published
Maintainers
3
Created
Source

Differ

Check

This library allows wrapping up objects to track whether they have changed or not. It uses jsum to calculate the checksum of an object.

Installation

This library should be able to run under any Node.js version, but we strongly encourage using the latest LTS version or a more recent one.

npm install @bloque/differ

Usage

import { differ, hasChanged } from "@bloque/differ";

const target = differ({
  a: 1,
  b: "orange",
});

console.log(hasChanged(target)); // false

a = 2;

console.log(hasChanged(target)); // true

a = 1;

console.log(hasChanged(target)); // false

differAll

It also supports managing lists, using the differAll method, to determine whether the items in the list are new.

import { differAll, hasChanged, isNew } from "@bloque/differ";

const list = differAll([
  { a: 1 },
]);

list.push({ a: 2 });

console.log(isNew(list[0])); // false
console.log(isNew(list[1])); // true

list[1].a = 3;

console.log(hasChanged(list[1])); // true

Serialization

If needed, it's possible to use the methods inside Serializers to save a differ object so you can store it outside your program and then rebuild it to match the state it was in before.

import { Serializers } from "@bloque/differ";

const target = differ({
  a: 1,
  b: 2,
});

target.b = 3;

const serialized = JSON.stringify(target, Serializers.replacer);
const reconstructed = JSON.stringify(target, Serializers.reviver);

console.log(hasChanged(reconstructed)); // true

target.b = 2;
console.log(hasChanged(reconstructed)); // true
reconstructed.b = 2;
console.log(hasChanged(reconstructed)); // false

Development

Local setup

To set it up on your local machine, you'll need the latest version of Node.js.

git clone https://github.com/bloque-app/differ.git
cd differ
npm install
npm run build

Testing

To check tests, run:

npm test

Keywords

diff-resolution

FAQs

Package last updated on 20 Oct 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.