Buckets:
ktongue/docker_container / CAD_kevin /frontend /node_modules /axios /lib /helpers /composeSignals.js
| import CanceledError from "../cancel/CanceledError.js"; | |
| import AxiosError from "../core/AxiosError.js"; | |
| import utils from '../utils.js'; | |
| const composeSignals = (signals, timeout) => { | |
| const {length} = (signals = signals ? signals.filter(Boolean) : []); | |
| if (timeout || length) { | |
| let controller = new AbortController(); | |
| let aborted; | |
| const onabort = function (reason) { | |
| if (!aborted) { | |
| aborted = true; | |
| unsubscribe(); | |
| const err = reason instanceof Error ? reason : this.reason; | |
| controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err)); | |
| } | |
| } | |
| let timer = timeout && setTimeout(() => { | |
| timer = null; | |
| onabort(new AxiosError(`timeout of ${timeout}ms exceeded`, AxiosError.ETIMEDOUT)) | |
| }, timeout) | |
| const unsubscribe = () => { | |
| if (signals) { | |
| timer && clearTimeout(timer); | |
| timer = null; | |
| signals.forEach(signal => { | |
| signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort); | |
| }); | |
| signals = null; | |
| } | |
| } | |
| signals.forEach((signal) => signal.addEventListener('abort', onabort)); | |
| const {signal} = controller; | |
| signal.unsubscribe = () => utils.asap(unsubscribe); | |
| return signal; | |
| } | |
| } | |
| export default composeSignals; | |
Xet Storage Details
- Size:
- 1.36 kB
- Xet hash:
- ec5b0bec38756f9991bb76cd0273d69082dbb7b80217b05e9b86f25b8ea75ef4
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.