cld3-asm
Version:
WebAssembly based Javascript bindings for google compact language detector 3
40 lines (33 loc) • 1.27 kB
text/typescript
import { getModuleLoader } from 'emscripten-wasm-loader';
import { CldAsmModule } from './cldAsmModule';
import { CldFactory } from './cldFactory';
import { cldLoader } from './cldLoader';
import { log } from './util/logger';
//imports MODULARIZED emscripten preamble
import * as runtime from './lib/node/cld3';
/**
* Load, initialize wasm binary to use actual cld wasm instances.
*
* @param [InitOptions] Options to initialize cld3 wasm binary.
* @param {number} [InitOptions.timeout] - timeout to wait wasm binary compilation & load.
* @param {string | object} [InitOptions.locateBinary] - custom resolution logic for wasm binary. (not supported)
* It could be either remote endpoint url, or loader-returned object for bundler. Check examples/browser_* for references.
*
* @returns {() => Promise<CldFactory>} Function to load module
*/
const loadModule = async (
initOptions: Partial<{
timeout: number;
}> = {}
) => {
const { timeout } = initOptions;
log(`loadModule: loading cld3 wasm binary`, { initOptions });
const moduleLoader = await getModuleLoader<CldFactory, CldAsmModule>(
(runtime: CldAsmModule) => cldLoader(runtime),
runtime,
undefined,
{ timeout }
);
return moduleLoader();
};
export { loadModule };