import { Actual } from "base/Actual"; import { Message } from "base/Message"; import { MaybeMessage } from "types/MessageType"; /** * A message that emits values received from * any of its bound messages * * @url https://silentium.pw/article/any-component/view */ export function Any(...messages: MaybeMessage[]) { const $messages = messages.map(Actual); return Message(function AnyImpl(resolve, reject) { $messages.forEach(function anyMessagesSub(message) { message.catch(reject); message.then(resolve); }); }); }