Comparing version 1.1.2 to 1.1.3
{ | ||
"name": "fuse.js", | ||
"version": "1.1.2", | ||
"version": "1.1.3", | ||
"main": "./src/fuse.js", | ||
@@ -5,0 +5,0 @@ "ignore": [ |
{ | ||
"name": "fuse.js", | ||
"author": "Kirollos Risk", | ||
"version": "1.1.2", | ||
"version": "1.1.3", | ||
"description": "Lightweight fuzzy-search", | ||
@@ -6,0 +6,0 @@ "license": "Apache", |
@@ -263,2 +263,3 @@ /** | ||
this.options.getFn = options.getFn || Fuse.defaultOptions.getFn; | ||
this.options.shouldSort = options.shouldSort || Fuse.defaultOptions.shouldSort; | ||
}; | ||
@@ -311,3 +312,3 @@ | ||
var searcher = new(this.options.searchFn)(pattern, this.options), | ||
i, j, item, text, | ||
i, j, item, | ||
list = this.list, | ||
@@ -389,6 +390,6 @@ dataLen = list.length, | ||
var getItem = options.includeScore ? function(i) { | ||
return rawResults[i]; | ||
} : function(i) { | ||
return rawResults[i].item; | ||
}; | ||
return rawResults[i]; | ||
} : function(i) { | ||
return rawResults[i].item; | ||
}; | ||
@@ -398,6 +399,6 @@ // Helper function, here for speed-up, which returns the idenfifer (via deepValue), | ||
var getValue = options.id ? function(i) { | ||
return Utils.deepValue(getItem(i), options.id); | ||
} : function(i) { | ||
return getItem(i); | ||
}; | ||
return Utils.deepValue(getItem(i), options.id); | ||
} : function(i) { | ||
return getItem(i); | ||
}; | ||
@@ -404,0 +405,0 @@ // From the results, push into a new array only the item identifier (if specified) |
@@ -20,2 +20,2 @@ /** | ||
*/ | ||
!function(t){function e(t,n){this.list=t,this.options=n=n||{},this.options.sort="sort"in n?n.sort:e.defaultOptions.sort,this.options.includeScore="includeScore"in n?n.includeScore:e.defaultOptions.includeScore,this.options.searchFn=n.searchFn||e.defaultOptions.searchFn,this.options.sortFn=n.sortFn||e.defaultOptions.sortFn,this.options.keys=n.keys||e.defaultOptions.keys,this.options.getFn=n.getFn||e.defaultOptions.getFn}var n=function(t,e){if(e=e||{},this.options=e,this.options.location=e.location||n.defaultOptions.location,this.options.distance="distance"in e?e.distance:n.defaultOptions.distance,this.options.threshold="threshold"in e?e.threshold:n.defaultOptions.threshold,this.options.maxPatternLength=e.maxPatternLength||n.defaultOptions.maxPatternLength,this.pattern=e.caseSensitive?t:t.toLowerCase(),this.patternLen=t.length,this.patternLen>this.options.maxPatternLength)throw new Error("Pattern length is too long");this.matchmask=1<<this.patternLen-1,this.patternAlphabet=this._calculatePatternAlphabet()};n.defaultOptions={location:0,distance:100,threshold:.6,maxPatternLength:32},n.prototype._calculatePatternAlphabet=function(){var t={},e=0;for(e=0;e<this.patternLen;e++)t[this.pattern.charAt(e)]=0;for(e=0;e<this.patternLen;e++)t[this.pattern.charAt(e)]|=1<<this.pattern.length-e-1;return t},n.prototype._bitapScore=function(t,e){var n=t/this.patternLen,i=Math.abs(this.options.location-e);return this.options.distance?n+i/this.options.distance:i?1:n},n.prototype.search=function(t){if(t=this.options.caseSensitive?t:t.toLowerCase(),this.pattern===t)return{isMatch:!0,score:0};var e,n,i,o,s,r,a,h,p,c=t.length,l=this.options.location,u=this.options.threshold,f=t.indexOf(this.pattern,l),d=this.patternLen+c,g=1,m=[];for(-1!=f&&(u=Math.min(this._bitapScore(0,f),u),f=t.lastIndexOf(this.pattern,l+this.patternLen),-1!=f&&(u=Math.min(this._bitapScore(0,f),u))),f=-1,e=0;e<this.patternLen;e++){for(i=0,o=d;o>i;)this._bitapScore(e,l+o)<=u?i=o:d=o,o=Math.floor((d-i)/2+i);for(d=o,s=Math.max(1,l-o+1),r=Math.min(l+o,c)+this.patternLen,a=Array(r+2),a[r+1]=(1<<e)-1,n=r;n>=s;n--)if(p=this.patternAlphabet[t.charAt(n-1)],a[n]=0===e?(a[n+1]<<1|1)&p:(a[n+1]<<1|1)&p|((h[n+1]|h[n])<<1|1)|h[n+1],a[n]&this.matchmask&&(g=this._bitapScore(e,n-1),u>=g)){if(u=g,f=n-1,m.push(f),!(f>l))break;s=Math.max(1,2*l-f)}if(this._bitapScore(e+1,l)>u)break;h=a}return{isMatch:f>=0,score:g}};var i={deepValue:function(t,e){for(var n=0,e=e.split("."),i=e.length;i>n;n++){if(!t)return null;t=t[e[n]]}return t}};e.defaultOptions={id:null,caseSensitive:!1,includeScore:!1,shouldSort:!0,searchFn:n,sortFn:function(t,e){return t.score-e.score},getFn:i.deepValue,keys:[]},e.prototype.search=function(t){var e,n,o,s,r,a=new this.options.searchFn(t,this.options),h=this.list,p=h.length,c=this.options,l=this.options.keys,u=l.length,f=[],d={},g=[],m=function(t,e,n){void 0!==t&&null!==t&&"string"==typeof t&&(s=a.search(t),s.isMatch&&(r=d[n],r?r.score=Math.min(r.score,s.score):(d[n]={item:e,score:s.score},f.push(d[n]))))};if("string"==typeof h[0])for(var e=0;p>e;e++)m(h[e],e,e);else for(var e=0;p>e;e++)for(o=h[e],n=0;u>n;n++)m(this.options.getFn(o,l[n]),o,e);c.shouldSort&&f.sort(c.sortFn);for(var L=c.includeScore?function(t){return f[t]}:function(t){return f[t].item},S=c.id?function(t){return i.deepValue(L(t),c.id)}:function(t){return L(t)},e=0,F=f.length;F>e;e++)g.push(S(e));return g},"object"==typeof exports?module.exports=e:"function"==typeof define&&define.amd?define(function(){return e}):t.Fuse=e}(this); | ||
!function(t){function e(t,n){this.list=t,this.options=n=n||{},this.options.sort="sort"in n?n.sort:e.defaultOptions.sort,this.options.includeScore="includeScore"in n?n.includeScore:e.defaultOptions.includeScore,this.options.searchFn=n.searchFn||e.defaultOptions.searchFn,this.options.sortFn=n.sortFn||e.defaultOptions.sortFn,this.options.keys=n.keys||e.defaultOptions.keys,this.options.getFn=n.getFn||e.defaultOptions.getFn,this.options.shouldSort=n.shouldSort||e.defaultOptions.shouldSort}var n=function(t,e){if(e=e||{},this.options=e,this.options.location=e.location||n.defaultOptions.location,this.options.distance="distance"in e?e.distance:n.defaultOptions.distance,this.options.threshold="threshold"in e?e.threshold:n.defaultOptions.threshold,this.options.maxPatternLength=e.maxPatternLength||n.defaultOptions.maxPatternLength,this.pattern=e.caseSensitive?t:t.toLowerCase(),this.patternLen=t.length,this.patternLen>this.options.maxPatternLength)throw new Error("Pattern length is too long");this.matchmask=1<<this.patternLen-1,this.patternAlphabet=this._calculatePatternAlphabet()};n.defaultOptions={location:0,distance:100,threshold:.6,maxPatternLength:32},n.prototype._calculatePatternAlphabet=function(){var t={},e=0;for(e=0;e<this.patternLen;e++)t[this.pattern.charAt(e)]=0;for(e=0;e<this.patternLen;e++)t[this.pattern.charAt(e)]|=1<<this.pattern.length-e-1;return t},n.prototype._bitapScore=function(t,e){var n=t/this.patternLen,o=Math.abs(this.options.location-e);return this.options.distance?n+o/this.options.distance:o?1:n},n.prototype.search=function(t){if(t=this.options.caseSensitive?t:t.toLowerCase(),this.pattern===t)return{isMatch:!0,score:0};var e,n,o,i,s,r,a,h,p,c=t.length,l=this.options.location,u=this.options.threshold,f=t.indexOf(this.pattern,l),d=this.patternLen+c,g=1,S=[];for(-1!=f&&(u=Math.min(this._bitapScore(0,f),u),f=t.lastIndexOf(this.pattern,l+this.patternLen),-1!=f&&(u=Math.min(this._bitapScore(0,f),u))),f=-1,e=0;e<this.patternLen;e++){for(o=0,i=d;i>o;)this._bitapScore(e,l+i)<=u?o=i:d=i,i=Math.floor((d-o)/2+o);for(d=i,s=Math.max(1,l-i+1),r=Math.min(l+i,c)+this.patternLen,a=Array(r+2),a[r+1]=(1<<e)-1,n=r;n>=s;n--)if(p=this.patternAlphabet[t.charAt(n-1)],a[n]=0===e?(a[n+1]<<1|1)&p:(a[n+1]<<1|1)&p|((h[n+1]|h[n])<<1|1)|h[n+1],a[n]&this.matchmask&&(g=this._bitapScore(e,n-1),u>=g)){if(u=g,f=n-1,S.push(f),!(f>l))break;s=Math.max(1,2*l-f)}if(this._bitapScore(e+1,l)>u)break;h=a}return{isMatch:f>=0,score:g}};var o={deepValue:function(t,e){for(var n=0,e=e.split("."),o=e.length;o>n;n++){if(!t)return null;t=t[e[n]]}return t}};e.defaultOptions={id:null,caseSensitive:!1,includeScore:!1,shouldSort:!0,searchFn:n,sortFn:function(t,e){return t.score-e.score},getFn:o.deepValue,keys:[]},e.prototype.search=function(t){var e,n,i,s,r,a=new this.options.searchFn(t,this.options),h=this.list,p=h.length,c=this.options,l=this.options.keys,u=l.length,f=[],d={},g=[],S=function(t,e,n){void 0!==t&&null!==t&&"string"==typeof t&&(s=a.search(t),s.isMatch&&(r=d[n],r?r.score=Math.min(r.score,s.score):(d[n]={item:e,score:s.score},f.push(d[n]))))};if("string"==typeof h[0])for(var e=0;p>e;e++)S(h[e],e,e);else for(var e=0;p>e;e++)for(i=h[e],n=0;u>n;n++)S(this.options.getFn(i,l[n]),i,e);c.shouldSort&&f.sort(c.sortFn);for(var m=c.includeScore?function(t){return f[t]}:function(t){return f[t].item},L=c.id?function(t){return o.deepValue(m(t),c.id)}:function(t){return m(t)},e=0,F=f.length;F>e;e++)g.push(L(e));return g},"object"==typeof exports?module.exports=e:"function"==typeof define&&define.amd?define(function(){return e}):t.Fuse=e}(this); |
@@ -36,2 +36,15 @@ var assert = require('assert'), | ||
}, | ||
}, | ||
'When performing a fuzzy search for the term "nan"': { | ||
topic: function(fuse) { | ||
var result = fuse.search("nan"); | ||
return result; | ||
}, | ||
'we get a list of containing 2 items: [2, 1]': function(result) { | ||
assert.equal(result.length, 2); | ||
}, | ||
'whose values represent the indices of ["Banana", "Orange"]': function(result) { | ||
assert.equal(result[0], 2); | ||
assert.equal(result[1], 1); | ||
}, | ||
} | ||
@@ -38,0 +51,0 @@ } |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1982736
88114