UNPKG

@snap/camera-kit

Version:
20 lines 961 B
import { copyDefinedProperties } from "../common/copyDefinedProperties"; import { isString } from "../common/typeguards"; const sleep = (millis) => new Promise((resolve) => setTimeout(resolve, millis)); const defaultOptions = { createError: (request) => { const destination = isString(request) ? `for ${request}` : request instanceof Request ? `for ${request.url}` : ""; return new Error(`Request ${destination} timed out by client timeout handler.`); }, timeout: 30 * 1000, }; export const createTimeoutHandler = (options = {}) => { const definedOptions = copyDefinedProperties(options); const { createError, timeout } = Object.assign(Object.assign({}, defaultOptions), definedOptions); return (next) => (req, meta) => Promise.race([next(req, meta), sleep(timeout).then(() => Promise.reject(createError(req, meta)))]); }; //# sourceMappingURL=timeoutHandler.js.map