JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q39102F

Object patching and replication for JavaScript

Package Exports

  • patcher

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (patcher) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

          _        _               _     
         | |      | |             (_)    

_ __ __ | | | | ___ _ __ _ ___ | ' \ / ` | |/ | ' \ / _ \ '| / _| | |) | (_| | || (_| | | | / | | _
| .
/ _,|_
|_
|_| |
|_||() |_/ | | / |
|
| |__/

=================================================

A JSON patching and diffing library
(c) 2011 Mikola Lysenko

  1. About

patcher.js is a simple javascript library for diffing and patching JSON documents. This can be useful, for example, in a networked environment where retransmitting large JSON documents is too expensive.

  1. Example:

//Start with two distinct objects on the server // prev represents a copy of the state of the object on the client // next represents a copy of the state of the object on the server // //1. Compute a patch patch = patcher.computePatch(prev, next);

//2. Send patch over the network

//3. Apply the patch on the client patcher.applyPatch(prev, patch);

//Final invariant: // prev represents an equivalent object to JSON.parse(JSON.stringify(next))

  1. API

There are two functions in patcher.js:

function computePatch(prev, next, update_in_place);

The argument prev is the object which the patch targets.

* If update_in_place is set to true, then the function
will simultaneously update both prev and next at the same
time.
* If prev and next are equal, then the method returns null
* Constructing this patch requires time linear on the 
size of the two documents.
* Patches are computed at the level of the objects and
arrays.  String modifications are simply retransmitted

function applyPatch(obj, patch)

This function applies a patch to the JSON document obj

  1. Future
  • More test cases!
  • Use data types cleverly
  • Binary serialization