(worker: WorkerType, method?: string)
| 116 | } |
| 117 | |
| 118 | export function createProxyFunction<Args extends any[], ReturnType>(worker: WorkerType, method?: string) { |
| 119 | return ((...rawArgs: Args) => { |
| 120 | const uid = nextJobUID++ |
| 121 | const { args, transferables } = prepareArguments(rawArgs) |
| 122 | const runMessage: MasterJobRunMessage = { |
| 123 | type: MasterMessageType.run, |
| 124 | uid, |
| 125 | method, |
| 126 | args |
| 127 | } |
| 128 | |
| 129 | debugMessages("Sending command to run function to worker:", runMessage) |
| 130 | |
| 131 | try { |
| 132 | worker.postMessage(runMessage, transferables) |
| 133 | } catch (error) { |
| 134 | return ObservablePromise.from(Promise.reject(error)) |
| 135 | } |
| 136 | |
| 137 | return ObservablePromise.from(multicast(createObservableForJob<ReturnType>(worker, uid))) |
| 138 | }) as any as ProxyableFunction<Args, ReturnType> |
| 139 | } |
| 140 | |
| 141 | export function createProxyModule<Methods extends ModuleMethods>( |
| 142 | worker: WorkerType, |
no test coverage detected