9 lines
757 B
TypeScript
9 lines
757 B
TypeScript
import {digestWorkerSource} from './digest-worker-source.ts';
|
|
// Dedicated to one request. Host terminates on success/failure/abort; no storage, model or credentials here.
|
|
const scope=globalThis as unknown as {onmessage:((event:MessageEvent)=>void)|null;postMessage(value:unknown):void};
|
|
let accepted=false;
|
|
scope.onmessage=event=>{
|
|
const request=event.data;if(accepted||!request||request.version!==1||!Number.isSafeInteger(request.id)||request.id<1||!(request.bytes instanceof Blob))return;accepted=true;
|
|
void digestWorkerSource(request.bytes).then(sha256=>scope.postMessage({version:1,id:request.id,byteLength:request.bytes.size,sha256}),()=>scope.postMessage({version:1,id:request.id,byteLength:request.bytes.size,error:'digest_worker_failed'}));
|
|
};
|