Skip to content

Commit ba53bd3

Browse files
committed
feat: overwrite baseHasher when AssemblyScriptSha256Hasher is instantiated
1 parent 2b53660 commit ba53bd3

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

packages/as-sha256/src/index.ts

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -148,13 +148,14 @@ class BaseAssemblyScriptSha256Hasher {
148148
}
149149
}
150150

151-
const baseHasher = new BaseAssemblyScriptSha256Hasher(false);
152-
153-
const digest = baseHasher.digest.bind(baseHasher);
154-
const digest64 = baseHasher.digest64.bind(baseHasher);
155-
const digest2Bytes32 = baseHasher.digest2Bytes32.bind(baseHasher);
156-
const digest64HashObjects = baseHasher.digest64HashObjects.bind(baseHasher);
157-
const digest64HashObjectsInto = baseHasher.digest64HashObjectsInto.bind(baseHasher);
151+
// If an instance of AssemblyScriptSha256Hasher is created it will overwrite this instance and the
152+
// exported free functions. These are here for consumers that do not use the batch hashing methods
153+
let baseHasher = new BaseAssemblyScriptSha256Hasher(false);
154+
let digest = baseHasher.digest.bind(baseHasher);
155+
let digest64 = baseHasher.digest64.bind(baseHasher);
156+
let digest2Bytes32 = baseHasher.digest2Bytes32.bind(baseHasher);
157+
let digest64HashObjects = baseHasher.digest64HashObjects.bind(baseHasher);
158+
let digest64HashObjectsInto = baseHasher.digest64HashObjectsInto.bind(baseHasher);
158159

159160
export {digest, digest64, digest2Bytes32, digest64HashObjects, digest64HashObjectsInto};
160161

@@ -389,6 +390,13 @@ export class AssemblyScriptSha256Hasher extends BaseAssemblyScriptSha256Hasher {
389390
protected initializeInstance(): void {
390391
this.hasSimd = this.simdEnabled();
391392
super.initializeInstance();
393+
// eslint-disable-next-line @typescript-eslint/no-this-alias
394+
baseHasher = this;
395+
digest = this.digest.bind(this);
396+
digest64 = this.digest64.bind(this);
397+
digest2Bytes32 = this.digest2Bytes32.bind(this);
398+
digest64HashObjects = this.digest64HashObjects.bind(this);
399+
digest64HashObjectsInto = this.digest64HashObjectsInto.bind(this);
392400
}
393401

394402
/**

0 commit comments

Comments
 (0)