merges two trees guided with hints
import { merge } from "hinted-tree-merger";
const r = merge(
[{ k:1, e:1}, { k:2}],
[{ k:1, e:2}, { k:3}], // 2nd. array has precedence
"",
undefined,
{
"": { key: "k" } // identify slots by property "k"
});
// r := [{ k:1 e:2 }, { k:2 }, { k:3 }]
import { merge } from "hinted-tree-merger";
const r = merge( undefined, [ { k:1, e:2}, { k:3 }]);
// r := [{ k:1 e:2 }, { k:2 }, { k:3 }]
- hintFor
- Actions
- mergeSkip
- mergeArrays
- merge
- hasDeleteHint
- isToBeRemoved
- hintFreeValue
- indexFor
- keyFor
- sortObjectsByKeys
- compareWithDefinedOrder
- matchingIndex
- match
- cmp
- compareVersion
- unionVersion
- VersionMapper
- mergeVersionsWithFilter
- mergeVersions
- mergeVersionsPreferNumeric
- walk
Construct hint for a given path.
Type: Function
Skip merging use left side always.
a
b
path
actions
hints
Merge to values.
a
anyb
anypath
actions
Actions (optional, defaultnullAction
)hints
any
Returns any merged value
Should value be removed.
Returns Object true if fromTemplate tells is to delete value
Remove hint(s) form a value.
value
(string | any)
Returns any value without hint
Find best insertion point for b[i] in a.
Deliver key value to identify object.
object
anyhint
Object
Sort keys in source.
source
Objectcompare
Returns Object source with keys orderd by compare function
a
anyb
anydefinedOrder
value
any
Returns number
url means highest version
Returns number
Compare two versions.
Returns number -1 if a < b, 0 if a == b and 1 if a > b
Forms union of two versions.
maps version values (to number)
Type: Function
Merge and filter two sets of version (expressions).
a
(string | Array<string> | number | Array<number>)b
(string | Array<string> | number | Array<number>)path
string location in the treeactions
Function cb to notify about the actual selection (optional, defaultnullAction
)hints
Objectfilter
VersionMapper
Returns (string | Array<string> | number | Array<number>) merged set of version expressions
merge two sets of version (expressions)
a
(string | Array<string> | number | Array<number>)b
(string | Array<string> | number | Array<number>)path
string location in the treeactions
Function cb to notify about the actual selectionhints
Object
Returns (string | Array<string> | number | Array<number>) merged set of version expressions
Same as mergeVersions but merge result are converted into numbers if possible
a
(string | Array<string> | number | Array<number>)b
(string | Array<string> | number | Array<number>)path
string location in the treeactions
Function cb to notify about the actual selectionhints
Object
Returns (string | Array<string> | number | Array<number>) merged set of version expressions
Iterates over all members.
value
anypath
Array<any> (optional, default[]
)parents
(optional, default[]
)
With npm do:
npm install hinted-tree-merger
BSD-2-Clause