Checks whether the input can be handled by this class. If it cannot handle the input, rejects with an error explaining why.
Input that could potentially be handled.
A promise resolving if the input can be handled, rejecting with an Error if not.
Handles the given input. This may only be called if canHandle did not reject. When unconditionally calling both in sequence, consider handleSafe instead.
Input that needs to be handled.
A promise resolving when handling is finished.
Helper function that first runs canHandle followed by handle. Throws the error of canHandle if the data cannot be handled, or returns the result of handle otherwise.
Input data that will be handled if it can be handled.
A promise resolving if the input can be handled, rejecting with an Error if not.
Generates the necessary
content-range
header if there is range metadata. If the start or end is unknown, a*
will be used instead. According to the RFC, this is incorrect, but is all we can do as long as we don't know the full length of the representation in advance. For the same reason, the total length of the representation will always be*
.This class also adds the content-length header. This will contain either the full size for standard requests, or the size of the slice for range requests.