@microblink/blinkid-in-browser-sdk
Version:
A simple ID scanning library for WebAssembly-enabled browsers.
33 lines (30 loc) • 841 B
text/typescript
/**
* Copyright (c) Microblink Ltd. All rights reserved.
*/
export function convertEmscriptenStatusToProgress( emStatus: string ): number
{
// roughly based on https://github.com/emscripten-core/emscripten/blob/1.39.11/src/shell.html#L1259
if ( emStatus === "Running..." )
{
// download has completed, wasm execution has started
return 100;
}
else if ( emStatus.length === 0 )
{
// empty message
return 0;
}
const regExp = RegExp( /([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/ );
const match = regExp.exec( emStatus );
if ( match )
{
const currentValue = parseInt( match[ 2 ] );
const maxValue = parseInt( match[ 4 ] );
return currentValue * 100 / maxValue;
}
else
{
// Cannot parse emscripten status
return NaN;
}
}