UNPKG

fabric

Version:

Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.

1 lines 2.65 kB
{"version":3,"file":"dom_request.min.mjs","sources":["../../../../src/util/internals/dom_request.ts"],"sourcesContent":["import { getFabricWindow } from '../../env';\nimport { noop } from '../../constants';\nimport type { Abortable } from '../../typedefs';\nimport { SignalAbortedError } from './console';\n\ntype requestOptions = Abortable & {\n onComplete?: (xhr: XMLHttpRequest) => void;\n};\n\n/**\n * Cross-browser abstraction for sending XMLHttpRequest\n * @deprecated this has to go away, we can use a modern browser method to do the same.\n * @param {String} url URL to send XMLHttpRequest to\n * @param {Object} [options] Options object\n * @param {AbortSignal} [options.signal] handle aborting, see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal\n * @param {Function} options.onComplete Callback to invoke when request is completed\n * @return {XMLHttpRequest} request\n */\n\nexport function request(url: string, options: requestOptions = {}) {\n const onComplete = options.onComplete || noop,\n xhr = new (getFabricWindow().XMLHttpRequest)(),\n signal = options.signal,\n abort = function () {\n xhr.abort();\n },\n removeListener = function () {\n signal && signal.removeEventListener('abort', abort);\n xhr.onerror = xhr.ontimeout = noop;\n };\n\n if (signal && signal.aborted) {\n throw new SignalAbortedError('request');\n } else if (signal) {\n signal.addEventListener('abort', abort, { once: true });\n }\n\n /** @ignore */\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n removeListener();\n onComplete(xhr);\n xhr.onreadystatechange = noop;\n }\n };\n\n xhr.onerror = xhr.ontimeout = removeListener;\n\n xhr.open('get', url, true);\n\n xhr.send();\n return xhr;\n}\n"],"names":["request","url","options","arguments","length","undefined","onComplete","noop","xhr","getFabricWindow","signal","abort","removeListener","removeEventListener","onerror","ontimeout","aborted","SignalAbortedError","addEventListener","once","onreadystatechange","readyState","open","send"],"mappings":"gKAmBO,SAASA,EAAQC,GAA2C,IAA9BC,EAAuBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EAC7D,MAAMG,EAAaJ,EAAQI,YAAcC,EACvCC,EAAM,IAAKC,IAAgC,gBAC3CC,EAASR,EAAQQ,OACjBC,EAAQ,WACNH,EAAIG,OACL,EACDC,EAAiB,WACfF,GAAUA,EAAOG,oBAAoB,QAASF,GAC9CH,EAAIM,QAAUN,EAAIO,UAAYR,GAGlC,GAAIG,GAAUA,EAAOM,QACnB,MAAM,IAAIC,EAAmB,WAmB/B,OAlBWP,GACTA,EAAOQ,iBAAiB,QAASP,EAAO,CAAEQ,MAAM,IAIlDX,EAAIY,mBAAqB,WACA,IAAnBZ,EAAIa,aACNT,IACAN,EAAWE,GACXA,EAAIY,mBAAqBb,IAI7BC,EAAIM,QAAUN,EAAIO,UAAYH,EAE9BJ,EAAIc,KAAK,MAAOrB,GAAK,GAErBO,EAAIe,OACGf,CACT"}