Comparing version 1.0.0 to 1.1.0
123
API.md
@@ -5,6 +5,6 @@ ## Objects | ||
<dd><p>Enables to manipulate data and its substructures using dot separated property paths.</p> | ||
<p>All provided methods accept a <code>path</code> and/or an <code>offset</code> arguments referencing some substructure/value in the data.</p> | ||
<p>All provided methods accept a <code>path</code> and/or an <code>offset</code> arguments referencing some substructure or value in the data.</p> | ||
<ul> | ||
<li>If <code>offset</code> is provided, object will be rebased to the referenced subobject that will become the processing subject.</li> | ||
<li>If <code>path</code> is provided, it references the object that will be processed. If <code>offset</code> was also provided, it is the starting point of the <code>path</code>.</li> | ||
<li>If <code>path</code> is provided, it references the object that will be processed.</li> | ||
<li>If <code>offset</code> is provided, it sets the root point in the object for the resolving of the <code>path</code> argument.</li> | ||
</ul> | ||
@@ -23,8 +23,26 @@ </dd> | ||
All provided methods accept a `path` and/or an `offset` arguments referencing some substructure/value in the data. | ||
- If `offset` is provided, object will be rebased to the referenced subobject that will become the processing subject. | ||
- If `path` is provided, it references the object that will be processed. If `offset` was also provided, it is the starting point of the `path`. | ||
All provided methods accept a `path` and/or an `offset` arguments referencing some substructure or value in the data. | ||
- If `path` is provided, it references the object that will be processed. | ||
- If `offset` is provided, it sets the root point in the object for the resolving of the `path` argument. | ||
**Kind**: global namespace | ||
**Example** | ||
```js | ||
// path: 'foo' | ||
// |root |referenced substructure | ||
{foo: {hello: 'world'}, hello: 'Mundo'}; | ||
// path: 'hello' | ||
// |root |referenced value | ||
{foo: {hello: 'world'}, hello: 'Mundo'}; | ||
// path: 'foo.hello' | ||
// |root |referenced value | ||
{foo: {hello: 'world'}, hello: 'Mundo'}; | ||
// path: 'hello' & offset: 'foo' | ||
// |root |referenced value | ||
{foo: {hello: 'world'}, hello: 'Mundo'}; | ||
``` | ||
* [deep-lib](#deep-lib) : <code>object</code> | ||
@@ -35,13 +53,13 @@ * [.tools](#deep-lib.tools) : <code>object</code> | ||
* [.clone(object, [offset])](#deep-lib.clone) ⇒ <code>\*</code> | <code>undefined</code> | ||
* [.create(object, path, value, [force])](#deep-lib.create) ⇒ <code>string</code> | ||
* [.createPath(object, path, [force], [offset])](#deep-lib.createPath) | ||
* [.create(object, path, value, [offset], [force])](#deep-lib.create) ⇒ <code>string</code> | ||
* [.createPath(object, path, [offset], [force])](#deep-lib.createPath) | ||
* [.define(object, path, value, [options], [offset])](#deep-lib.define) | ||
* [.delete(object, path)](#deep-lib.delete) ⇒ <code>\*</code> | <code>undefined</code> | ||
* [.delete(object, path, [offset])](#deep-lib.delete) ⇒ <code>\*</code> | <code>undefined</code> | ||
* [.diff(object1, object2, [offset])](#deep-lib.diff) ⇒ <code>Array.<object></code> | <code>undefined</code> | ||
* [.equal(object1, object2, [offset])](#deep-lib.equal) ⇒ <code>boolean</code> | ||
* [.getPaths(object, [offset])](#deep-lib.getPaths) ⇒ <code>Array.<string></code> | ||
* [.move(object, oldPath, newPath)](#deep-lib.move) | ||
* [.move(object, oldPath, newPath, [offset])](#deep-lib.move) | ||
* [.search(object, regex, [offset])](#deep-lib.search) ⇒ <code>Array.<string></code> | ||
* [.select(object, [path])](#deep-lib.select) ⇒ <code>\*</code> | <code>undefined</code> | ||
* [.update(object, path, value, [ignoreUnknownProperties])](#deep-lib.update) | ||
* [.select(object, [path], [offset])](#deep-lib.select) ⇒ <code>\*</code> | <code>undefined</code> | ||
* [.update(object, path, value, [offset], [ignoreUnknownProperties])](#deep-lib.update) | ||
@@ -99,3 +117,3 @@ <a name="deep-lib.tools"></a> | ||
Returns a deep clone of the provided object. | ||
If a path is provided, the method will return | ||
If a `offset` is provided, the method will return | ||
a clone of the referenced substructure, property value or undefined | ||
@@ -111,3 +129,3 @@ should the path be unknown. | ||
| object | <code>object</code> | object to be cloned | | ||
| [offset] | <code>string</code> | path used to rebase the processed object to the referenced subobject | | ||
| [offset] | <code>string</code> | path used to rebase processing to the referenced substructure | | ||
@@ -119,8 +137,8 @@ **Example** | ||
var b = deep.clone(a); // => {foo: {hello: 'world'}} | ||
var c = deep.clone(a,'foo'); // => {hello: 'world'} | ||
var b = deep.clone(a); // => {foo: {hello: 'world'}} | ||
var c = deep.clone(a,'foo'); // => {hello: 'world'} | ||
var d = deep.clone(a,'foo.world'); // => 'world' | ||
``` | ||
<a name="deep-lib.create"></a> | ||
### deep-lib.create(object, path, value, [force]) ⇒ <code>string</code> | ||
### deep-lib.create(object, path, value, [offset], [force]) ⇒ <code>string</code> | ||
Creates/updates a new property/value pair in the parent object, | ||
@@ -141,2 +159,3 @@ if the path elements do not exist, the method will take | ||
| value | <code>\*</code> | | value to be assigned to the created property | | ||
| [offset] | <code>string</code> | | path used to rebase processing to the referenced substructure | | ||
| [force] | <code>boolean</code> | <code>false</code> | forces the method to change objects in arrays or vice versa to comply to the provided path | | ||
@@ -154,3 +173,3 @@ | ||
<a name="deep-lib.createPath"></a> | ||
### deep-lib.createPath(object, path, [force], [offset]) | ||
### deep-lib.createPath(object, path, [offset], [force]) | ||
Creates, if needed, all objects that are part of the provided path hierarchy. | ||
@@ -160,3 +179,3 @@ Paths can combine objects and arrays. On each path depth an Object | ||
Arrays are referenced using either: one of the wildcards "*+" (push), "*" (push), or an integer. | ||
Arrays are referenced using either: one of the wildcards "\*+" (push), "\*" (push), or an integer. | ||
If they are the last depth in the path, a null value will be placed at the specified index or added per push to the array. | ||
@@ -175,4 +194,4 @@ | ||
| path | <code>string</code> | | the object hierarchy to be created | | ||
| [offset] | <code>string</code> | | path used to rebase processing to the referenced substructure | | ||
| [force] | <code>boolean</code> | <code>false</code> | forces the method to change objects in arrays or vice versa to comply to the provided path | | ||
| [offset] | <code>string</code> | | path used to rebase the processed object to the referenced subobject | | ||
@@ -198,3 +217,3 @@ **Example** | ||
deep.createPath(a, 'bar.*.*.world', 'foo'); // => {foo: {hello: 'world', bar:[[{world:{}}]]}} | ||
deep.createPath(a.foo, 'bar.*.*.world'); // => {foo: {hello: 'world', bar:[[{world:{}}]]}} | ||
deep.createPath(a.foo, 'bar.*.*.world'); // => same as above | ||
``` | ||
@@ -218,3 +237,3 @@ <a name="deep-lib.define"></a> | ||
| [options] | <code>[DefinePropertyOptions](#DefinePropertyOptions)</code> | Object.defineProperty options | | ||
| [offset] | <code>string</code> | path used to rebase the processed object to the referenced subobject | | ||
| [offset] | <code>string</code> | path used to rebase processing to the referenced substructure | | ||
@@ -226,16 +245,16 @@ **Example** | ||
deep.defineProperty(a, 'bar', 42); // => {foo: {hello: 'world'}, bar:42} | ||
deep.defineProperty(a, 'bar.*', 42); // => {foo: {hello: 'world'}, bar:[42]} | ||
deep.defineProperty(a, 'bar.0', 42); // => {foo: {hello: 'world'}, bar:[42]} | ||
deep.defineProperty(a, 'bar.*.world', 42); // => {foo: {hello: 'world'}, bar:[{world:42}]} | ||
deep.defineProperty(a, 'bar.*.*.world', 42); // => {foo: {hello: 'world'}, bar:[[{world:42}]]} | ||
deep.define(a, 'bar', 42); // => {foo: {hello: 'world'}, bar:42} | ||
deep.define(a, 'bar.*', 42); // => {foo: {hello: 'world'}, bar:[42]} | ||
deep.define(a, 'bar.0', 42); // => {foo: {hello: 'world'}, bar:[42]} | ||
deep.define(a, 'bar.*.world', 42); // => {foo: {hello: 'world'}, bar:[{world:42}]} | ||
deep.define(a, 'bar.*.*.world', 42); // => {foo: {hello: 'world'}, bar:[[{world:42}]]} | ||
// used with offset | ||
deep.defineProperty(a, 'bar.*.*.world', 42, 'foo'); // same as above | ||
deep.define(a, 'bar.*.*.world', 42, 'foo'); // => {foo: {hello: 'world', bar:[[{world:42}]] }} | ||
// used with options | ||
deep.defineProperty(a, 'bar.*.*.world', 42, {writable:true}, 'foo'); // same as above | ||
// used with property options | ||
deep.define(a, 'bar.*.*.world', 42, {writable:true}, 'foo'); // same as above | ||
``` | ||
<a name="deep-lib.delete"></a> | ||
### deep-lib.delete(object, path) ⇒ <code>\*</code> | <code>undefined</code> | ||
### deep-lib.delete(object, path, [offset]) ⇒ <code>\*</code> | <code>undefined</code> | ||
Deletes the referenced property and returns its value | ||
@@ -251,2 +270,3 @@ | ||
| path | <code>string</code> | path referencing the property to be deleted | | ||
| [offset] | <code>string</code> | path used to rebase processing to the referenced substructure | | ||
@@ -275,3 +295,3 @@ **Example** | ||
| object2 | | comparison object | | ||
| [offset] | <code>string</code> | path used to rebase the processed object to the referenced subobject | | ||
| [offset] | <code>string</code> | path used to rebase processing to the referenced substructure | | ||
@@ -300,3 +320,3 @@ **Example** | ||
| object2 | | | | ||
| [offset] | <code>string</code> | path used to rebase the processed object to the referenced subobject | | ||
| [offset] | <code>string</code> | path used to rebase processing to the referenced substructure | | ||
@@ -324,3 +344,3 @@ **Example** | ||
| object | | object to be crawled | | ||
| [offset] | <code>string</code> | path used to rebase the processed object to the referenced subobject | | ||
| [offset] | <code>string</code> | path used to rebase processing to the referenced substructure | | ||
@@ -336,3 +356,3 @@ **Example** | ||
<a name="deep-lib.move"></a> | ||
### deep-lib.move(object, oldPath, newPath) | ||
### deep-lib.move(object, oldPath, newPath, [offset]) | ||
Moves a property or subobject within the provided object | ||
@@ -348,2 +368,3 @@ | ||
| newPath | <code>string</code> | path to the new property | | ||
| [offset] | <code>string</code> | path used to rebase processing to the referenced substructure | | ||
@@ -371,3 +392,3 @@ **Example** | ||
| regex | <code>RegExp</code> | a regular expression | | ||
| [offset] | <code>string</code> | path used to rebase the processed object to the referenced subobject | | ||
| [offset] | <code>string</code> | path used to rebase processing to the referenced substructure | | ||
@@ -384,3 +405,3 @@ **Example** | ||
<a name="deep-lib.select"></a> | ||
### deep-lib.select(object, [path]) ⇒ <code>\*</code> | <code>undefined</code> | ||
### deep-lib.select(object, [path], [offset]) ⇒ <code>\*</code> | <code>undefined</code> | ||
Returns the value referenced by the provided path | ||
@@ -397,2 +418,3 @@ or `undefined` if some element of the path does not exist | ||
| [path] | <code>string</code> | path to some substructure, array wildcards are not allowed in it | | ||
| [offset] | <code>string</code> | path used to rebase processing to the referenced substructure | | ||
@@ -408,5 +430,8 @@ **Example** | ||
deep.select(a, 'foo.bad'); // => undefined | ||
// with offset | ||
deep.select(a, 'hello', 'foo'); // => 'world' | ||
``` | ||
<a name="deep-lib.update"></a> | ||
### deep-lib.update(object, path, value, [ignoreUnknownProperties]) | ||
### deep-lib.update(object, path, value, [offset], [ignoreUnknownProperties]) | ||
Updates a property/value pair in the parent object, | ||
@@ -425,2 +450,3 @@ if the path elements does not exist, the method will throw an error. | ||
| value | <code>\*</code> | | value to be assigned to the created property | | ||
| [offset] | <code>string</code> | | path used to rebase processing to the referenced substructure | | ||
| [ignoreUnknownProperties] | <code>boolean</code> | <code>false</code> | if set to true, update will ignore errors caused by unknown properties and fail silently | | ||
@@ -431,11 +457,10 @@ | ||
var deep = require('deep-lib'); | ||
var a = {foo: {hello: 'world'}}; | ||
var a = {foo: {hello: 'world'}, bar: ['one', 'two']}; | ||
deep.update(a, 'foo.*.hello', 'mundo'); // array wildcard => error; | ||
deep.update(a, 'ciao', 'mondo'); // unknown property => error; | ||
deep.update(a, 'ciao', 'mondo', true); // unknown property => silent fail, no change; | ||
deep.create(a, 'some.deep.path.hallo', 'Welt'); // unknown property => error; | ||
deep.create(a, 'foo.hallo'); // no value => no change; | ||
deep.create(a, 'foo.hallo', 'developer'); // update => success; | ||
deep.create(a.foo, 'hallo', 'developer'); // update => success; | ||
deep.update(a, 'foo.hallo'); // no value => no change; | ||
deep.update(a, 'foo.hallo', 'developer'); // update => success; | ||
deep.update(a, 'bar.1', 'mundo'); // update => success; | ||
deep.update(a, 'bar.*', 'mundo'); // array wildcard => error; | ||
deep.update(a, 'ciao', 'mondo'); // unknown property => error; | ||
deep.update(a, 'ciao', 'mondo', true); // unknown property => silent fail, no change; | ||
``` | ||
@@ -447,7 +472,3 @@ <a name="DefinePropertyOptions"></a> | ||
**Kind**: global typedef | ||
**See** | ||
- [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty) | ||
- [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators) | ||
**See**: {https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty#Description} | ||
**Properties** | ||
@@ -454,0 +475,0 @@ |
@@ -9,7 +9,25 @@ /*jslint node: true */ | ||
* | ||
* All provided methods accept a `path` and/or an `offset` arguments referencing some substructure/value in the data. | ||
* - If `offset` is provided, object will be rebased to the referenced subobject that will become the processing subject. | ||
* - If `path` is provided, it references the object that will be processed. If `offset` was also provided, it is the starting point of the `path`. | ||
* All provided methods accept a `path` and/or an `offset` arguments referencing some substructure or value in the data. | ||
* - If `path` is provided, it references the object that will be processed. | ||
* - If `offset` is provided, it sets the root point in the object for the resolving of the `path` argument. | ||
* | ||
* @namespace deep-lib | ||
* | ||
* @example | ||
* | ||
* // path: 'foo' | ||
* // |root |referenced substructure | ||
* {foo: {hello: 'world'}, hello: 'Mundo'}; | ||
* | ||
* // path: 'hello' | ||
* // |root |referenced value | ||
* {foo: {hello: 'world'}, hello: 'Mundo'}; | ||
* | ||
* // path: 'foo.hello' | ||
* // |root |referenced value | ||
* {foo: {hello: 'world'}, hello: 'Mundo'}; | ||
* | ||
* // path: 'hello' & offset: 'foo' | ||
* // |root |referenced value | ||
* {foo: {hello: 'world'}, hello: 'Mundo'}; | ||
*/ | ||
@@ -16,0 +34,0 @@ |
@@ -9,3 +9,3 @@ /*jslint node: true */ | ||
* Returns a deep clone of the provided object. | ||
* If a path is provided, the method will return | ||
* If a `offset` is provided, the method will return | ||
* a clone of the referenced substructure, property value or undefined | ||
@@ -20,3 +20,3 @@ * should the path be unknown. | ||
* @param {object} object object to be cloned | ||
* @param {string} [offset] path used to rebase the processed object to the referenced subobject | ||
* @param {string} [offset] path used to rebase processing to the referenced substructure | ||
* | ||
@@ -29,4 +29,4 @@ * @returns {*|undefined} a structure, a value or undefined | ||
* | ||
* var b = deep.clone(a); // => {foo: {hello: 'world'}} | ||
* var c = deep.clone(a,'foo'); // => {hello: 'world'} | ||
* var b = deep.clone(a); // => {foo: {hello: 'world'}} | ||
* var c = deep.clone(a,'foo'); // => {hello: 'world'} | ||
* var d = deep.clone(a,'foo.world'); // => 'world' | ||
@@ -33,0 +33,0 @@ */ |
@@ -24,2 +24,3 @@ /*jslint node: true */ | ||
* @param {*} value value to be assigned to the created property | ||
* @param {string} [offset] path used to rebase processing to the referenced substructure | ||
* @param {boolean} [force=false] forces the method to change objects in arrays or vice versa to comply to the provided path | ||
@@ -37,3 +38,14 @@ * | ||
*/ | ||
exports.create = function create (object, path, value, force) { | ||
exports.create = function create (object, path, value, offset, force) { | ||
if (typeof offset === 'boolean') { | ||
force = offset; | ||
offset = ''; | ||
} | ||
if (offset) { | ||
// rebase object using provided offset | ||
object = select(object, offset); | ||
} | ||
if (value !== undefined) { | ||
@@ -45,4 +57,4 @@ | ||
return path; | ||
return (offset ? offset + tools.sep + path : path); | ||
} | ||
}; |
@@ -42,3 +42,3 @@ /*jslint node: true */ | ||
* | ||
* Arrays are referenced using either: one of the wildcards "*+" (push), "*" (push), or an integer. | ||
* Arrays are referenced using either: one of the wildcards "\*+" (push), "\*" (push), or an integer. | ||
* If they are the last depth in the path, a null value will be placed at the specified index or added per push to the array. | ||
@@ -53,4 +53,4 @@ * | ||
* @param {string} path the object hierarchy to be created | ||
* @param {string} [offset] path used to rebase processing to the referenced substructure | ||
* @param {boolean} [force=false] forces the method to change objects in arrays or vice versa to comply to the provided path | ||
* @param {string} [offset] path used to rebase the processed object to the referenced subobject | ||
* | ||
@@ -77,9 +77,9 @@ * @todo should return the created path | ||
* deep.createPath(a, 'bar.*.*.world', 'foo'); // => {foo: {hello: 'world', bar:[[{world:{}}]]}} | ||
* deep.createPath(a.foo, 'bar.*.*.world'); // => {foo: {hello: 'world', bar:[[{world:{}}]]}} | ||
* deep.createPath(a.foo, 'bar.*.*.world'); // => same as above | ||
*/ | ||
exports.createPath = function createPath (object, path, force, offset) { | ||
exports.createPath = function createPath (object, path, offset, force) { | ||
if (typeof force === 'string') { | ||
offset = force; | ||
force = false; | ||
if (typeof offset === 'boolean') { | ||
force = offset; | ||
offset = null; | ||
} | ||
@@ -86,0 +86,0 @@ |
@@ -30,4 +30,3 @@ /*jslint node: true */ | ||
* | ||
* @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty} | ||
* @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators} | ||
* @see {https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty#Description} | ||
*/ | ||
@@ -47,3 +46,3 @@ | ||
* @param {DefinePropertyOptions} [options] Object.defineProperty options | ||
* @param {string} [offset] path used to rebase the processed object to the referenced subobject | ||
* @param {string} [offset] path used to rebase processing to the referenced substructure | ||
* | ||
@@ -56,13 +55,13 @@ * @todo should return the created path | ||
* | ||
* deep.defineProperty(a, 'bar', 42); // => {foo: {hello: 'world'}, bar:42} | ||
* deep.defineProperty(a, 'bar.*', 42); // => {foo: {hello: 'world'}, bar:[42]} | ||
* deep.defineProperty(a, 'bar.0', 42); // => {foo: {hello: 'world'}, bar:[42]} | ||
* deep.defineProperty(a, 'bar.*.world', 42); // => {foo: {hello: 'world'}, bar:[{world:42}]} | ||
* deep.defineProperty(a, 'bar.*.*.world', 42); // => {foo: {hello: 'world'}, bar:[[{world:42}]]} | ||
* deep.define(a, 'bar', 42); // => {foo: {hello: 'world'}, bar:42} | ||
* deep.define(a, 'bar.*', 42); // => {foo: {hello: 'world'}, bar:[42]} | ||
* deep.define(a, 'bar.0', 42); // => {foo: {hello: 'world'}, bar:[42]} | ||
* deep.define(a, 'bar.*.world', 42); // => {foo: {hello: 'world'}, bar:[{world:42}]} | ||
* deep.define(a, 'bar.*.*.world', 42); // => {foo: {hello: 'world'}, bar:[[{world:42}]]} | ||
* | ||
* // used with offset | ||
* deep.defineProperty(a, 'bar.*.*.world', 42, 'foo'); // same as above | ||
* deep.define(a, 'bar.*.*.world', 42, 'foo'); // => {foo: {hello: 'world', bar:[[{world:42}]] }} | ||
* | ||
* // used with options | ||
* deep.defineProperty(a, 'bar.*.*.world', 42, {writable:true}, 'foo'); // same as above | ||
* // used with property options | ||
* deep.define(a, 'bar.*.*.world', 42, {writable:true}, 'foo'); // same as above | ||
*/ | ||
@@ -69,0 +68,0 @@ exports.define = function define (object, path, value, options, offset) { |
@@ -17,2 +17,3 @@ /*jslint node: true */ | ||
* @param {string} path path referencing the property to be deleted | ||
* @param {string} [offset] path used to rebase processing to the referenced substructure | ||
* | ||
@@ -28,3 +29,9 @@ * @returns {*|undefined} value of the deleted property or false if not found | ||
*/ | ||
exports.delete = function deepDelete (object, path) { | ||
exports.delete = function deepDelete (object, path, offset) { | ||
if (offset) { | ||
// rebase object using provided offset | ||
object = select(object, offset); | ||
} | ||
var propertyName = path; | ||
@@ -31,0 +38,0 @@ |
@@ -19,3 +19,3 @@ /*jslint node: true */ | ||
* @param object2 comparison object | ||
* @param {string} [offset] path used to rebase the processed object to the referenced subobject | ||
* @param {string} [offset] path used to rebase processing to the referenced substructure | ||
* | ||
@@ -22,0 +22,0 @@ * @returns {object[]|undefined} returns a diff object or `undefined` if both object are deeply equal |
@@ -19,3 +19,3 @@ /*jslint node: true */ | ||
* @param object2 | ||
* @param {string} [offset] path used to rebase the processed object to the referenced subobject | ||
* @param {string} [offset] path used to rebase processing to the referenced substructure | ||
* | ||
@@ -22,0 +22,0 @@ * @returns {boolean} if objects are equal `true` if unequal `false` |
@@ -16,3 +16,3 @@ /*jslint node: true */ | ||
* @param object object to be crawled | ||
* @param {string} [offset] path used to rebase the processed object to the referenced subobject | ||
* @param {string} [offset] path used to rebase processing to the referenced substructure | ||
* | ||
@@ -19,0 +19,0 @@ * @returns {string[]} a list of all paths found in the provided object |
@@ -19,2 +19,3 @@ /*jslint node: true */ | ||
* @param {string} newPath path to the new property | ||
* @param {string} [offset] path used to rebase processing to the referenced substructure | ||
* | ||
@@ -28,3 +29,9 @@ * @example | ||
*/ | ||
exports.move = function deepMove (object, oldPath, newPath) { | ||
exports.move = function deepMove (object, oldPath, newPath, offset) { | ||
if (offset) { | ||
// rebase object using provided offset | ||
object = deepSelect(object, offset); | ||
} | ||
var value = deepSelect(object, oldPath); | ||
@@ -31,0 +38,0 @@ |
@@ -18,3 +18,3 @@ /*jslint node: true */ | ||
* @param {RegExp} regex a regular expression | ||
* @param {string} [offset] path used to rebase the processed object to the referenced subobject | ||
* @param {string} [offset] path used to rebase processing to the referenced substructure | ||
* | ||
@@ -21,0 +21,0 @@ * @returns {string[]} an array of strings or an empty array if no match was found |
@@ -21,2 +21,3 @@ /*jslint node: true */ | ||
* @param {string} [path] path to some substructure, array wildcards are not allowed in it | ||
* @param {string} [offset] path used to rebase processing to the referenced substructure | ||
* | ||
@@ -33,5 +34,14 @@ * @returns {*|undefined} the referenced value or `undefined` | ||
* deep.select(a, 'foo.bad'); // => undefined | ||
* | ||
* // with offset | ||
* deep.select(a, 'hello', 'foo'); // => 'world' | ||
* | ||
*/ | ||
exports.select = function select (object, path) { | ||
exports.select = function select (object, path, offset) { | ||
if (offset) { | ||
// rebase object using provided offset | ||
object = select(object, offset); | ||
} | ||
if (tools.pathIncludesArrayWildcards(path)) { | ||
@@ -38,0 +48,0 @@ // this is an update method: only plain path are allowed, nothing should be created |
@@ -26,2 +26,3 @@ /*jslint node: true */ | ||
* @param {*} value value to be assigned to the created property | ||
* @param {string} [offset] path used to rebase processing to the referenced substructure | ||
* @param {boolean} [ignoreUnknownProperties=false] if set to true, update will ignore errors caused by unknown properties and fail silently | ||
@@ -31,14 +32,23 @@ * | ||
* var deep = require('deep-lib'); | ||
* var a = {foo: {hello: 'world'}}; | ||
* var a = {foo: {hello: 'world'}, bar: ['one', 'two']}; | ||
* | ||
* deep.update(a, 'foo.*.hello', 'mundo'); // array wildcard => error; | ||
* deep.update(a, 'ciao', 'mondo'); // unknown property => error; | ||
* deep.update(a, 'ciao', 'mondo', true); // unknown property => silent fail, no change; | ||
* deep.create(a, 'some.deep.path.hallo', 'Welt'); // unknown property => error; | ||
* deep.create(a, 'foo.hallo'); // no value => no change; | ||
* deep.create(a, 'foo.hallo', 'developer'); // update => success; | ||
* deep.create(a.foo, 'hallo', 'developer'); // update => success; | ||
* deep.update(a, 'foo.hallo'); // no value => no change; | ||
* deep.update(a, 'foo.hallo', 'developer'); // update => success; | ||
* deep.update(a, 'bar.1', 'mundo'); // update => success; | ||
* deep.update(a, 'bar.*', 'mundo'); // array wildcard => error; | ||
* deep.update(a, 'ciao', 'mondo'); // unknown property => error; | ||
* deep.update(a, 'ciao', 'mondo', true); // unknown property => silent fail, no change; | ||
*/ | ||
exports.update = function update (object, path, value, ignoreUnknownProperties) { | ||
exports.update = function update (object, path, value, offset, ignoreUnknownProperties) { | ||
if (typeof offset === 'boolean') { | ||
ignoreUnknownProperties = offset; | ||
offset = null; | ||
} | ||
if (offset) { | ||
// rebase object using provided offset | ||
object = select(object, offset); | ||
} | ||
// convert to boolean | ||
@@ -45,0 +55,0 @@ ignoreUnknownProperties = !!ignoreUnknownProperties; |
{ | ||
"name": "deep-lib", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"dependencies": { | ||
@@ -5,0 +5,0 @@ "clone": { |
{ | ||
"name": "deep-lib", | ||
"license": "MIT", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"homepage": "https://github.com/CoderSyndicate/deep-lib", | ||
"author": "https://github.com/CoderSyndicate/deep-lib/graphs/contributors", | ||
"description": "Enables to manipulate data and its substructures using dot separated property paths", | ||
"description": "Enables to manipulate data and its substructures using dot separated property paths and methods to create, update, delete, select, move, search, check equality, check diff, ...", | ||
"keywords": [ | ||
@@ -9,0 +9,0 @@ "object", |
@@ -12,3 +12,4 @@ # deep-lib | ||
Enables to manipulate data and its substructures using dot separated property paths. | ||
Enables to manipulate data and its substructures using dot separated property paths and | ||
methods to create, update, delete, select, move, search, check equality, check diff, ... (see [API.md](API.md)) | ||
@@ -24,76 +25,23 @@ | ||
## Usage | ||
### Require module | ||
All provided methods accept a `path` and/or an `offset` arguments referencing some substructure or value in the data. | ||
var deep = require('deep-lib'); | ||
- If `path` is provided, it references the object that will be processed. | ||
- If `offset` is provided, it sets the root point in the object for the resolving of the `path` argument. | ||
## Usage | ||
All provided methods accept a `path` property referencing some substructure/value in the data. | ||
If `path` is provided, the called method will be applied to the referenced substructure. | ||
The full API documentation can be found in the [API.md](API.md) | ||
### clone | ||
var deep = require('deep-lib'); | ||
var a = {foo: {hello: 'world'}, some: 'thing'}; | ||
deep.select(a); // => {foo: {hello: 'world'}, some: 'thing'}; | ||
deep.select(a, 'foo'); // => {hello: 'world'} | ||
deep.select(a, 'foo.hello'); // => 'world' | ||
deep.select(a, 'foo.bad'); // => undefined | ||
// with offset | ||
deep.select(a, 'hello', 'foo'); // => 'world' | ||
Clones the referenced substructure/value. | ||
If no `path` is provided, the whole object is cloned. | ||
### select | ||
Returns the referenced substructure/value or undefined if it was not found. | ||
### defineProperty | ||
Makes [Object.defineProperty()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty) available to deep referencing. | ||
Adds a new substructure/value to the location specified with the `path`. | ||
If structures in the `path` do not exist, the method will create them in order to fulfil the task. | ||
### create | ||
Adds a new substructure/value to the location specified with the `path`. | ||
If structures in the `path` do not exist, the method will create them in order to fulfil the task. | ||
### update | ||
Adds a new substructure/value to the location specified with the `path`. | ||
### move | ||
Moves a substructure/value to a new `path` without breaking the object reference. | ||
### delete | ||
Deletes the referenced property, returning its value or undefined if it was not found. | ||
### equal | ||
Uses the [deep-equal](https://www.npmjs.com/package/deep-equal) package. | ||
Returns true if the compared objects strictly equals each other. | ||
### diff | ||
Uses the [deep-diff](https://www.npmjs.com/package/deep-diff) package. | ||
### createPaths | ||
Create the object hierarchy if needed. | ||
### getPaths | ||
Returns all available paths to all values in the object. | ||
### tools.parent | ||
Returns the parent part of a path (like unix dirname). | ||
### tools.property | ||
Returns the property part of a path (like unix basename). | ||
------------------- | ||
@@ -100,0 +48,0 @@ Copyright (c) 2015 Luscus (luscus.redbeard@gmail.com) |
{ | ||
"/Users/lallemant/dev/deep-lib/lib/deep-lib.js":{"path":"/Users/lallemant/dev/deep-lib/lib/deep-lib.js","s":{"1":1,"2":1,"3":1,"4":1},"b":{},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":32}},"2":{"start":{"line":21,"column":0},"end":{"line":24,"column":2}},"3":{"start":{"line":26,"column":0},"end":{"line":41,"column":2}},"4":{"start":{"line":43,"column":0},"end":{"line":43,"column":22}}},"branchMap":{},"l":{"4":1,"21":1,"26":1,"43":1}}, | ||
"/Users/lallemant/dev/deep-lib/lib/tools.js":{"path":"/Users/lallemant/dev/deep-lib/lib/tools.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":137,"8":1,"9":2,"10":1,"11":334,"12":50,"13":1,"14":283,"15":1,"16":131,"17":1,"18":4,"19":1,"20":550,"21":1,"22":3,"23":1,"24":43,"25":43,"26":1,"27":40,"28":40,"29":1,"30":40,"31":40},"b":{"1":[136,1],"2":[25,50,1,283],"3":[131,126,126],"4":[4,3],"5":[39,1],"6":[39,1]},"f":{"1":137,"2":2,"3":334,"4":131,"5":4,"6":550,"7":3,"8":43,"9":40,"10":40},"fnMap":{"1":{"name":"split","line":20,"loc":{"start":{"line":20,"column":16},"end":{"line":20,"column":38}}},"2":{"name":"join","line":24,"loc":{"start":{"line":24,"column":15},"end":{"line":24,"column":44}}},"3":{"name":"isArrayIndex","line":28,"loc":{"start":{"line":28,"column":23},"end":{"line":28,"column":59}}},"4":{"name":"isArrayIndex","line":40,"loc":{"start":{"line":40,"column":37},"end":{"line":40,"column":66}}},"5":{"name":"isObject","line":48,"loc":{"start":{"line":48,"column":19},"end":{"line":48,"column":51}}},"6":{"name":"isArray","line":52,"loc":{"start":{"line":52,"column":18},"end":{"line":52,"column":44}}},"7":{"name":"areIdentical","line":56,"loc":{"start":{"line":56,"column":23},"end":{"line":56,"column":64}}},"8":{"name":"isDeep","line":60,"loc":{"start":{"line":60,"column":17},"end":{"line":60,"column":40}}},"9":{"name":"parent","line":84,"loc":{"start":{"line":84,"column":17},"end":{"line":84,"column":40}}},"10":{"name":"property","line":108,"loc":{"start":{"line":108,"column":19},"end":{"line":108,"column":44}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":43}},"2":{"start":{"line":6,"column":0},"end":{"line":6,"column":31}},"3":{"start":{"line":7,"column":0},"end":{"line":7,"column":31}},"4":{"start":{"line":8,"column":0},"end":{"line":8,"column":32}},"5":{"start":{"line":9,"column":0},"end":{"line":9,"column":32}},"6":{"start":{"line":20,"column":0},"end":{"line":22,"column":2}},"7":{"start":{"line":21,"column":2},"end":{"line":21,"column":47}},"8":{"start":{"line":24,"column":0},"end":{"line":26,"column":2}},"9":{"start":{"line":25,"column":2},"end":{"line":25,"column":40}},"10":{"start":{"line":28,"column":0},"end":{"line":38,"column":2}},"11":{"start":{"line":29,"column":2},"end":{"line":37,"column":3}},"12":{"start":{"line":32,"column":6},"end":{"line":32,"column":20}},"13":{"start":{"line":34,"column":6},"end":{"line":34,"column":19}},"14":{"start":{"line":36,"column":6},"end":{"line":36,"column":42}},"15":{"start":{"line":40,"column":0},"end":{"line":46,"column":2}},"16":{"start":{"line":41,"column":2},"end":{"line":45,"column":4}},"17":{"start":{"line":48,"column":0},"end":{"line":50,"column":2}},"18":{"start":{"line":49,"column":2},"end":{"line":49,"column":67}},"19":{"start":{"line":52,"column":0},"end":{"line":54,"column":2}},"20":{"start":{"line":53,"column":2},"end":{"line":53,"column":69}},"21":{"start":{"line":56,"column":0},"end":{"line":58,"column":2}},"22":{"start":{"line":57,"column":2},"end":{"line":57,"column":29}},"23":{"start":{"line":60,"column":0},"end":{"line":63,"column":2}},"24":{"start":{"line":61,"column":2},"end":{"line":61,"column":51}},"25":{"start":{"line":62,"column":2},"end":{"line":62,"column":29}},"26":{"start":{"line":84,"column":0},"end":{"line":87,"column":2}},"27":{"start":{"line":85,"column":2},"end":{"line":85,"column":51}},"28":{"start":{"line":86,"column":2},"end":{"line":86,"column":70}},"29":{"start":{"line":108,"column":0},"end":{"line":111,"column":2}},"30":{"start":{"line":109,"column":2},"end":{"line":109,"column":51}},"31":{"start":{"line":110,"column":2},"end":{"line":110,"column":71}}},"branchMap":{"1":{"line":21,"type":"cond-expr","locations":[{"start":{"line":21,"column":17},"end":{"line":21,"column":40}},{"start":{"line":21,"column":43},"end":{"line":21,"column":45}}]},"2":{"line":29,"type":"switch","locations":[{"start":{"line":30,"column":4},"end":{"line":30,"column":34}},{"start":{"line":31,"column":4},"end":{"line":32,"column":20}},{"start":{"line":33,"column":4},"end":{"line":34,"column":19}},{"start":{"line":35,"column":4},"end":{"line":36,"column":42}}]},"3":{"line":42,"type":"binary-expr","locations":[{"start":{"line":42,"column":6},"end":{"line":42,"column":49}},{"start":{"line":43,"column":6},"end":{"line":43,"column":42}},{"start":{"line":44,"column":6},"end":{"line":44,"column":41}}]},"4":{"line":49,"type":"binary-expr","locations":[{"start":{"line":49,"column":10},"end":{"line":49,"column":41}},{"start":{"line":49,"column":45},"end":{"line":49,"column":65}}]},"5":{"line":86,"type":"cond-expr","locations":[{"start":{"line":86,"column":30},"end":{"line":86,"column":61}},{"start":{"line":86,"column":64},"end":{"line":86,"column":68}}]},"6":{"line":110,"type":"cond-expr","locations":[{"start":{"line":110,"column":30},"end":{"line":110,"column":62}},{"start":{"line":110,"column":65},"end":{"line":110,"column":69}}]}},"l":{"4":1,"6":1,"7":1,"8":1,"9":1,"20":1,"21":137,"24":1,"25":2,"28":1,"29":334,"32":50,"34":1,"36":283,"40":1,"41":131,"48":1,"49":4,"52":1,"53":550,"56":1,"57":3,"60":1,"61":43,"62":43,"84":1,"85":40,"86":40,"108":1,"109":40,"110":40}}, | ||
"/Users/lallemant/dev/deep-lib/lib/methods/createPath.js":{"path":"/Users/lallemant/dev/deep-lib/lib/methods/createPath.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":312,"7":65,"8":0,"9":65,"10":17,"11":48,"12":247,"13":2,"14":245,"15":0,"16":312,"17":1,"18":39,"19":0,"20":0,"21":39,"22":39,"23":1,"24":39,"25":39,"26":39,"27":39,"28":39,"29":39,"30":39,"31":39,"32":39,"33":160,"34":160,"35":121,"36":160,"37":160,"38":160,"39":160,"40":160,"41":160,"42":4,"43":156,"44":156,"45":156,"46":34,"47":22,"48":22,"49":12,"50":122,"51":156,"52":156,"53":35},"b":{"1":[65,247],"2":[0,65],"3":[65,0],"4":[17,48],"5":[65,65],"6":[2,245],"7":[247,196],"8":[0,245],"9":[245,51],"10":[0,39],"11":[1,38],"12":[121,39],"13":[160,148,61],"14":[4,156],"15":[160,160,23],"16":[34,122],"17":[156,34],"18":[22,12],"19":[22]},"f":{"1":312,"2":39,"3":160},"fnMap":{"1":{"name":"initDepthObject","line":13,"loc":{"start":{"line":13,"column":26},"end":{"line":13,"column":82}}},"2":{"name":"createPath","line":77,"loc":{"start":{"line":77,"column":21},"end":{"line":77,"column":71}}},"3":{"name":"pathElementIterator","line":100,"loc":{"start":{"line":100,"column":23},"end":{"line":100,"column":61}}}},"statementMap":{"1":{"start":{"line":5,"column":0},"end":{"line":5,"column":40}},"2":{"start":{"line":6,"column":0},"end":{"line":6,"column":33}},"3":{"start":{"line":7,"column":0},"end":{"line":7,"column":19}},"4":{"start":{"line":9,"column":0},"end":{"line":11,"column":2}},"5":{"start":{"line":13,"column":0},"end":{"line":35,"column":2}},"6":{"start":{"line":15,"column":2},"end":{"line":32,"column":3}},"7":{"start":{"line":17,"column":4},"end":{"line":25,"column":5}},"8":{"start":{"line":18,"column":6},"end":{"line":18,"column":17}},"9":{"start":{"line":20,"column":9},"end":{"line":25,"column":5}},"10":{"start":{"line":21,"column":6},"end":{"line":21,"column":17}},"11":{"start":{"line":24,"column":6},"end":{"line":24,"column":17}},"12":{"start":{"line":27,"column":7},"end":{"line":32,"column":3}},"13":{"start":{"line":28,"column":4},"end":{"line":28,"column":15}},"14":{"start":{"line":30,"column":7},"end":{"line":32,"column":3}},"15":{"start":{"line":31,"column":4},"end":{"line":31,"column":15}},"16":{"start":{"line":34,"column":2},"end":{"line":34,"column":15}},"17":{"start":{"line":77,"column":0},"end":{"line":198,"column":2}},"18":{"start":{"line":79,"column":2},"end":{"line":82,"column":3}},"19":{"start":{"line":80,"column":4},"end":{"line":80,"column":19}},"20":{"start":{"line":81,"column":4},"end":{"line":81,"column":19}},"21":{"start":{"line":84,"column":2},"end":{"line":84,"column":21}},"22":{"start":{"line":86,"column":2},"end":{"line":89,"column":3}},"23":{"start":{"line":88,"column":4},"end":{"line":88,"column":36}},"24":{"start":{"line":91,"column":2},"end":{"line":91,"column":39}},"25":{"start":{"line":92,"column":2},"end":{"line":92,"column":20}},"26":{"start":{"line":93,"column":2},"end":{"line":93,"column":14}},"27":{"start":{"line":94,"column":2},"end":{"line":94,"column":20}},"28":{"start":{"line":95,"column":2},"end":{"line":95,"column":22}},"29":{"start":{"line":96,"column":2},"end":{"line":96,"column":24}},"30":{"start":{"line":97,"column":2},"end":{"line":97,"column":26}},"31":{"start":{"line":98,"column":2},"end":{"line":98,"column":23}},"32":{"start":{"line":100,"column":2},"end":{"line":195,"column":5}},"33":{"start":{"line":101,"column":4},"end":{"line":101,"column":34}},"34":{"start":{"line":103,"column":4},"end":{"line":103,"column":40}},"35":{"start":{"line":103,"column":18},"end":{"line":103,"column":40}},"36":{"start":{"line":106,"column":4},"end":{"line":106,"column":48}},"37":{"start":{"line":107,"column":4},"end":{"line":107,"column":50}},"38":{"start":{"line":109,"column":4},"end":{"line":109,"column":53}},"39":{"start":{"line":110,"column":4},"end":{"line":110,"column":54}},"40":{"start":{"line":115,"column":4},"end":{"line":115,"column":86}},"41":{"start":{"line":137,"column":4},"end":{"line":148,"column":5}},"42":{"start":{"line":147,"column":6},"end":{"line":147,"column":76}},"43":{"start":{"line":151,"column":4},"end":{"line":151,"column":68}},"44":{"start":{"line":155,"column":4},"end":{"line":155,"column":113}},"45":{"start":{"line":163,"column":4},"end":{"line":182,"column":5}},"46":{"start":{"line":167,"column":6},"end":{"line":176,"column":7}},"47":{"start":{"line":168,"column":8},"end":{"line":172,"column":9}},"48":{"start":{"line":171,"column":12},"end":{"line":171,"column":52}},"49":{"start":{"line":175,"column":8},"end":{"line":175,"column":39}},"50":{"start":{"line":181,"column":6},"end":{"line":181,"column":37}},"51":{"start":{"line":185,"column":4},"end":{"line":185,"column":20}},"52":{"start":{"line":194,"column":4},"end":{"line":194,"column":30}},"53":{"start":{"line":197,"column":2},"end":{"line":197,"column":18}}},"branchMap":{"1":{"line":15,"type":"if","locations":[{"start":{"line":15,"column":2},"end":{"line":15,"column":2}},{"start":{"line":15,"column":2},"end":{"line":15,"column":2}}]},"2":{"line":17,"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":17,"column":4}},{"start":{"line":17,"column":4},"end":{"line":17,"column":4}}]},"3":{"line":17,"type":"binary-expr","locations":[{"start":{"line":17,"column":8},"end":{"line":17,"column":15}},{"start":{"line":17,"column":19},"end":{"line":17,"column":31}}]},"4":{"line":20,"type":"if","locations":[{"start":{"line":20,"column":9},"end":{"line":20,"column":9}},{"start":{"line":20,"column":9},"end":{"line":20,"column":9}}]},"5":{"line":20,"type":"binary-expr","locations":[{"start":{"line":20,"column":13},"end":{"line":20,"column":21}},{"start":{"line":20,"column":25},"end":{"line":20,"column":37}}]},"6":{"line":27,"type":"if","locations":[{"start":{"line":27,"column":7},"end":{"line":27,"column":7}},{"start":{"line":27,"column":7},"end":{"line":27,"column":7}}]},"7":{"line":27,"type":"binary-expr","locations":[{"start":{"line":27,"column":11},"end":{"line":27,"column":19}},{"start":{"line":27,"column":23},"end":{"line":27,"column":35}}]},"8":{"line":30,"type":"if","locations":[{"start":{"line":30,"column":7},"end":{"line":30,"column":7}},{"start":{"line":30,"column":7},"end":{"line":30,"column":7}}]},"9":{"line":30,"type":"binary-expr","locations":[{"start":{"line":30,"column":11},"end":{"line":30,"column":18}},{"start":{"line":30,"column":22},"end":{"line":30,"column":35}}]},"10":{"line":79,"type":"if","locations":[{"start":{"line":79,"column":2},"end":{"line":79,"column":2}},{"start":{"line":79,"column":2},"end":{"line":79,"column":2}}]},"11":{"line":86,"type":"if","locations":[{"start":{"line":86,"column":2},"end":{"line":86,"column":2}},{"start":{"line":86,"column":2},"end":{"line":86,"column":2}}]},"12":{"line":103,"type":"if","locations":[{"start":{"line":103,"column":4},"end":{"line":103,"column":4}},{"start":{"line":103,"column":4},"end":{"line":103,"column":4}}]},"13":{"line":115,"type":"binary-expr","locations":[{"start":{"line":115,"column":26},"end":{"line":115,"column":31}},{"start":{"line":115,"column":35},"end":{"line":115,"column":60}},{"start":{"line":115,"column":64},"end":{"line":115,"column":85}}]},"14":{"line":137,"type":"if","locations":[{"start":{"line":137,"column":4},"end":{"line":137,"column":4}},{"start":{"line":137,"column":4},"end":{"line":137,"column":4}}]},"15":{"line":138,"type":"binary-expr","locations":[{"start":{"line":139,"column":10},"end":{"line":139,"column":49}},{"start":{"line":140,"column":10},"end":{"line":140,"column":53}},{"start":{"line":142,"column":8},"end":{"line":142,"column":25}}]},"16":{"line":163,"type":"if","locations":[{"start":{"line":163,"column":4},"end":{"line":163,"column":4}},{"start":{"line":163,"column":4},"end":{"line":163,"column":4}}]},"17":{"line":163,"type":"binary-expr","locations":[{"start":{"line":163,"column":8},"end":{"line":163,"column":21}},{"start":{"line":163,"column":25},"end":{"line":163,"column":40}}]},"18":{"line":167,"type":"if","locations":[{"start":{"line":167,"column":6},"end":{"line":167,"column":6}},{"start":{"line":167,"column":6},"end":{"line":167,"column":6}}]},"19":{"line":168,"type":"switch","locations":[{"start":{"line":169,"column":10},"end":{"line":171,"column":52}}]}},"l":{"5":1,"6":1,"7":1,"9":1,"13":1,"15":312,"17":65,"18":0,"20":65,"21":17,"24":48,"27":247,"28":2,"30":245,"31":0,"34":312,"77":1,"79":39,"80":0,"81":0,"84":39,"86":39,"88":1,"91":39,"92":39,"93":39,"94":39,"95":39,"96":39,"97":39,"98":39,"100":39,"101":160,"103":160,"106":160,"107":160,"109":160,"110":160,"115":160,"137":160,"147":4,"151":156,"155":156,"163":156,"167":34,"168":22,"171":22,"175":12,"181":122,"185":156,"194":156,"197":35}}, | ||
"/Users/lallemant/dev/deep-lib/lib/methods/select.js":{"path":"/Users/lallemant/dev/deep-lib/lib/methods/select.js","s":{"1":1,"2":1,"3":1,"4":94,"5":1,"6":93,"7":93,"8":93,"9":93,"10":273,"11":273,"12":256,"13":17,"14":76},"b":{"1":[1,93],"2":[256,17],"3":[273,273,273]},"f":{"1":94},"fnMap":{"1":{"name":"select","line":33,"loc":{"start":{"line":33,"column":17},"end":{"line":33,"column":48}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":35}},"2":{"start":{"line":6,"column":0},"end":{"line":8,"column":2}},"3":{"start":{"line":33,"column":0},"end":{"line":55,"column":2}},"4":{"start":{"line":35,"column":2},"end":{"line":38,"column":3}},"5":{"start":{"line":37,"column":4},"end":{"line":37,"column":88}},"6":{"start":{"line":40,"column":2},"end":{"line":40,"column":34}},"7":{"start":{"line":41,"column":2},"end":{"line":41,"column":23}},"8":{"start":{"line":42,"column":2},"end":{"line":42,"column":15}},"9":{"start":{"line":44,"column":2},"end":{"line":52,"column":3}},"10":{"start":{"line":45,"column":4},"end":{"line":45,"column":26}},"11":{"start":{"line":47,"column":4},"end":{"line":51,"column":5}},"12":{"start":{"line":48,"column":6},"end":{"line":48,"column":30}},"13":{"start":{"line":50,"column":6},"end":{"line":50,"column":13}},"14":{"start":{"line":54,"column":2},"end":{"line":54,"column":15}}},"branchMap":{"1":{"line":35,"type":"if","locations":[{"start":{"line":35,"column":2},"end":{"line":35,"column":2}},{"start":{"line":35,"column":2},"end":{"line":35,"column":2}}]},"2":{"line":47,"type":"if","locations":[{"start":{"line":47,"column":4},"end":{"line":47,"column":4}},{"start":{"line":47,"column":4},"end":{"line":47,"column":4}}]},"3":{"line":47,"type":"binary-expr","locations":[{"start":{"line":47,"column":9},"end":{"line":47,"column":34}},{"start":{"line":47,"column":38},"end":{"line":47,"column":52}},{"start":{"line":47,"column":56},"end":{"line":47,"column":88}}]}},"l":{"4":1,"6":1,"33":1,"35":94,"37":1,"40":93,"41":93,"42":93,"44":93,"45":273,"47":273,"48":256,"50":17,"54":76}}, | ||
"/Users/lallemant/dev/deep-lib/lib/methods/define.js":{"path":"/Users/lallemant/dev/deep-lib/lib/methods/define.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":5,"7":4,"8":4,"9":4,"10":1,"11":1,"12":4,"13":4,"14":1,"15":4,"16":2,"17":2,"18":2,"19":2,"20":4},"b":{"1":[4,1],"2":[4,1],"3":[1,3],"4":[1,3],"5":[2,2]},"f":{"1":5},"fnMap":{"1":{"name":"define","line":66,"loc":{"start":{"line":66,"column":17},"end":{"line":66,"column":72}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":52}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":44}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":37}},"4":{"start":{"line":15,"column":0},"end":{"line":17,"column":2}},"5":{"start":{"line":66,"column":0},"end":{"line":103,"column":2}},"6":{"start":{"line":67,"column":2},"end":{"line":102,"column":3}},"7":{"start":{"line":70,"column":4},"end":{"line":70,"column":24}},"8":{"start":{"line":73,"column":4},"end":{"line":73,"column":48}},"9":{"start":{"line":76,"column":4},"end":{"line":79,"column":5}},"10":{"start":{"line":77,"column":6},"end":{"line":77,"column":23}},"11":{"start":{"line":78,"column":6},"end":{"line":78,"column":39}},"12":{"start":{"line":82,"column":4},"end":{"line":82,"column":26}},"13":{"start":{"line":84,"column":4},"end":{"line":87,"column":5}},"14":{"start":{"line":86,"column":6},"end":{"line":86,"column":38}},"15":{"start":{"line":89,"column":4},"end":{"line":99,"column":5}},"16":{"start":{"line":91,"column":6},"end":{"line":91,"column":38}},"17":{"start":{"line":92,"column":6},"end":{"line":92,"column":36}},"18":{"start":{"line":95,"column":6},"end":{"line":95,"column":31}},"19":{"start":{"line":98,"column":6},"end":{"line":98,"column":36}},"20":{"start":{"line":101,"column":4},"end":{"line":101,"column":53}}},"branchMap":{"1":{"line":67,"type":"if","locations":[{"start":{"line":67,"column":2},"end":{"line":67,"column":2}},{"start":{"line":67,"column":2},"end":{"line":67,"column":2}}]},"2":{"line":73,"type":"binary-expr","locations":[{"start":{"line":73,"column":14},"end":{"line":73,"column":21}},{"start":{"line":73,"column":25},"end":{"line":73,"column":47}}]},"3":{"line":76,"type":"if","locations":[{"start":{"line":76,"column":4},"end":{"line":76,"column":4}},{"start":{"line":76,"column":4},"end":{"line":76,"column":4}}]},"4":{"line":84,"type":"if","locations":[{"start":{"line":84,"column":4},"end":{"line":84,"column":4}},{"start":{"line":84,"column":4},"end":{"line":84,"column":4}}]},"5":{"line":89,"type":"if","locations":[{"start":{"line":89,"column":4},"end":{"line":89,"column":4}},{"start":{"line":89,"column":4},"end":{"line":89,"column":4}}]}},"l":{"4":1,"5":1,"6":1,"15":1,"66":1,"67":5,"70":4,"73":4,"76":4,"77":1,"78":1,"82":4,"84":4,"86":1,"89":4,"91":2,"92":2,"95":2,"98":2,"101":4}}, | ||
"/Users/lallemant/dev/deep-lib/lib/methods/diff.js":{"path":"/Users/lallemant/dev/deep-lib/lib/methods/diff.js","s":{"1":1,"2":1,"3":1,"4":7,"5":1,"6":1,"7":7},"b":{"1":[1,6]},"f":{"1":7},"fnMap":{"1":{"name":"deepDiff","line":31,"loc":{"start":{"line":31,"column":15},"end":{"line":31,"column":60}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":35}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":41}},"3":{"start":{"line":31,"column":0},"end":{"line":40,"column":2}},"4":{"start":{"line":33,"column":2},"end":{"line":37,"column":3}},"5":{"start":{"line":35,"column":4},"end":{"line":35,"column":38}},"6":{"start":{"line":36,"column":4},"end":{"line":36,"column":38}},"7":{"start":{"line":39,"column":2},"end":{"line":39,"column":40}}},"branchMap":{"1":{"line":33,"type":"if","locations":[{"start":{"line":33,"column":2},"end":{"line":33,"column":2}},{"start":{"line":33,"column":2},"end":{"line":33,"column":2}}]}},"l":{"4":1,"5":1,"31":1,"33":7,"35":1,"36":1,"39":7}}, | ||
"/Users/lallemant/dev/deep-lib/lib/methods/equal.js":{"path":"/Users/lallemant/dev/deep-lib/lib/methods/equal.js","s":{"1":1,"2":1,"3":1,"4":1,"5":4,"6":2,"7":2,"8":4},"b":{"1":[2,2]},"f":{"1":4},"fnMap":{"1":{"name":"deepEqual","line":31,"loc":{"start":{"line":31,"column":16},"end":{"line":31,"column":62}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":37}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":42}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":38}},"4":{"start":{"line":31,"column":0},"end":{"line":47,"column":2}},"5":{"start":{"line":33,"column":2},"end":{"line":37,"column":3}},"6":{"start":{"line":35,"column":4},"end":{"line":35,"column":38}},"7":{"start":{"line":36,"column":4},"end":{"line":36,"column":38}},"8":{"start":{"line":46,"column":2},"end":{"line":46,"column":48}}},"branchMap":{"1":{"line":33,"type":"if","locations":[{"start":{"line":33,"column":2},"end":{"line":33,"column":2}},{"start":{"line":33,"column":2},"end":{"line":33,"column":2}}]}},"l":{"4":1,"5":1,"6":1,"31":1,"33":4,"35":2,"36":2,"46":4}}, | ||
"/Users/lallemant/dev/deep-lib/lib/methods/clone.js":{"path":"/Users/lallemant/dev/deep-lib/lib/methods/clone.js","s":{"1":1,"2":1,"3":1,"4":45,"5":3,"6":45},"b":{"1":[3,42]},"f":{"1":45},"fnMap":{"1":{"name":"deepClone","line":31,"loc":{"start":{"line":31,"column":16},"end":{"line":31,"column":52}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":32}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":42}},"3":{"start":{"line":31,"column":0},"end":{"line":39,"column":2}},"4":{"start":{"line":33,"column":2},"end":{"line":36,"column":3}},"5":{"start":{"line":35,"column":4},"end":{"line":35,"column":36}},"6":{"start":{"line":38,"column":2},"end":{"line":38,"column":26}}},"branchMap":{"1":{"line":33,"type":"if","locations":[{"start":{"line":33,"column":2},"end":{"line":33,"column":2}},{"start":{"line":33,"column":2},"end":{"line":33,"column":2}}]}},"l":{"4":1,"5":1,"31":1,"33":45,"35":3,"38":45}}, | ||
"/Users/lallemant/dev/deep-lib/lib/methods/search.js":{"path":"/Users/lallemant/dev/deep-lib/lib/methods/search.js","s":{"1":1,"2":1,"3":1,"4":2,"5":1,"6":2,"7":2,"8":2,"9":24,"10":6,"11":2},"b":{"1":[1,1],"2":[6,18]},"f":{"1":2,"2":24},"fnMap":{"1":{"name":"search","line":30,"loc":{"start":{"line":30,"column":17},"end":{"line":30,"column":57}}},"2":{"name":"(anonymous_2)","line":40,"loc":{"start":{"line":40,"column":16},"end":{"line":40,"column":37}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":42}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":46}},"3":{"start":{"line":30,"column":0},"end":{"line":47,"column":2}},"4":{"start":{"line":32,"column":2},"end":{"line":35,"column":3}},"5":{"start":{"line":34,"column":4},"end":{"line":34,"column":36}},"6":{"start":{"line":37,"column":2},"end":{"line":37,"column":33}},"7":{"start":{"line":38,"column":2},"end":{"line":38,"column":19}},"8":{"start":{"line":40,"column":2},"end":{"line":44,"column":5}},"9":{"start":{"line":41,"column":4},"end":{"line":43,"column":5}},"10":{"start":{"line":42,"column":6},"end":{"line":42,"column":30}},"11":{"start":{"line":46,"column":2},"end":{"line":46,"column":17}}},"branchMap":{"1":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":32,"column":2}},{"start":{"line":32,"column":2},"end":{"line":32,"column":2}}]},"2":{"line":41,"type":"if","locations":[{"start":{"line":41,"column":4},"end":{"line":41,"column":4}},{"start":{"line":41,"column":4},"end":{"line":41,"column":4}}]}},"l":{"4":1,"5":1,"30":1,"32":2,"34":1,"37":2,"38":2,"40":2,"41":24,"42":6,"46":2}}, | ||
"/Users/lallemant/dev/deep-lib/lib/methods/getPaths.js":{"path":"/Users/lallemant/dev/deep-lib/lib/methods/getPaths.js","s":{"1":1,"2":1,"3":15,"4":15,"5":41,"6":37,"7":13,"8":13,"9":13,"10":24,"11":24,"12":15},"b":{"1":[4,37],"2":[41,8],"3":[13,24],"4":[37,13],"5":[11,2],"6":[23,1]},"f":{"1":15,"2":41},"fnMap":{"1":{"name":"getPaths","line":27,"loc":{"start":{"line":27,"column":19},"end":{"line":27,"column":54}}},"2":{"name":"propertyIterator","line":30,"loc":{"start":{"line":30,"column":45},"end":{"line":30,"column":81}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":35}},"2":{"start":{"line":27,"column":0},"end":{"line":51,"column":2}},"3":{"start":{"line":28,"column":2},"end":{"line":28,"column":22}},"4":{"start":{"line":30,"column":2},"end":{"line":48,"column":5}},"5":{"start":{"line":32,"column":4},"end":{"line":47,"column":5}},"6":{"start":{"line":36,"column":9},"end":{"line":47,"column":5}},"7":{"start":{"line":38,"column":6},"end":{"line":38,"column":72}},"8":{"start":{"line":40,"column":6},"end":{"line":40,"column":62}},"9":{"start":{"line":42,"column":6},"end":{"line":42,"column":52}},"10":{"start":{"line":45,"column":6},"end":{"line":45,"column":63}},"11":{"start":{"line":46,"column":6},"end":{"line":46,"column":28}},"12":{"start":{"line":50,"column":2},"end":{"line":50,"column":20}}},"branchMap":{"1":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":4},"end":{"line":32,"column":4}},{"start":{"line":32,"column":4},"end":{"line":32,"column":4}}]},"2":{"line":32,"type":"binary-expr","locations":[{"start":{"line":32,"column":8},"end":{"line":32,"column":29}},{"start":{"line":32,"column":33},"end":{"line":32,"column":62}}]},"3":{"line":36,"type":"if","locations":[{"start":{"line":36,"column":9},"end":{"line":36,"column":9}},{"start":{"line":36,"column":9},"end":{"line":36,"column":9}}]},"4":{"line":36,"type":"binary-expr","locations":[{"start":{"line":36,"column":13},"end":{"line":36,"column":49}},{"start":{"line":36,"column":53},"end":{"line":36,"column":78}}]},"5":{"line":38,"type":"cond-expr","locations":[{"start":{"line":38,"column":30},"end":{"line":38,"column":59}},{"start":{"line":38,"column":62},"end":{"line":38,"column":70}}]},"6":{"line":45,"type":"cond-expr","locations":[{"start":{"line":45,"column":27},"end":{"line":45,"column":50}},{"start":{"line":45,"column":53},"end":{"line":45,"column":61}}]}},"l":{"4":1,"27":1,"28":15,"30":15,"32":41,"36":37,"38":13,"40":13,"42":13,"45":24,"46":24,"50":15}}, | ||
"/Users/lallemant/dev/deep-lib/lib/methods/move.js":{"path":"/Users/lallemant/dev/deep-lib/lib/methods/move.js","s":{"1":1,"2":1,"3":1,"4":1,"5":3,"6":3,"7":3,"8":3},"b":{"1":[3,0]},"f":{"1":3},"fnMap":{"1":{"name":"deepMove","line":27,"loc":{"start":{"line":27,"column":15},"end":{"line":27,"column":60}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":44}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":44}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":44}},"4":{"start":{"line":27,"column":0},"end":{"line":37,"column":2}},"5":{"start":{"line":28,"column":2},"end":{"line":28,"column":42}},"6":{"start":{"line":30,"column":2},"end":{"line":36,"column":3}},"7":{"start":{"line":31,"column":4},"end":{"line":31,"column":36}},"8":{"start":{"line":32,"column":4},"end":{"line":32,"column":32}}},"branchMap":{"1":{"line":30,"type":"if","locations":[{"start":{"line":30,"column":2},"end":{"line":30,"column":2}},{"start":{"line":30,"column":2},"end":{"line":30,"column":2}}]}},"l":{"4":1,"5":1,"6":1,"27":1,"28":3,"30":3,"31":3,"32":3}}, | ||
"/Users/lallemant/dev/deep-lib/lib/methods/create.js":{"path":"/Users/lallemant/dev/deep-lib/lib/methods/create.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":27,"7":26,"8":24,"9":24},"b":{"1":[26,1]},"f":{"1":27},"fnMap":{"1":{"name":"create","line":36,"loc":{"start":{"line":36,"column":17},"end":{"line":36,"column":62}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":37}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":44}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":44}},"4":{"start":{"line":7,"column":0},"end":{"line":7,"column":52}},"5":{"start":{"line":36,"column":0},"end":{"line":45,"column":2}},"6":{"start":{"line":37,"column":2},"end":{"line":44,"column":3}},"7":{"start":{"line":39,"column":4},"end":{"line":39,"column":43}},"8":{"start":{"line":41,"column":4},"end":{"line":41,"column":32}},"9":{"start":{"line":43,"column":4},"end":{"line":43,"column":16}}},"branchMap":{"1":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":2},"end":{"line":37,"column":2}},{"start":{"line":37,"column":2},"end":{"line":37,"column":2}}]}},"l":{"4":1,"5":1,"6":1,"7":1,"36":1,"37":27,"39":26,"41":24,"43":24}}, | ||
"/Users/lallemant/dev/deep-lib/lib/methods/update.js":{"path":"/Users/lallemant/dev/deep-lib/lib/methods/update.js","s":{"1":1,"2":1,"3":1,"4":1,"5":31,"6":31,"7":1,"8":30,"9":29,"10":29,"11":27,"12":27,"13":29,"14":1,"15":28,"16":1,"17":27,"18":9,"19":18},"b":{"1":[1,30],"2":[29,1],"3":[27,2],"4":[1,28],"5":[29,2],"6":[1,27],"7":[28,1],"8":[9,18]},"f":{"1":31},"fnMap":{"1":{"name":"update","line":40,"loc":{"start":{"line":40,"column":17},"end":{"line":40,"column":80}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":33}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":40}},"3":{"start":{"line":7,"column":0},"end":{"line":10,"column":2}},"4":{"start":{"line":40,"column":0},"end":{"line":77,"column":2}},"5":{"start":{"line":43,"column":2},"end":{"line":43,"column":54}},"6":{"start":{"line":45,"column":2},"end":{"line":48,"column":3}},"7":{"start":{"line":47,"column":4},"end":{"line":47,"column":88}},"8":{"start":{"line":50,"column":2},"end":{"line":76,"column":3}},"9":{"start":{"line":51,"column":4},"end":{"line":51,"column":28}},"10":{"start":{"line":53,"column":4},"end":{"line":60,"column":5}},"11":{"start":{"line":56,"column":6},"end":{"line":56,"column":42}},"12":{"start":{"line":59,"column":6},"end":{"line":59,"column":52}},"13":{"start":{"line":62,"column":4},"end":{"line":75,"column":5}},"14":{"start":{"line":63,"column":6},"end":{"line":63,"column":65}},"15":{"start":{"line":65,"column":9},"end":{"line":75,"column":5}},"16":{"start":{"line":66,"column":6},"end":{"line":66,"column":13}},"17":{"start":{"line":69,"column":6},"end":{"line":74,"column":7}},"18":{"start":{"line":70,"column":8},"end":{"line":70,"column":47}},"19":{"start":{"line":73,"column":8},"end":{"line":73,"column":37}}},"branchMap":{"1":{"line":45,"type":"if","locations":[{"start":{"line":45,"column":2},"end":{"line":45,"column":2}},{"start":{"line":45,"column":2},"end":{"line":45,"column":2}}]},"2":{"line":50,"type":"if","locations":[{"start":{"line":50,"column":2},"end":{"line":50,"column":2}},{"start":{"line":50,"column":2},"end":{"line":50,"column":2}}]},"3":{"line":53,"type":"if","locations":[{"start":{"line":53,"column":4},"end":{"line":53,"column":4}},{"start":{"line":53,"column":4},"end":{"line":53,"column":4}}]},"4":{"line":62,"type":"if","locations":[{"start":{"line":62,"column":4},"end":{"line":62,"column":4}},{"start":{"line":62,"column":4},"end":{"line":62,"column":4}}]},"5":{"line":62,"type":"binary-expr","locations":[{"start":{"line":62,"column":8},"end":{"line":62,"column":28}},{"start":{"line":62,"column":32},"end":{"line":62,"column":56}}]},"6":{"line":65,"type":"if","locations":[{"start":{"line":65,"column":9},"end":{"line":65,"column":9}},{"start":{"line":65,"column":9},"end":{"line":65,"column":9}}]},"7":{"line":65,"type":"binary-expr","locations":[{"start":{"line":65,"column":13},"end":{"line":65,"column":33}},{"start":{"line":65,"column":37},"end":{"line":65,"column":60}}]},"8":{"line":69,"type":"if","locations":[{"start":{"line":69,"column":6},"end":{"line":69,"column":6}},{"start":{"line":69,"column":6},"end":{"line":69,"column":6}}]}},"l":{"4":1,"5":1,"7":1,"40":1,"43":31,"45":31,"47":1,"50":30,"51":29,"53":29,"56":27,"59":27,"62":29,"63":1,"65":28,"66":1,"69":27,"70":9,"73":18}}, | ||
"/Users/lallemant/dev/deep-lib/lib/methods/delete.js":{"path":"/Users/lallemant/dev/deep-lib/lib/methods/delete.js","s":{"1":1,"2":1,"3":1,"4":10,"5":10,"6":9,"7":9,"8":10,"9":10,"10":4,"11":6,"12":6,"13":3,"14":3,"15":6},"b":{"1":[9,1],"2":[4,6],"3":[3,3]},"f":{"1":10},"fnMap":{"1":{"name":"deepDelete","line":27,"loc":{"start":{"line":27,"column":17},"end":{"line":27,"column":52}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":33}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":40}},"3":{"start":{"line":27,"column":0},"end":{"line":51,"column":2}},"4":{"start":{"line":28,"column":2},"end":{"line":28,"column":26}},"5":{"start":{"line":30,"column":2},"end":{"line":33,"column":3}},"6":{"start":{"line":31,"column":4},"end":{"line":31,"column":40}},"7":{"start":{"line":32,"column":4},"end":{"line":32,"column":38}},"8":{"start":{"line":35,"column":2},"end":{"line":35,"column":32}},"9":{"start":{"line":37,"column":2},"end":{"line":39,"column":3}},"10":{"start":{"line":38,"column":4},"end":{"line":38,"column":11}},"11":{"start":{"line":41,"column":2},"end":{"line":41,"column":37}},"12":{"start":{"line":43,"column":2},"end":{"line":48,"column":3}},"13":{"start":{"line":44,"column":4},"end":{"line":44,"column":35}},"14":{"start":{"line":47,"column":4},"end":{"line":47,"column":32}},"15":{"start":{"line":50,"column":2},"end":{"line":50,"column":15}}},"branchMap":{"1":{"line":30,"type":"if","locations":[{"start":{"line":30,"column":2},"end":{"line":30,"column":2}},{"start":{"line":30,"column":2},"end":{"line":30,"column":2}}]},"2":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":2},"end":{"line":37,"column":2}},{"start":{"line":37,"column":2},"end":{"line":37,"column":2}}]},"3":{"line":43,"type":"if","locations":[{"start":{"line":43,"column":2},"end":{"line":43,"column":2}},{"start":{"line":43,"column":2},"end":{"line":43,"column":2}}]}},"l":{"4":1,"5":1,"27":1,"28":10,"30":10,"31":9,"32":9,"35":10,"37":10,"38":4,"41":6,"43":6,"44":3,"47":3,"50":6}}} | ||
"/home/nysos/dev/deep-lib/lib/deep-lib.js":{"path":"/home/nysos/dev/deep-lib/lib/deep-lib.js","s":{"1":1,"2":1,"3":1,"4":1},"b":{},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":32}},"2":{"start":{"line":39,"column":0},"end":{"line":42,"column":2}},"3":{"start":{"line":44,"column":0},"end":{"line":59,"column":2}},"4":{"start":{"line":61,"column":0},"end":{"line":61,"column":22}}},"branchMap":{},"l":{"4":1,"39":1,"44":1,"61":1}}, | ||
"/home/nysos/dev/deep-lib/lib/tools.js":{"path":"/home/nysos/dev/deep-lib/lib/tools.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":143,"8":1,"9":2,"10":1,"11":342,"12":52,"13":1,"14":289,"15":1,"16":138,"17":1,"18":4,"19":1,"20":568,"21":1,"22":3,"23":1,"24":49,"25":49,"26":1,"27":46,"28":46,"29":1,"30":46,"31":46},"b":{"1":[142,1],"2":[27,52,1,289],"3":[138,133,133],"4":[4,3],"5":[45,1],"6":[45,1]},"f":{"1":143,"2":2,"3":342,"4":138,"5":4,"6":568,"7":3,"8":49,"9":46,"10":46},"fnMap":{"1":{"name":"split","line":20,"loc":{"start":{"line":20,"column":16},"end":{"line":20,"column":38}}},"2":{"name":"join","line":24,"loc":{"start":{"line":24,"column":15},"end":{"line":24,"column":44}}},"3":{"name":"isArrayIndex","line":28,"loc":{"start":{"line":28,"column":23},"end":{"line":28,"column":59}}},"4":{"name":"isArrayIndex","line":40,"loc":{"start":{"line":40,"column":37},"end":{"line":40,"column":66}}},"5":{"name":"isObject","line":48,"loc":{"start":{"line":48,"column":19},"end":{"line":48,"column":51}}},"6":{"name":"isArray","line":52,"loc":{"start":{"line":52,"column":18},"end":{"line":52,"column":44}}},"7":{"name":"areIdentical","line":56,"loc":{"start":{"line":56,"column":23},"end":{"line":56,"column":64}}},"8":{"name":"isDeep","line":60,"loc":{"start":{"line":60,"column":17},"end":{"line":60,"column":40}}},"9":{"name":"parent","line":84,"loc":{"start":{"line":84,"column":17},"end":{"line":84,"column":40}}},"10":{"name":"property","line":108,"loc":{"start":{"line":108,"column":19},"end":{"line":108,"column":44}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":43}},"2":{"start":{"line":6,"column":0},"end":{"line":6,"column":31}},"3":{"start":{"line":7,"column":0},"end":{"line":7,"column":31}},"4":{"start":{"line":8,"column":0},"end":{"line":8,"column":32}},"5":{"start":{"line":9,"column":0},"end":{"line":9,"column":32}},"6":{"start":{"line":20,"column":0},"end":{"line":22,"column":2}},"7":{"start":{"line":21,"column":2},"end":{"line":21,"column":47}},"8":{"start":{"line":24,"column":0},"end":{"line":26,"column":2}},"9":{"start":{"line":25,"column":2},"end":{"line":25,"column":40}},"10":{"start":{"line":28,"column":0},"end":{"line":38,"column":2}},"11":{"start":{"line":29,"column":2},"end":{"line":37,"column":3}},"12":{"start":{"line":32,"column":6},"end":{"line":32,"column":20}},"13":{"start":{"line":34,"column":6},"end":{"line":34,"column":19}},"14":{"start":{"line":36,"column":6},"end":{"line":36,"column":42}},"15":{"start":{"line":40,"column":0},"end":{"line":46,"column":2}},"16":{"start":{"line":41,"column":2},"end":{"line":45,"column":4}},"17":{"start":{"line":48,"column":0},"end":{"line":50,"column":2}},"18":{"start":{"line":49,"column":2},"end":{"line":49,"column":67}},"19":{"start":{"line":52,"column":0},"end":{"line":54,"column":2}},"20":{"start":{"line":53,"column":2},"end":{"line":53,"column":69}},"21":{"start":{"line":56,"column":0},"end":{"line":58,"column":2}},"22":{"start":{"line":57,"column":2},"end":{"line":57,"column":29}},"23":{"start":{"line":60,"column":0},"end":{"line":63,"column":2}},"24":{"start":{"line":61,"column":2},"end":{"line":61,"column":51}},"25":{"start":{"line":62,"column":2},"end":{"line":62,"column":29}},"26":{"start":{"line":84,"column":0},"end":{"line":87,"column":2}},"27":{"start":{"line":85,"column":2},"end":{"line":85,"column":51}},"28":{"start":{"line":86,"column":2},"end":{"line":86,"column":70}},"29":{"start":{"line":108,"column":0},"end":{"line":111,"column":2}},"30":{"start":{"line":109,"column":2},"end":{"line":109,"column":51}},"31":{"start":{"line":110,"column":2},"end":{"line":110,"column":71}}},"branchMap":{"1":{"line":21,"type":"cond-expr","locations":[{"start":{"line":21,"column":17},"end":{"line":21,"column":40}},{"start":{"line":21,"column":43},"end":{"line":21,"column":45}}]},"2":{"line":29,"type":"switch","locations":[{"start":{"line":30,"column":4},"end":{"line":30,"column":34}},{"start":{"line":31,"column":4},"end":{"line":32,"column":20}},{"start":{"line":33,"column":4},"end":{"line":34,"column":19}},{"start":{"line":35,"column":4},"end":{"line":36,"column":42}}]},"3":{"line":42,"type":"binary-expr","locations":[{"start":{"line":42,"column":6},"end":{"line":42,"column":49}},{"start":{"line":43,"column":6},"end":{"line":43,"column":42}},{"start":{"line":44,"column":6},"end":{"line":44,"column":41}}]},"4":{"line":49,"type":"binary-expr","locations":[{"start":{"line":49,"column":10},"end":{"line":49,"column":41}},{"start":{"line":49,"column":45},"end":{"line":49,"column":65}}]},"5":{"line":86,"type":"cond-expr","locations":[{"start":{"line":86,"column":30},"end":{"line":86,"column":61}},{"start":{"line":86,"column":64},"end":{"line":86,"column":68}}]},"6":{"line":110,"type":"cond-expr","locations":[{"start":{"line":110,"column":30},"end":{"line":110,"column":62}},{"start":{"line":110,"column":65},"end":{"line":110,"column":69}}]}},"l":{"4":1,"6":1,"7":1,"8":1,"9":1,"20":1,"21":143,"24":1,"25":2,"28":1,"29":342,"32":52,"34":1,"36":289,"40":1,"41":138,"48":1,"49":4,"52":1,"53":568,"56":1,"57":3,"60":1,"61":49,"62":49,"84":1,"85":46,"86":46,"108":1,"109":46,"110":46}}, | ||
"/home/nysos/dev/deep-lib/lib/methods/createPath.js":{"path":"/home/nysos/dev/deep-lib/lib/methods/createPath.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":320,"7":71,"8":0,"9":71,"10":17,"11":54,"12":249,"13":2,"14":247,"15":0,"16":320,"17":1,"18":41,"19":1,"20":1,"21":41,"22":41,"23":1,"24":41,"25":41,"26":41,"27":41,"28":41,"29":41,"30":41,"31":41,"32":41,"33":164,"34":164,"35":123,"36":164,"37":164,"38":164,"39":164,"40":164,"41":164,"42":4,"43":160,"44":160,"45":160,"46":35,"47":23,"48":23,"49":12,"50":125,"51":160,"52":160,"53":37},"b":{"1":[71,249],"2":[0,71],"3":[71,0],"4":[17,54],"5":[71,71],"6":[2,247],"7":[249,196],"8":[0,247],"9":[247,53],"10":[1,40],"11":[1,40],"12":[123,41],"13":[164,152,67],"14":[4,160],"15":[164,164,23],"16":[35,125],"17":[160,35],"18":[23,12],"19":[23]},"f":{"1":320,"2":41,"3":164},"fnMap":{"1":{"name":"initDepthObject","line":13,"loc":{"start":{"line":13,"column":26},"end":{"line":13,"column":82}}},"2":{"name":"createPath","line":77,"loc":{"start":{"line":77,"column":21},"end":{"line":77,"column":71}}},"3":{"name":"pathElementIterator","line":100,"loc":{"start":{"line":100,"column":23},"end":{"line":100,"column":61}}}},"statementMap":{"1":{"start":{"line":5,"column":0},"end":{"line":5,"column":40}},"2":{"start":{"line":6,"column":0},"end":{"line":6,"column":33}},"3":{"start":{"line":7,"column":0},"end":{"line":7,"column":19}},"4":{"start":{"line":9,"column":0},"end":{"line":11,"column":2}},"5":{"start":{"line":13,"column":0},"end":{"line":35,"column":2}},"6":{"start":{"line":15,"column":2},"end":{"line":32,"column":3}},"7":{"start":{"line":17,"column":4},"end":{"line":25,"column":5}},"8":{"start":{"line":18,"column":6},"end":{"line":18,"column":17}},"9":{"start":{"line":20,"column":9},"end":{"line":25,"column":5}},"10":{"start":{"line":21,"column":6},"end":{"line":21,"column":17}},"11":{"start":{"line":24,"column":6},"end":{"line":24,"column":17}},"12":{"start":{"line":27,"column":7},"end":{"line":32,"column":3}},"13":{"start":{"line":28,"column":4},"end":{"line":28,"column":15}},"14":{"start":{"line":30,"column":7},"end":{"line":32,"column":3}},"15":{"start":{"line":31,"column":4},"end":{"line":31,"column":15}},"16":{"start":{"line":34,"column":2},"end":{"line":34,"column":15}},"17":{"start":{"line":77,"column":0},"end":{"line":198,"column":2}},"18":{"start":{"line":79,"column":2},"end":{"line":82,"column":3}},"19":{"start":{"line":80,"column":4},"end":{"line":80,"column":20}},"20":{"start":{"line":81,"column":4},"end":{"line":81,"column":18}},"21":{"start":{"line":84,"column":2},"end":{"line":84,"column":21}},"22":{"start":{"line":86,"column":2},"end":{"line":89,"column":3}},"23":{"start":{"line":88,"column":4},"end":{"line":88,"column":36}},"24":{"start":{"line":91,"column":2},"end":{"line":91,"column":39}},"25":{"start":{"line":92,"column":2},"end":{"line":92,"column":20}},"26":{"start":{"line":93,"column":2},"end":{"line":93,"column":14}},"27":{"start":{"line":94,"column":2},"end":{"line":94,"column":20}},"28":{"start":{"line":95,"column":2},"end":{"line":95,"column":22}},"29":{"start":{"line":96,"column":2},"end":{"line":96,"column":24}},"30":{"start":{"line":97,"column":2},"end":{"line":97,"column":26}},"31":{"start":{"line":98,"column":2},"end":{"line":98,"column":23}},"32":{"start":{"line":100,"column":2},"end":{"line":195,"column":5}},"33":{"start":{"line":101,"column":4},"end":{"line":101,"column":34}},"34":{"start":{"line":103,"column":4},"end":{"line":103,"column":40}},"35":{"start":{"line":103,"column":18},"end":{"line":103,"column":40}},"36":{"start":{"line":106,"column":4},"end":{"line":106,"column":48}},"37":{"start":{"line":107,"column":4},"end":{"line":107,"column":50}},"38":{"start":{"line":109,"column":4},"end":{"line":109,"column":53}},"39":{"start":{"line":110,"column":4},"end":{"line":110,"column":54}},"40":{"start":{"line":115,"column":4},"end":{"line":115,"column":86}},"41":{"start":{"line":137,"column":4},"end":{"line":148,"column":5}},"42":{"start":{"line":147,"column":6},"end":{"line":147,"column":76}},"43":{"start":{"line":151,"column":4},"end":{"line":151,"column":68}},"44":{"start":{"line":155,"column":4},"end":{"line":155,"column":113}},"45":{"start":{"line":163,"column":4},"end":{"line":182,"column":5}},"46":{"start":{"line":167,"column":6},"end":{"line":176,"column":7}},"47":{"start":{"line":168,"column":8},"end":{"line":172,"column":9}},"48":{"start":{"line":171,"column":12},"end":{"line":171,"column":52}},"49":{"start":{"line":175,"column":8},"end":{"line":175,"column":39}},"50":{"start":{"line":181,"column":6},"end":{"line":181,"column":37}},"51":{"start":{"line":185,"column":4},"end":{"line":185,"column":20}},"52":{"start":{"line":194,"column":4},"end":{"line":194,"column":30}},"53":{"start":{"line":197,"column":2},"end":{"line":197,"column":18}}},"branchMap":{"1":{"line":15,"type":"if","locations":[{"start":{"line":15,"column":2},"end":{"line":15,"column":2}},{"start":{"line":15,"column":2},"end":{"line":15,"column":2}}]},"2":{"line":17,"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":17,"column":4}},{"start":{"line":17,"column":4},"end":{"line":17,"column":4}}]},"3":{"line":17,"type":"binary-expr","locations":[{"start":{"line":17,"column":8},"end":{"line":17,"column":15}},{"start":{"line":17,"column":19},"end":{"line":17,"column":31}}]},"4":{"line":20,"type":"if","locations":[{"start":{"line":20,"column":9},"end":{"line":20,"column":9}},{"start":{"line":20,"column":9},"end":{"line":20,"column":9}}]},"5":{"line":20,"type":"binary-expr","locations":[{"start":{"line":20,"column":13},"end":{"line":20,"column":21}},{"start":{"line":20,"column":25},"end":{"line":20,"column":37}}]},"6":{"line":27,"type":"if","locations":[{"start":{"line":27,"column":7},"end":{"line":27,"column":7}},{"start":{"line":27,"column":7},"end":{"line":27,"column":7}}]},"7":{"line":27,"type":"binary-expr","locations":[{"start":{"line":27,"column":11},"end":{"line":27,"column":19}},{"start":{"line":27,"column":23},"end":{"line":27,"column":35}}]},"8":{"line":30,"type":"if","locations":[{"start":{"line":30,"column":7},"end":{"line":30,"column":7}},{"start":{"line":30,"column":7},"end":{"line":30,"column":7}}]},"9":{"line":30,"type":"binary-expr","locations":[{"start":{"line":30,"column":11},"end":{"line":30,"column":18}},{"start":{"line":30,"column":22},"end":{"line":30,"column":35}}]},"10":{"line":79,"type":"if","locations":[{"start":{"line":79,"column":2},"end":{"line":79,"column":2}},{"start":{"line":79,"column":2},"end":{"line":79,"column":2}}]},"11":{"line":86,"type":"if","locations":[{"start":{"line":86,"column":2},"end":{"line":86,"column":2}},{"start":{"line":86,"column":2},"end":{"line":86,"column":2}}]},"12":{"line":103,"type":"if","locations":[{"start":{"line":103,"column":4},"end":{"line":103,"column":4}},{"start":{"line":103,"column":4},"end":{"line":103,"column":4}}]},"13":{"line":115,"type":"binary-expr","locations":[{"start":{"line":115,"column":26},"end":{"line":115,"column":31}},{"start":{"line":115,"column":35},"end":{"line":115,"column":60}},{"start":{"line":115,"column":64},"end":{"line":115,"column":85}}]},"14":{"line":137,"type":"if","locations":[{"start":{"line":137,"column":4},"end":{"line":137,"column":4}},{"start":{"line":137,"column":4},"end":{"line":137,"column":4}}]},"15":{"line":138,"type":"binary-expr","locations":[{"start":{"line":139,"column":10},"end":{"line":139,"column":49}},{"start":{"line":140,"column":10},"end":{"line":140,"column":53}},{"start":{"line":142,"column":8},"end":{"line":142,"column":25}}]},"16":{"line":163,"type":"if","locations":[{"start":{"line":163,"column":4},"end":{"line":163,"column":4}},{"start":{"line":163,"column":4},"end":{"line":163,"column":4}}]},"17":{"line":163,"type":"binary-expr","locations":[{"start":{"line":163,"column":8},"end":{"line":163,"column":21}},{"start":{"line":163,"column":25},"end":{"line":163,"column":40}}]},"18":{"line":167,"type":"if","locations":[{"start":{"line":167,"column":6},"end":{"line":167,"column":6}},{"start":{"line":167,"column":6},"end":{"line":167,"column":6}}]},"19":{"line":168,"type":"switch","locations":[{"start":{"line":169,"column":10},"end":{"line":171,"column":52}}]}},"l":{"5":1,"6":1,"7":1,"9":1,"13":1,"15":320,"17":71,"18":0,"20":71,"21":17,"24":54,"27":249,"28":2,"30":247,"31":0,"34":320,"77":1,"79":41,"80":1,"81":1,"84":41,"86":41,"88":1,"91":41,"92":41,"93":41,"94":41,"95":41,"96":41,"97":41,"98":41,"100":41,"101":164,"103":164,"106":164,"107":164,"109":164,"110":164,"115":164,"137":164,"147":4,"151":160,"155":160,"163":160,"167":35,"168":23,"171":23,"175":12,"181":125,"185":160,"194":160,"197":37}}, | ||
"/home/nysos/dev/deep-lib/lib/methods/select.js":{"path":"/home/nysos/dev/deep-lib/lib/methods/select.js","s":{"1":1,"2":1,"3":1,"4":98,"5":1,"6":98,"7":1,"8":97,"9":97,"10":97,"11":97,"12":267,"13":267,"14":251,"15":16,"16":81},"b":{"1":[1,97],"2":[1,97],"3":[251,16],"4":[267,267,267]},"f":{"1":98},"fnMap":{"1":{"name":"select","line":38,"loc":{"start":{"line":38,"column":17},"end":{"line":38,"column":56}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":35}},"2":{"start":{"line":6,"column":0},"end":{"line":8,"column":2}},"3":{"start":{"line":38,"column":0},"end":{"line":65,"column":2}},"4":{"start":{"line":40,"column":2},"end":{"line":43,"column":3}},"5":{"start":{"line":42,"column":4},"end":{"line":42,"column":36}},"6":{"start":{"line":45,"column":2},"end":{"line":48,"column":3}},"7":{"start":{"line":47,"column":4},"end":{"line":47,"column":88}},"8":{"start":{"line":50,"column":2},"end":{"line":50,"column":34}},"9":{"start":{"line":51,"column":2},"end":{"line":51,"column":23}},"10":{"start":{"line":52,"column":2},"end":{"line":52,"column":15}},"11":{"start":{"line":54,"column":2},"end":{"line":62,"column":3}},"12":{"start":{"line":55,"column":4},"end":{"line":55,"column":26}},"13":{"start":{"line":57,"column":4},"end":{"line":61,"column":5}},"14":{"start":{"line":58,"column":6},"end":{"line":58,"column":30}},"15":{"start":{"line":60,"column":6},"end":{"line":60,"column":13}},"16":{"start":{"line":64,"column":2},"end":{"line":64,"column":15}}},"branchMap":{"1":{"line":40,"type":"if","locations":[{"start":{"line":40,"column":2},"end":{"line":40,"column":2}},{"start":{"line":40,"column":2},"end":{"line":40,"column":2}}]},"2":{"line":45,"type":"if","locations":[{"start":{"line":45,"column":2},"end":{"line":45,"column":2}},{"start":{"line":45,"column":2},"end":{"line":45,"column":2}}]},"3":{"line":57,"type":"if","locations":[{"start":{"line":57,"column":4},"end":{"line":57,"column":4}},{"start":{"line":57,"column":4},"end":{"line":57,"column":4}}]},"4":{"line":57,"type":"binary-expr","locations":[{"start":{"line":57,"column":9},"end":{"line":57,"column":34}},{"start":{"line":57,"column":38},"end":{"line":57,"column":52}},{"start":{"line":57,"column":56},"end":{"line":57,"column":88}}]}},"l":{"4":1,"6":1,"38":1,"40":98,"42":1,"45":98,"47":1,"50":97,"51":97,"52":97,"54":97,"55":267,"57":267,"58":251,"60":16,"64":81}}, | ||
"/home/nysos/dev/deep-lib/lib/methods/define.js":{"path":"/home/nysos/dev/deep-lib/lib/methods/define.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":5,"7":4,"8":4,"9":4,"10":1,"11":1,"12":4,"13":4,"14":1,"15":4,"16":2,"17":2,"18":2,"19":2,"20":4},"b":{"1":[4,1],"2":[4,1],"3":[1,3],"4":[1,3],"5":[2,2]},"f":{"1":5},"fnMap":{"1":{"name":"define","line":65,"loc":{"start":{"line":65,"column":17},"end":{"line":65,"column":72}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":52}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":44}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":37}},"4":{"start":{"line":15,"column":0},"end":{"line":17,"column":2}},"5":{"start":{"line":65,"column":0},"end":{"line":102,"column":2}},"6":{"start":{"line":66,"column":2},"end":{"line":101,"column":3}},"7":{"start":{"line":69,"column":4},"end":{"line":69,"column":24}},"8":{"start":{"line":72,"column":4},"end":{"line":72,"column":48}},"9":{"start":{"line":75,"column":4},"end":{"line":78,"column":5}},"10":{"start":{"line":76,"column":6},"end":{"line":76,"column":23}},"11":{"start":{"line":77,"column":6},"end":{"line":77,"column":39}},"12":{"start":{"line":81,"column":4},"end":{"line":81,"column":26}},"13":{"start":{"line":83,"column":4},"end":{"line":86,"column":5}},"14":{"start":{"line":85,"column":6},"end":{"line":85,"column":38}},"15":{"start":{"line":88,"column":4},"end":{"line":98,"column":5}},"16":{"start":{"line":90,"column":6},"end":{"line":90,"column":38}},"17":{"start":{"line":91,"column":6},"end":{"line":91,"column":36}},"18":{"start":{"line":94,"column":6},"end":{"line":94,"column":31}},"19":{"start":{"line":97,"column":6},"end":{"line":97,"column":36}},"20":{"start":{"line":100,"column":4},"end":{"line":100,"column":53}}},"branchMap":{"1":{"line":66,"type":"if","locations":[{"start":{"line":66,"column":2},"end":{"line":66,"column":2}},{"start":{"line":66,"column":2},"end":{"line":66,"column":2}}]},"2":{"line":72,"type":"binary-expr","locations":[{"start":{"line":72,"column":14},"end":{"line":72,"column":21}},{"start":{"line":72,"column":25},"end":{"line":72,"column":47}}]},"3":{"line":75,"type":"if","locations":[{"start":{"line":75,"column":4},"end":{"line":75,"column":4}},{"start":{"line":75,"column":4},"end":{"line":75,"column":4}}]},"4":{"line":83,"type":"if","locations":[{"start":{"line":83,"column":4},"end":{"line":83,"column":4}},{"start":{"line":83,"column":4},"end":{"line":83,"column":4}}]},"5":{"line":88,"type":"if","locations":[{"start":{"line":88,"column":4},"end":{"line":88,"column":4}},{"start":{"line":88,"column":4},"end":{"line":88,"column":4}}]}},"l":{"4":1,"5":1,"6":1,"15":1,"65":1,"66":5,"69":4,"72":4,"75":4,"76":1,"77":1,"81":4,"83":4,"85":1,"88":4,"90":2,"91":2,"94":2,"97":2,"100":4}}, | ||
"/home/nysos/dev/deep-lib/lib/methods/diff.js":{"path":"/home/nysos/dev/deep-lib/lib/methods/diff.js","s":{"1":1,"2":1,"3":1,"4":7,"5":1,"6":1,"7":7},"b":{"1":[1,6]},"f":{"1":7},"fnMap":{"1":{"name":"deepDiff","line":31,"loc":{"start":{"line":31,"column":15},"end":{"line":31,"column":60}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":35}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":41}},"3":{"start":{"line":31,"column":0},"end":{"line":40,"column":2}},"4":{"start":{"line":33,"column":2},"end":{"line":37,"column":3}},"5":{"start":{"line":35,"column":4},"end":{"line":35,"column":38}},"6":{"start":{"line":36,"column":4},"end":{"line":36,"column":38}},"7":{"start":{"line":39,"column":2},"end":{"line":39,"column":40}}},"branchMap":{"1":{"line":33,"type":"if","locations":[{"start":{"line":33,"column":2},"end":{"line":33,"column":2}},{"start":{"line":33,"column":2},"end":{"line":33,"column":2}}]}},"l":{"4":1,"5":1,"31":1,"33":7,"35":1,"36":1,"39":7}}, | ||
"/home/nysos/dev/deep-lib/lib/methods/equal.js":{"path":"/home/nysos/dev/deep-lib/lib/methods/equal.js","s":{"1":1,"2":1,"3":1,"4":1,"5":4,"6":2,"7":2,"8":4},"b":{"1":[2,2]},"f":{"1":4},"fnMap":{"1":{"name":"deepEqual","line":31,"loc":{"start":{"line":31,"column":16},"end":{"line":31,"column":62}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":37}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":42}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":38}},"4":{"start":{"line":31,"column":0},"end":{"line":47,"column":2}},"5":{"start":{"line":33,"column":2},"end":{"line":37,"column":3}},"6":{"start":{"line":35,"column":4},"end":{"line":35,"column":38}},"7":{"start":{"line":36,"column":4},"end":{"line":36,"column":38}},"8":{"start":{"line":46,"column":2},"end":{"line":46,"column":48}}},"branchMap":{"1":{"line":33,"type":"if","locations":[{"start":{"line":33,"column":2},"end":{"line":33,"column":2}},{"start":{"line":33,"column":2},"end":{"line":33,"column":2}}]}},"l":{"4":1,"5":1,"6":1,"31":1,"33":4,"35":2,"36":2,"46":4}}, | ||
"/home/nysos/dev/deep-lib/lib/methods/clone.js":{"path":"/home/nysos/dev/deep-lib/lib/methods/clone.js","s":{"1":1,"2":1,"3":1,"4":53,"5":3,"6":53},"b":{"1":[3,50]},"f":{"1":53},"fnMap":{"1":{"name":"deepClone","line":31,"loc":{"start":{"line":31,"column":16},"end":{"line":31,"column":52}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":32}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":42}},"3":{"start":{"line":31,"column":0},"end":{"line":39,"column":2}},"4":{"start":{"line":33,"column":2},"end":{"line":36,"column":3}},"5":{"start":{"line":35,"column":4},"end":{"line":35,"column":36}},"6":{"start":{"line":38,"column":2},"end":{"line":38,"column":26}}},"branchMap":{"1":{"line":33,"type":"if","locations":[{"start":{"line":33,"column":2},"end":{"line":33,"column":2}},{"start":{"line":33,"column":2},"end":{"line":33,"column":2}}]}},"l":{"4":1,"5":1,"31":1,"33":53,"35":3,"38":53}}, | ||
"/home/nysos/dev/deep-lib/lib/methods/search.js":{"path":"/home/nysos/dev/deep-lib/lib/methods/search.js","s":{"1":1,"2":1,"3":1,"4":2,"5":1,"6":2,"7":2,"8":2,"9":24,"10":6,"11":2},"b":{"1":[1,1],"2":[6,18]},"f":{"1":2,"2":24},"fnMap":{"1":{"name":"search","line":30,"loc":{"start":{"line":30,"column":17},"end":{"line":30,"column":57}}},"2":{"name":"(anonymous_2)","line":40,"loc":{"start":{"line":40,"column":16},"end":{"line":40,"column":37}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":42}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":46}},"3":{"start":{"line":30,"column":0},"end":{"line":47,"column":2}},"4":{"start":{"line":32,"column":2},"end":{"line":35,"column":3}},"5":{"start":{"line":34,"column":4},"end":{"line":34,"column":36}},"6":{"start":{"line":37,"column":2},"end":{"line":37,"column":33}},"7":{"start":{"line":38,"column":2},"end":{"line":38,"column":19}},"8":{"start":{"line":40,"column":2},"end":{"line":44,"column":5}},"9":{"start":{"line":41,"column":4},"end":{"line":43,"column":5}},"10":{"start":{"line":42,"column":6},"end":{"line":42,"column":30}},"11":{"start":{"line":46,"column":2},"end":{"line":46,"column":17}}},"branchMap":{"1":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":32,"column":2}},{"start":{"line":32,"column":2},"end":{"line":32,"column":2}}]},"2":{"line":41,"type":"if","locations":[{"start":{"line":41,"column":4},"end":{"line":41,"column":4}},{"start":{"line":41,"column":4},"end":{"line":41,"column":4}}]}},"l":{"4":1,"5":1,"30":1,"32":2,"34":1,"37":2,"38":2,"40":2,"41":24,"42":6,"46":2}}, | ||
"/home/nysos/dev/deep-lib/lib/methods/getPaths.js":{"path":"/home/nysos/dev/deep-lib/lib/methods/getPaths.js","s":{"1":1,"2":1,"3":15,"4":15,"5":41,"6":37,"7":13,"8":13,"9":13,"10":24,"11":24,"12":15},"b":{"1":[4,37],"2":[41,8],"3":[13,24],"4":[37,13],"5":[11,2],"6":[23,1]},"f":{"1":15,"2":41},"fnMap":{"1":{"name":"getPaths","line":27,"loc":{"start":{"line":27,"column":19},"end":{"line":27,"column":54}}},"2":{"name":"propertyIterator","line":30,"loc":{"start":{"line":30,"column":45},"end":{"line":30,"column":81}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":35}},"2":{"start":{"line":27,"column":0},"end":{"line":51,"column":2}},"3":{"start":{"line":28,"column":2},"end":{"line":28,"column":22}},"4":{"start":{"line":30,"column":2},"end":{"line":48,"column":5}},"5":{"start":{"line":32,"column":4},"end":{"line":47,"column":5}},"6":{"start":{"line":36,"column":9},"end":{"line":47,"column":5}},"7":{"start":{"line":38,"column":6},"end":{"line":38,"column":72}},"8":{"start":{"line":40,"column":6},"end":{"line":40,"column":62}},"9":{"start":{"line":42,"column":6},"end":{"line":42,"column":52}},"10":{"start":{"line":45,"column":6},"end":{"line":45,"column":63}},"11":{"start":{"line":46,"column":6},"end":{"line":46,"column":28}},"12":{"start":{"line":50,"column":2},"end":{"line":50,"column":20}}},"branchMap":{"1":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":4},"end":{"line":32,"column":4}},{"start":{"line":32,"column":4},"end":{"line":32,"column":4}}]},"2":{"line":32,"type":"binary-expr","locations":[{"start":{"line":32,"column":8},"end":{"line":32,"column":29}},{"start":{"line":32,"column":33},"end":{"line":32,"column":62}}]},"3":{"line":36,"type":"if","locations":[{"start":{"line":36,"column":9},"end":{"line":36,"column":9}},{"start":{"line":36,"column":9},"end":{"line":36,"column":9}}]},"4":{"line":36,"type":"binary-expr","locations":[{"start":{"line":36,"column":13},"end":{"line":36,"column":49}},{"start":{"line":36,"column":53},"end":{"line":36,"column":78}}]},"5":{"line":38,"type":"cond-expr","locations":[{"start":{"line":38,"column":30},"end":{"line":38,"column":59}},{"start":{"line":38,"column":62},"end":{"line":38,"column":70}}]},"6":{"line":45,"type":"cond-expr","locations":[{"start":{"line":45,"column":27},"end":{"line":45,"column":50}},{"start":{"line":45,"column":53},"end":{"line":45,"column":61}}]}},"l":{"4":1,"27":1,"28":15,"30":15,"32":41,"36":37,"38":13,"40":13,"42":13,"45":24,"46":24,"50":15}}, | ||
"/home/nysos/dev/deep-lib/lib/methods/move.js":{"path":"/home/nysos/dev/deep-lib/lib/methods/move.js","s":{"1":1,"2":1,"3":1,"4":1,"5":6,"6":1,"7":6,"8":6,"9":5,"10":5},"b":{"1":[1,5],"2":[5,1]},"f":{"1":6},"fnMap":{"1":{"name":"deepMove","line":28,"loc":{"start":{"line":28,"column":15},"end":{"line":28,"column":68}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":44}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":44}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":44}},"4":{"start":{"line":28,"column":0},"end":{"line":44,"column":2}},"5":{"start":{"line":30,"column":2},"end":{"line":33,"column":3}},"6":{"start":{"line":32,"column":4},"end":{"line":32,"column":40}},"7":{"start":{"line":35,"column":2},"end":{"line":35,"column":42}},"8":{"start":{"line":37,"column":2},"end":{"line":43,"column":3}},"9":{"start":{"line":38,"column":4},"end":{"line":38,"column":36}},"10":{"start":{"line":39,"column":4},"end":{"line":39,"column":32}}},"branchMap":{"1":{"line":30,"type":"if","locations":[{"start":{"line":30,"column":2},"end":{"line":30,"column":2}},{"start":{"line":30,"column":2},"end":{"line":30,"column":2}}]},"2":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":2},"end":{"line":37,"column":2}},{"start":{"line":37,"column":2},"end":{"line":37,"column":2}}]}},"l":{"4":1,"5":1,"6":1,"28":1,"30":6,"32":1,"35":6,"37":6,"38":5,"39":5}}, | ||
"/home/nysos/dev/deep-lib/lib/methods/create.js":{"path":"/home/nysos/dev/deep-lib/lib/methods/create.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":29,"7":1,"8":1,"9":29,"10":1,"11":29,"12":28,"13":26,"14":26},"b":{"1":[1,28],"2":[1,28],"3":[28,1],"4":[1,25]},"f":{"1":29},"fnMap":{"1":{"name":"create","line":37,"loc":{"start":{"line":37,"column":17},"end":{"line":37,"column":70}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":37}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":44}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":44}},"4":{"start":{"line":7,"column":0},"end":{"line":7,"column":52}},"5":{"start":{"line":37,"column":0},"end":{"line":57,"column":2}},"6":{"start":{"line":39,"column":2},"end":{"line":42,"column":3}},"7":{"start":{"line":40,"column":4},"end":{"line":40,"column":20}},"8":{"start":{"line":41,"column":4},"end":{"line":41,"column":16}},"9":{"start":{"line":44,"column":2},"end":{"line":47,"column":3}},"10":{"start":{"line":46,"column":4},"end":{"line":46,"column":36}},"11":{"start":{"line":49,"column":2},"end":{"line":56,"column":3}},"12":{"start":{"line":51,"column":4},"end":{"line":51,"column":43}},"13":{"start":{"line":53,"column":4},"end":{"line":53,"column":32}},"14":{"start":{"line":55,"column":4},"end":{"line":55,"column":55}}},"branchMap":{"1":{"line":39,"type":"if","locations":[{"start":{"line":39,"column":2},"end":{"line":39,"column":2}},{"start":{"line":39,"column":2},"end":{"line":39,"column":2}}]},"2":{"line":44,"type":"if","locations":[{"start":{"line":44,"column":2},"end":{"line":44,"column":2}},{"start":{"line":44,"column":2},"end":{"line":44,"column":2}}]},"3":{"line":49,"type":"if","locations":[{"start":{"line":49,"column":2},"end":{"line":49,"column":2}},{"start":{"line":49,"column":2},"end":{"line":49,"column":2}}]},"4":{"line":55,"type":"cond-expr","locations":[{"start":{"line":55,"column":21},"end":{"line":55,"column":46}},{"start":{"line":55,"column":49},"end":{"line":55,"column":53}}]}},"l":{"4":1,"5":1,"6":1,"7":1,"37":1,"39":29,"40":1,"41":1,"44":29,"46":1,"49":29,"51":28,"53":26,"55":26}}, | ||
"/home/nysos/dev/deep-lib/lib/methods/update.js":{"path":"/home/nysos/dev/deep-lib/lib/methods/update.js","s":{"1":1,"2":1,"3":1,"4":1,"5":34,"6":1,"7":1,"8":34,"9":1,"10":34,"11":34,"12":1,"13":33,"14":32,"15":32,"16":30,"17":30,"18":32,"19":1,"20":31,"21":1,"22":30,"23":11,"24":19},"b":{"1":[1,33],"2":[1,33],"3":[1,33],"4":[32,1],"5":[30,2],"6":[1,31],"7":[32,2],"8":[1,30],"9":[31,1],"10":[11,19]},"f":{"1":34},"fnMap":{"1":{"name":"update","line":40,"loc":{"start":{"line":40,"column":17},"end":{"line":40,"column":88}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":33}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":40}},"3":{"start":{"line":7,"column":0},"end":{"line":10,"column":2}},"4":{"start":{"line":40,"column":0},"end":{"line":87,"column":2}},"5":{"start":{"line":42,"column":2},"end":{"line":45,"column":3}},"6":{"start":{"line":43,"column":4},"end":{"line":43,"column":38}},"7":{"start":{"line":44,"column":4},"end":{"line":44,"column":18}},"8":{"start":{"line":47,"column":2},"end":{"line":50,"column":3}},"9":{"start":{"line":49,"column":4},"end":{"line":49,"column":36}},"10":{"start":{"line":53,"column":2},"end":{"line":53,"column":54}},"11":{"start":{"line":55,"column":2},"end":{"line":58,"column":3}},"12":{"start":{"line":57,"column":4},"end":{"line":57,"column":88}},"13":{"start":{"line":60,"column":2},"end":{"line":86,"column":3}},"14":{"start":{"line":61,"column":4},"end":{"line":61,"column":28}},"15":{"start":{"line":63,"column":4},"end":{"line":70,"column":5}},"16":{"start":{"line":66,"column":6},"end":{"line":66,"column":42}},"17":{"start":{"line":69,"column":6},"end":{"line":69,"column":52}},"18":{"start":{"line":72,"column":4},"end":{"line":85,"column":5}},"19":{"start":{"line":73,"column":6},"end":{"line":73,"column":65}},"20":{"start":{"line":75,"column":9},"end":{"line":85,"column":5}},"21":{"start":{"line":76,"column":6},"end":{"line":76,"column":13}},"22":{"start":{"line":79,"column":6},"end":{"line":84,"column":7}},"23":{"start":{"line":80,"column":8},"end":{"line":80,"column":47}},"24":{"start":{"line":83,"column":8},"end":{"line":83,"column":37}}},"branchMap":{"1":{"line":42,"type":"if","locations":[{"start":{"line":42,"column":2},"end":{"line":42,"column":2}},{"start":{"line":42,"column":2},"end":{"line":42,"column":2}}]},"2":{"line":47,"type":"if","locations":[{"start":{"line":47,"column":2},"end":{"line":47,"column":2}},{"start":{"line":47,"column":2},"end":{"line":47,"column":2}}]},"3":{"line":55,"type":"if","locations":[{"start":{"line":55,"column":2},"end":{"line":55,"column":2}},{"start":{"line":55,"column":2},"end":{"line":55,"column":2}}]},"4":{"line":60,"type":"if","locations":[{"start":{"line":60,"column":2},"end":{"line":60,"column":2}},{"start":{"line":60,"column":2},"end":{"line":60,"column":2}}]},"5":{"line":63,"type":"if","locations":[{"start":{"line":63,"column":4},"end":{"line":63,"column":4}},{"start":{"line":63,"column":4},"end":{"line":63,"column":4}}]},"6":{"line":72,"type":"if","locations":[{"start":{"line":72,"column":4},"end":{"line":72,"column":4}},{"start":{"line":72,"column":4},"end":{"line":72,"column":4}}]},"7":{"line":72,"type":"binary-expr","locations":[{"start":{"line":72,"column":8},"end":{"line":72,"column":28}},{"start":{"line":72,"column":32},"end":{"line":72,"column":56}}]},"8":{"line":75,"type":"if","locations":[{"start":{"line":75,"column":9},"end":{"line":75,"column":9}},{"start":{"line":75,"column":9},"end":{"line":75,"column":9}}]},"9":{"line":75,"type":"binary-expr","locations":[{"start":{"line":75,"column":13},"end":{"line":75,"column":33}},{"start":{"line":75,"column":37},"end":{"line":75,"column":60}}]},"10":{"line":79,"type":"if","locations":[{"start":{"line":79,"column":6},"end":{"line":79,"column":6}},{"start":{"line":79,"column":6},"end":{"line":79,"column":6}}]}},"l":{"4":1,"5":1,"7":1,"40":1,"42":34,"43":1,"44":1,"47":34,"49":1,"53":34,"55":34,"57":1,"60":33,"61":32,"63":32,"66":30,"69":30,"72":32,"73":1,"75":31,"76":1,"79":30,"80":11,"83":19}}, | ||
"/home/nysos/dev/deep-lib/lib/methods/delete.js":{"path":"/home/nysos/dev/deep-lib/lib/methods/delete.js","s":{"1":1,"2":1,"3":1,"4":13,"5":1,"6":13,"7":13,"8":12,"9":12,"10":13,"11":13,"12":4,"13":9,"14":9,"15":5,"16":4,"17":9},"b":{"1":[1,12],"2":[12,1],"3":[4,9],"4":[5,4]},"f":{"1":13},"fnMap":{"1":{"name":"deepDelete","line":28,"loc":{"start":{"line":28,"column":17},"end":{"line":28,"column":60}}}},"statementMap":{"1":{"start":{"line":4,"column":0},"end":{"line":4,"column":33}},"2":{"start":{"line":5,"column":0},"end":{"line":5,"column":40}},"3":{"start":{"line":28,"column":0},"end":{"line":58,"column":2}},"4":{"start":{"line":30,"column":2},"end":{"line":33,"column":3}},"5":{"start":{"line":32,"column":4},"end":{"line":32,"column":36}},"6":{"start":{"line":35,"column":2},"end":{"line":35,"column":26}},"7":{"start":{"line":37,"column":2},"end":{"line":40,"column":3}},"8":{"start":{"line":38,"column":4},"end":{"line":38,"column":40}},"9":{"start":{"line":39,"column":4},"end":{"line":39,"column":38}},"10":{"start":{"line":42,"column":2},"end":{"line":42,"column":32}},"11":{"start":{"line":44,"column":2},"end":{"line":46,"column":3}},"12":{"start":{"line":45,"column":4},"end":{"line":45,"column":11}},"13":{"start":{"line":48,"column":2},"end":{"line":48,"column":37}},"14":{"start":{"line":50,"column":2},"end":{"line":55,"column":3}},"15":{"start":{"line":51,"column":4},"end":{"line":51,"column":35}},"16":{"start":{"line":54,"column":4},"end":{"line":54,"column":32}},"17":{"start":{"line":57,"column":2},"end":{"line":57,"column":15}}},"branchMap":{"1":{"line":30,"type":"if","locations":[{"start":{"line":30,"column":2},"end":{"line":30,"column":2}},{"start":{"line":30,"column":2},"end":{"line":30,"column":2}}]},"2":{"line":37,"type":"if","locations":[{"start":{"line":37,"column":2},"end":{"line":37,"column":2}},{"start":{"line":37,"column":2},"end":{"line":37,"column":2}}]},"3":{"line":44,"type":"if","locations":[{"start":{"line":44,"column":2},"end":{"line":44,"column":2}},{"start":{"line":44,"column":2},"end":{"line":44,"column":2}}]},"4":{"line":50,"type":"if","locations":[{"start":{"line":50,"column":2},"end":{"line":50,"column":2}},{"start":{"line":50,"column":2},"end":{"line":50,"column":2}}]}},"l":{"4":1,"5":1,"28":1,"30":13,"32":1,"35":13,"37":13,"38":12,"39":12,"42":13,"44":13,"45":4,"48":9,"50":9,"51":5,"54":4,"57":9}}} |
@@ -13,2 +13,1 @@ /* jshint node:true */ | ||
var data = require('../object.json'); | ||
@@ -51,2 +51,14 @@ /* jshint node:true */ | ||
it('should support the "offset" argument', function() { | ||
var clone = deep.clone(data); | ||
var realPath = deep.create(clone, 'sites.*', 'Gibraltar', 'countries.spain'); | ||
var diff = diffLib(data, clone); | ||
expect(clone).to.not.deep.equal(data); | ||
expect(diff).to.deep.equal([{"kind":"A","path":["countries","spain","sites"],"index":2,"item":{"kind":"N","rhs":"Gibraltar"}}]); | ||
expect(realPath).to.deep.equal('countries.spain.sites.2'); | ||
}); | ||
var clone = deep.clone(data); | ||
@@ -53,0 +65,0 @@ var paris = { |
@@ -36,3 +36,3 @@ /* jshint node:true */ | ||
var realPath = deep.createPath(clone, test.path, test.force, test.offset); | ||
var realPath = deep.createPath(clone, test.path, test.offset, test.force); | ||
@@ -39,0 +39,0 @@ var diff = diffLib(data, clone); |
@@ -11,2 +11,3 @@ /* jshint node:true */ | ||
var expect = require('chai').expect; | ||
var diffLib = require('deep-diff'); | ||
var deep = require('../../../lib/deep-lib'); | ||
@@ -54,2 +55,14 @@ var data = require('../../object.json'); | ||
it('should support the "offset" argument', function() { | ||
var clone = deep.clone(data); | ||
var value = deep.delete(clone, 'sites.1', 'countries.spain'); | ||
var diff = diffLib(data, clone); | ||
expect(clone).to.not.deep.equal(data); | ||
expect(diff).to.deep.equal([{"kind":"A","path":["countries","spain","sites"],"index":1,"item":{"kind":"D","lhs":"Cabo de Gata"}}]); | ||
expect(value).to.deep.equal('Cabo de Gata'); | ||
}); | ||
it('should return undefined for unknown deep values', function() { | ||
@@ -56,0 +69,0 @@ var levels = ['fully', 'unknown', 'deep', 'value']; |
@@ -11,2 +11,3 @@ /* jshint node:true */ | ||
var expect = require('chai').expect; | ||
var diffLib = require('deep-diff'); | ||
var deep = require('../../../lib/deep-lib'); | ||
@@ -16,57 +17,83 @@ var data = require('../../object.json'); | ||
describe('[' + __filename.substring(__filename.indexOf('/test/') + 1) + '] - move ', function() { | ||
var clone = deep.clone(data); | ||
it('should move a deep structure', function() { | ||
var clone = deep.clone(data); | ||
var oldPath = 'countries.germany'; | ||
var newPath = 'countries.france'; | ||
var moved = deep.select(clone, oldPath); | ||
deep.move(clone, oldPath, newPath); | ||
var empty = deep.select(clone, oldPath); | ||
var control = deep.select(clone, newPath); | ||
var value = deep.select(data, oldPath); | ||
expect(empty).to.equal(undefined); | ||
expect(control).to.deep.equal(value); | ||
expect(control).to.equal(moved); | ||
var diff = diffLib(data, clone); | ||
expect(clone).to.not.deep.equal(data); | ||
expect(diff).to.deep.equal([{"kind":"D","path":["countries","germany"],"lhs":{"towns":{"capital":"berlin","berlin":{"name":"Berlin","population":3562166,"area":891.85},"hamburg":{"name":"Hamburg","population":1751775,"area":755}}}},{"kind":"N","path":["countries","france"],"rhs":{"towns":{"capital":"berlin","berlin":{"name":"Berlin","population":3562166,"area":891.85},"hamburg":{"name":"Hamburg","population":1751775,"area":755}}}}]); | ||
}); | ||
it('should move an array element to a different array', function() { | ||
var clone = deep.clone(data); | ||
var oldPath = 'countries.spain.sites.0'; | ||
var newPath = 'countries.france.sites.0'; | ||
var moved = deep.select(clone, oldPath); | ||
deep.move(clone, oldPath, newPath); | ||
var nextElement = deep.select(clone, oldPath); | ||
var control = deep.select(clone, newPath); | ||
var original = deep.select(data, oldPath); | ||
expect(nextElement).to.equal('Cabo de Gata'); | ||
expect(control).to.deep.equal(original); | ||
expect(control).to.equal(moved); | ||
var diff = diffLib(data, clone); | ||
expect(clone).to.not.deep.equal(data); | ||
expect(diff).to.deep.equal([{"kind":"E","path":["countries","spain","sites",0],"lhs":"Alhambra","rhs":"Cabo de Gata"},{"kind":"A","path":["countries","spain","sites"],"index":1,"item":{"kind":"D","lhs":"Cabo de Gata"}},{"kind":"N","path":["countries","france"],"rhs":{"sites":["Alhambra"]}}]); | ||
}); | ||
it('should move an array element to an object', function() { | ||
var clone = deep.clone(data); | ||
var oldPath = 'countries.spain.sites.0'; | ||
var newPath = 'countries.spain.bestSite'; | ||
var moved = deep.select(clone, oldPath); | ||
deep.move(clone, oldPath, newPath); | ||
var empty = deep.select(clone, oldPath); | ||
var control = deep.select(clone, newPath); | ||
expect(empty).to.equal(undefined); | ||
expect(control).to.equal(moved); | ||
var diff = diffLib(data, clone); | ||
expect(clone).to.not.deep.equal(data); | ||
expect(diff).to.deep.equal([{"kind":"E","path":["countries","spain","sites",0],"lhs":"Alhambra","rhs":"Cabo de Gata"},{"kind":"A","path":["countries","spain","sites"],"index":1,"item":{"kind":"D","lhs":"Cabo de Gata"}},{"kind":"N","path":["countries","spain","bestSite"],"rhs":"Alhambra"}]); | ||
}); | ||
it('should move a deep value', function() { | ||
deep.create(clone, 'countries.france.towns.capital', 'hamburg'); | ||
var control = deep.select(clone, 'countries.france.towns.capital'); | ||
var clone = deep.clone(data); | ||
var oldPath = 'countries.germany.towns.capital'; | ||
var newPath = 'countries.france.towns.capital'; | ||
expect(control).to.equal('hamburg'); | ||
deep.move(clone, oldPath, newPath); | ||
var diff = diffLib(data, clone); | ||
expect(clone).to.not.deep.equal(data); | ||
expect(diff).to.deep.equal([{"kind":"D","path":["countries","germany","towns","capital"],"lhs":"berlin"},{"kind":"N","path":["countries","france"],"rhs":{"towns":{"capital":"berlin"}}}]); | ||
}); | ||
it('should do nothing if "oldPath" does not exist', function() { | ||
var clone = deep.clone(data); | ||
var oldPath = 'countries.usa'; | ||
var newPath = 'countries.france.towns.capital'; | ||
deep.move(clone, oldPath, newPath); | ||
expect(clone).to.deep.equal(data); | ||
}); | ||
it('should support the "offset" argument', function() { | ||
var clone = deep.clone(data); | ||
var oldPath = 'spain.sites.0'; | ||
var newPath = 'spain.bestSite'; | ||
deep.move(clone, oldPath, newPath, 'countries'); | ||
var diff = diffLib(data, clone); | ||
expect(clone).to.not.deep.equal(data); | ||
expect(diff).to.deep.equal([{"kind":"E","path":["countries","spain","sites",0],"lhs":"Alhambra","rhs":"Cabo de Gata"},{"kind":"A","path":["countries","spain","sites"],"index":1,"item":{"kind":"D","lhs":"Cabo de Gata"}},{"kind":"N","path":["countries","spain","bestSite"],"rhs":"Alhambra"}]); | ||
}); | ||
}); |
@@ -53,2 +53,9 @@ /* jshint node:true */ | ||
it('should support the "offset" argument', function() { | ||
var value = deep.select(clone, 'sites.1', 'countries.spain'); | ||
var control = deep.select(data, 'countries.spain.sites.1'); | ||
expect(value).to.deep.equal(control); | ||
}); | ||
it('should return undefined for unknown deep values', function() { | ||
@@ -55,0 +62,0 @@ var levels = ['fully', 'unknown', 'deep', 'value']; |
@@ -100,2 +100,14 @@ /* jshint node:true */ | ||
}); | ||
it('should support the "offset" argument', function() { | ||
var clone = deep.clone(data); | ||
deep.update(clone, 'sites.1', 'Mojacar', 'countries.spain'); | ||
var diff = diffLib(data, clone); | ||
console.log(JSON.stringify(diff)); | ||
expect(clone).to.not.deep.equal(data); | ||
expect(diff).to.deep.equal([{"kind":"E","path":["countries","spain","sites",1],"lhs":"Cabo de Gata","rhs":"Mojacar"}]); | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
130659
1972
0
53