UNPKG

gnablib

Version:

A lean, zero dependency library to provide a useful base for your project.

2 lines 593 B
/*! Copyright 2023-2025 the gnablib contributors MPL-1.1 */ const s=4294967295;export class Adler32{constructor(){this._modSpace=s,this._s1=1,this._s2=0,this.size=4}mod(){this._s1%=65521,this._s2%=65521,this._modSpace=s}write(s){let t=0;for(;s.length>this._modSpace;){for(;t<this._modSpace;t++)this._s1+=s[t],this._s2+=this._s1;this.mod()}for(this._modSpace-=s.length-t;t<s.length;t++)this._s1+=s[t],this._s2+=this._s1}sum32(){return this._modSpace<s&&this.mod(),(this._s2<<16|this._s1)>>>0}sum(){return this._modSpace<s&&this.mod(),Uint8Array.of(this._s2>>>8,this._s2,this._s1>>>8,this._s1)}}