Comparing version
{ | ||
"name": "fuzzytree", | ||
"main": "dist/FuzzyTree.js", | ||
"version": "0.0.5", | ||
"version": "0.0.6", | ||
"homepage": "https://github.com/EyalAr/FuzzyTree", | ||
@@ -6,0 +6,0 @@ "authors": [ |
@@ -179,19 +179,18 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
greedy = child._greedy; | ||
if (!grandchilds.length) _push(res, child._match([]));else { | ||
(0, _lodash.forEach)(grandchilds, function (gc) { | ||
if (gc === wildcard) { | ||
// consume as much as possible, only if at least two left | ||
traverseGreedy(child._children[wildcard]); | ||
} else if (gc === greedy) { | ||
// consume one and move on | ||
_push(res, child._match(path.slice(1))); | ||
} else { | ||
// we need to consume as much as possible from the path | ||
var i = (0, _lodash.lastIndexOf)(path.slice(1), gc); | ||
if (i > -1) { | ||
_push(res, child._match(path.slice(i + 1))); | ||
} | ||
_push(res, child._match([])); | ||
(0, _lodash.forEach)(grandchilds, function (gc) { | ||
if (gc === wildcard) { | ||
// consume as much as possible, only if at least two left | ||
traverseGreedy(child._children[wildcard]); | ||
} else if (gc === greedy) { | ||
// consume one and move on | ||
_push(res, child._match(path.slice(1))); | ||
} else { | ||
// we need to consume as much as possible from the path | ||
var i = (0, _lodash.lastIndexOf)(path.slice(1), gc); | ||
if (i > -1) { | ||
_push(res, child._match(path.slice(i + 1))); | ||
} | ||
}); | ||
} | ||
} | ||
}); | ||
} | ||
@@ -198,0 +197,0 @@ |
{ | ||
"name": "fuzzytree", | ||
"version": "0.0.5", | ||
"version": "0.0.6", | ||
"description": "Fuzzy tree structure with non-deterministic nodes paths", | ||
@@ -5,0 +5,0 @@ "main": "dist/FuzzyTree.js", |
@@ -107,20 +107,18 @@ /* jshint esnext:true */ | ||
greedy = child._greedy; | ||
if (!grandchilds.length) _push(res, child._match([])); | ||
else { | ||
_forEach(grandchilds, gc => { | ||
if (gc === wildcard) { | ||
// consume as much as possible, only if at least two left | ||
traverseGreedy(child._children[wildcard]); | ||
} else if (gc === greedy) { | ||
// consume one and move on | ||
_push(res, child._match(path.slice(1))); | ||
} else { | ||
// we need to consume as much as possible from the path | ||
var i = _lastIndexOf(path.slice(1), gc); | ||
if (i > -1){ | ||
_push(res, child._match(path.slice(i + 1))); | ||
} | ||
_push(res, child._match([])); | ||
_forEach(grandchilds, gc => { | ||
if (gc === wildcard) { | ||
// consume as much as possible, only if at least two left | ||
traverseGreedy(child._children[wildcard]); | ||
} else if (gc === greedy) { | ||
// consume one and move on | ||
_push(res, child._match(path.slice(1))); | ||
} else { | ||
// we need to consume as much as possible from the path | ||
var i = _lastIndexOf(path.slice(1), gc); | ||
if (i > -1){ | ||
_push(res, child._match(path.slice(i + 1))); | ||
} | ||
}); | ||
} | ||
} | ||
}); | ||
} | ||
@@ -127,0 +125,0 @@ |
@@ -386,4 +386,41 @@ import should from "should"; | ||
describe("one node a child of another greedy node", function(){ | ||
var node = new FuzzyTree(), | ||
pattern1 = "test.hello.#", | ||
pattern2 = "test.hello.#.foo", | ||
newNode1 = node.insert(pattern1), | ||
newNode2 = node.insert(pattern2); | ||
it("should match one node", function(){ | ||
var path = "test.hello.world.nice.to.meet.you.foo.bar", | ||
nodes = node.match(path); | ||
nodes.should.have.length(1); | ||
nodes[0].should.be.instanceOf(FuzzyTree); | ||
nodes[0].should.equal(newNode1); | ||
}); | ||
it("should match two nodes", function(){ | ||
var path = "test.hello.world.hi.bar.baz.bar.foo", | ||
nodes = node.match(path); | ||
nodes.should.have.length(2); | ||
nodes[0].should.be.instanceOf(FuzzyTree); | ||
nodes[1].should.be.instanceOf(FuzzyTree); | ||
nodes.should.containEql(newNode1); | ||
nodes.should.containEql(newNode2); | ||
}); | ||
it("should match zero nodes", function(){ | ||
var path = "hello", | ||
nodes = node.match(path); | ||
nodes.should.have.length(0); | ||
}); | ||
}); | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
54209
1.71%901
2.85%