tinybase
Version:
A reactive data store and sync engine.
2 lines (1 loc) • 1.72 kB
JavaScript
const e=(e,t="",n)=>e.split(t,n),t=globalThis,n=Math,r=n.max,o=n.floor,a=e=>null==e,c=(e,t)=>e.map(t),s=(e,t,n)=>e.reduce(t,n),l=Object,i=l.entries,u=e=>new Map(e),p=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),d=u(c(p,((e,t)=>[e,t]))),f=e=>p[63&e],m=(e,t)=>{return n=d,r=e[t],n?.get(r)??0;var n,r},g=t.crypto?e=>t.crypto.getRandomValues(e):e=>c(e,(()=>o(256*n.random()))),w=(e=16)=>s(g(new Uint8Array(e)),((e,t)=>e+f(t)),""),y=JSON.stringify,h=new t.TextEncoder,v=e=>{let t=2166136261;var n;return n=e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)},h.encode(e).forEach(n),t>>>0},x=(e,t)=>(e^t)>>>0,E=e=>s(i(e),((e,[t,n])=>x(e,M(t,n)^M(t,0))),0),M=(e,t)=>v(e+":"+t),b=(e,t)=>v(y(e??null,((e,t)=>t instanceof Map?l.fromEntries([...t]):t))+":"+t),O=b,T=M,j=E,A=M,D=e=>s(i(e),((e,[t,n])=>x(e,M(t,n))),0),J=M,N=D,R=2**36,S=2**30,U=2**24,V=2**18,k=4096,q=e=>{const t=v(e);return f(t/U)+f(t/V)+f(t/k)+f(t/64)+f(t)},z=(e,t=Date.now)=>{let n=0,o=-1;const c=(l=q,i=()=>w(5),a(s=e)?i?.():l(s));var s,l,i;const u=e=>{const c=n,[s,l]=a(e)||""==e?[0,0]:d(e);n=r(c,s,t()),o=n==c?n==s?r(o,l):o:n==s?l:-1},p=(e,t,n)=>f(e/R)+f(e/S)+f(e/U)+f(e/V)+f(e/k)+f(e/64)+f(e)+f(t/V)+f(t/k)+f(t/64)+f(t)+(a(n)?c:q(n)),d=e=>[m(e,0)*R+m(e,1)*S+m(e,2)*U+m(e,3)*V+m(e,4)*k+64*m(e,5)+m(e,6),m(e,7)*V+m(e,8)*k+64*m(e,9)+m(e,10),e.slice(11)];return[()=>(u(),p(n,++o)),u,p,d,()=>n,()=>o,()=>c]},B=(e,t)=>(e??0)<(t??0)?-1:1;export{x as addOrRemoveHash,B as defaultSorter,O as getCellHash,T as getCellInRowHash,v as getHash,z as getHlcFunctions,j as getRowHash,A as getRowInTableHash,D as getTableHash,J as getTableInTablesHash,N as getTablesHash,w as getUniqueId,b as getValueHash,M as getValueInValuesHash,E as getValuesHash};