recorder-audio-worklet
Version:
This module provides a loader for the RecorderAudioWorkletProcessor and the corresponding RecorderAudioWorkletNode.
16 lines (12 loc) • 718 B
text/typescript
import type { generateUniqueNumber as generateUniqueNumberFunction } from 'fast-unique-numbers';
export const createPostMessageFactory = (generateUniqueNumber: typeof generateUniqueNumberFunction) => {
return (ongoingRequests: Map<number, { reject: Function; resolve: Function }>, port: MessagePort) => {
return (message: { method: string; params?: object }, transferables: Transferable[] = []): Promise<void> => {
return new Promise((resolve, reject) => {
const id = generateUniqueNumber(ongoingRequests);
ongoingRequests.set(id, { reject, resolve });
port.postMessage({ id, ...message }, transferables);
});
};
};
};