Queue for Versioned JSON-Patch - makes sure that your JSON Patches (RFC6902) gets applied in correct order
npm install json-patch-queuesh
$ npm install json-patch-queue --save
`
Or
Install the component using Bower:
`sh
$ bower install json-patch-queue --save
`
Or download as ZIP.
Usage
$3
`javascript
var targetObject = {};
// create queue
var myQueue = new JSONPatchQueueSynchronous(targetObject, "/path_to_version", jsonpatch);
// to compose versioned JSON Patch, to be send somewhere?
var versionedPatchToBeSent = myQueue.send(regularpatch);
// to apply/queue received versioned JSON Patch
myQueue.receive(receivedVersionedPatch);
`
$3
`javascript
var targetObject = {};
// create queue
var myQueue = new JSONPatchQueue(targetObject, ["/local_version", "/remote_version"], jsonpatch);
// to compose versioned JSON Patch, to be send somewhere?
var versionedPatchToBeSent = myQueue.send(regularpatch);
// to apply/queue received versioned JSON Patch
myQueue.receive(receivedVersionedPatch);
`
Requirements
Agent requires a function to apply JSON Patch, we suggest fast JSON Patch (bower install fast-json-patch).
Methods
Name | Arguments | Default | Description
--- | --- | --- | ---
send | JSONPatch sequence | | Changes given JSON Patch to Versioned JSON Patch
receive | VersionedJSONPatch sequence Versioned JSON Patch to be queued and applied | | Receives, and eventually applies given Versioned JSON Patch, to the object passed in the constructor
#### Multiple Versioned
Name | Arguments | Default | Description
--- | --- | --- | ---
JSONPatchQueue | Object obj | --- | Target object where patches are applied
| Array [localVersionPath, remoteVersionPath] | | Paths where to store the versions
| Function apply | | function(object, patch) function to apply JSON Patch, must return the object in its final state
| Boolean purist | false | set to true to enable pure/unoptimized Versioned JSON Patch convention
#### Single Versioned
Name | Arguments | Default | Description
--- | --- | --- | ---
JSONPatchQueueSynchronous | Object obj | | Target object where patches are applied
| JSONPointer versionPath | | Path where to store the version
| Function apply | | function(object, patch) function to apply JSON Patch, must return the object in its final
| Boolean purist | false | set to true to enable pure/unoptimized Versioned JSON Patch convention
Properties
Name | Type | Description
--- | --- | ---
obj | Object | Target object where patches are applied
waiting | Array | Array of JSON Patches waiting in queue
#### Multiple Versioned
Name | Type | Description
--- | --- | ---
localVersion | Number | local version
remoteVersion | Number | acknowledged remote version
#### Single Versioned
Name | Type | Description
--- | --- | ---
version | Number | document version
Contributing
1. Fork it!
2. Create your feature branch: git checkout -b my-new-feature
3. Commit your changes: git commit -m 'Add some feature'
4. Push to the branch: git push origin my-new-feature`