| 123456789101112131415161718192021222324252627282930313233343536 | // @flow
// Script expects to find rnnoise webassembly binary in the same public path root, otherwise it won't load
// During the build phase this needs to be taken care of manually
import rnnoiseWasmInit from 'rnnoise-wasm';
import RnnoiseProcessor from './RnnoiseProcessor';
export { RNNOISE_SAMPLE_LENGTH } from './RnnoiseProcessor';
export type { RnnoiseProcessor };
let rnnoiseWasmInterface;
let initializePromise;
/**
 * Creates a new instance of RnnoiseProcessor.
 *
 * @returns {Promise<RnnoiseProcessor>}
 */
export function createRnnoiseProcessor() {
    if (!initializePromise) {
        initializePromise = new Promise((resolve, reject) => {
            rnnoiseWasmInterface = rnnoiseWasmInit({
                onRuntimeInitialized() {
                    resolve();
                },
                onAbort(reason) {
                    reject(reason);
                }
            });
        });
    }
    return initializePromise.then(
        () => new RnnoiseProcessor(rnnoiseWasmInterface)
    );
}
 |