seaq
Version:
ES6 Text Search.
3 lines (2 loc) • 1.25 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.seaq=function(r,e,n,t){return function(r,e,n,t){return r.map((function(r){var i=function(r,e,n){if(r===e)return 1;if(""===e)return 0;var t,i,o,u,f=0,s=r,l=s.toLowerCase(),c=s.length,a=e.toLowerCase(),p=e.length,g=0,v=1,y=0;if(n&&(y=1-n),n)for(u=0;u<p;u+=1)-1===(o=l.indexOf(a[u],g))?v+=y:(g===o?t=.7:(t=.1," "===s[o-1]&&(t+=.8)),s[o]===e[u]&&(t+=.1),f+=t,g=o+1);else for(u=0;u<p;u+=1){if(-1===(o=l.indexOf(a[u],g)))return 0;g===o?t=.7:(t=.1," "===s[o-1]&&(t+=.8)),s[o]===e[u]&&(t+=.1),f+=t,g=o+1}return i=.5*(f/c+f/p)/v,a[0]===l[0]&&i<.85&&(i+=.15),i}(n?n.map((function(e){return function r(e,n,t){if(void 0===t&&(t=[]),n){var i=n.indexOf("."),o=n,u=null;-1!==i&&(o=n.slice(0,i),u=n.slice(i+1));var f=e[o];if(null!=f)if(u||"string"!=typeof f&&"number"!=typeof f)if(Array.isArray(f))for(var s=0,l=f.length;s<l;s+=1)r(f[s],u,t);else r(f,u||null,t);else t.push(f.toString())}else t.push(JSON.stringify(e));return t}(r,e).join(" ")})).join(" "):JSON.stringify(r),e,t);return{item:r,score:i}})).filter((function(r){return r.score>0}))}(r,e,n,t).sort((function(r,e){return e.score-r.score})).map((function(r){return r.item}))};
//# sourceMappingURL=seaq.cjs.production.min.js.map