UNPKG

lingoe

Version:
1 lines 2.22 kB
var Lingoe=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t){class n{constructor(){this.end=!1,this.nodes=[]}}e.exports=class{constructor(){this.root=new n}insert(e){e=e.toLowerCase();let t=this.root;for(let r=0;r<e.length;r++)t.nodes[e[r]]||(t.nodes[e[r]]=new n),t=t.nodes[e[r]];t.end=!0}contains(e){e=e.toLowerCase();let t=this.root;for(let n=0;n<e.length;n++){if(!t.nodes[e[n]])return!1;t=t.nodes[e[n]]}return t&&t.end}prefixes(e){e=e.toLowerCase();let t=[],n=(e,r)=>{e.end&&t.push(r);for(let t in e.nodes)n(e.nodes[t],r+t)},r="",o=this.root;for(let n=0;n<e.length;n++){if(r+=e[n],!o.nodes[e[n]])return t;o=o.nodes[e[n]]}return n(o,r),t}words(){let e=[],t=(this.root,(n,r)=>{n.end&&e.push(r);for(let e in n.nodes)t(n.nodes[e],r+e)});return t(this.root,""),e}}},function(e,t){function n(e,t){if(!e.length)return t.length;if(!t.length)return e.length;if(e.length>t.length){let n=e;e=t,t=n}e=e.toLowerCase(),t=t.toLowerCase();let n=Array(e.length+1);for(let t=0;t<=e.length;t++)n[t]=t;for(let r=1;r<=t.length;r++){let o=r;for(let l=1;l<=e.length;l++){let i=e[l-1]===t[r-1]?n[l-1]:Math.min(n[l]+1,o+1,n[l-1]+1);n[l-1]=o,o=i}n[e.length]=o}return n[e.length]}e.exports={distance:n,ratio:function(e,t){return 1-n(e,t)/Math.max(e.length,t.length)}}},function(e,t,n){const{distance:r,ratio:o}=n(1);e.exports={Trie:n(0),distance:r,ratio:o}}]);