(effect: any, handler: (...payloads: unknown[]) => unknown)
| 842 | : never, |
| 843 | ): Effected<ExcludeEffect<E, Effect<Name>>, R | T>; |
| 844 | terminate(effect: any, handler: (...payloads: unknown[]) => unknown) { |
| 845 | return this.handle(effect, (({ terminate }: any, ...payloads: unknown[]) => { |
| 846 | const it = handler(...payloads); |
| 847 | if (!(it instanceof Effected) && !isGenerator(it)) return terminate(it); |
| 848 | const iterator = it[Symbol.iterator](); |
| 849 | return { |
| 850 | _effectedIterator: true, |
| 851 | next: (...args: [] | [unknown]) => { |
| 852 | const result = iterator.next(...args); |
| 853 | if (result.done) return { done: true, value: terminate(result.value) }; |
| 854 | return result; |
| 855 | }, |
| 856 | }; |
| 857 | }) as never); |
| 858 | } |
| 859 | |
| 860 | /** |
| 861 | * Overwrite the return value of the effected program with a new value. |
no test coverage detected