UNPKG

svga-web

Version:

A SVGA player for modern Web.

43 lines (35 loc) 906 B
export default class Downloader { request: XMLHttpRequest | null constructor() { this.request = null } get(svgaResourceLink: string): Promise<ArrayBuffer> { if (!svgaResourceLink) { throw new Error('download link undefined') } return new Promise((resolve, reject) => { const request = new XMLHttpRequest() request.open('GET', svgaResourceLink, true) request.responseType = 'arraybuffer' request.onloadend = () => { if ( request.response && (request.status === 200 || request.status === 304) ) { resolve(request.response) } else { reject(request) } } request.onerror = () => reject(request.response) request.send() this.request = request }) } cancel(): void { this.request?.abort() } destroy(): void { this.request?.abort() } }