Port message manager to emulate a request-response style communication through ports, a'la Http.send ResponseHandler request.
Porter model, used to keep track of response handlers.
Module messages.
Update port model based on local messages. Returns a new port model and a local command that must be mapped to the parent message.
Subscribe to messages from ports.
Turns the request's specialized response type into a different type.
Chains two requests, and then combines their two responses into one new c.
Chains three requests, and then combines their three responses into one new c.
Combines together multiple Porter.Multi requests
Opaque type for porter requests, where we can either:
outputRes. See request.outputRes without doing any more requests. See succeed.Creates a new request, specifying:
req typeres type into a specialized a.A simpler version of request where the end result is not converted into a specialized type, but left the same.
Succeed with an outputRes value without making an actual request. This is especially useful inside andThen, where the request chain may need to shortcircuit because of the return value (e.g. should not update a record that hasn't been found).
Actually sends a (chain of) request(s).
A final handler needs to be specified that turns the final result into a msg.
This msg will be called with the final resulting a once the final response has returned.
Porter configuration, containing: