fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
1 lines • 3.36 kB
Source Map (JSON)
{"version":3,"file":"dom_request.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","XMLHttpRequest","signal","abort","removeListener","removeEventListener","onerror","ontimeout","aborted","SignalAbortedError","addEventListener","once","onreadystatechange","readyState","open","send"],"mappings":";;;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASA,OAAOA,CAACC,GAAW,EAAgC;AAAA,EAAA,IAA9BC,OAAuB,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAC/D,EAAA,MAAMG,UAAU,GAAGJ,OAAO,CAACI,UAAU,IAAIC,IAAI;IAC3CC,GAAG,GAAG,KAAKC,eAAe,EAAE,CAACC,cAAc,GAAG;IAC9CC,MAAM,GAAGT,OAAO,CAACS,MAAM;IACvBC,KAAK,GAAG,YAAY;MAClBJ,GAAG,CAACI,KAAK,EAAE,CAAA;KACZ;IACDC,cAAc,GAAG,YAAY;MAC3BF,MAAM,IAAIA,MAAM,CAACG,mBAAmB,CAAC,OAAO,EAAEF,KAAK,CAAC,CAAA;AACpDJ,MAAAA,GAAG,CAACO,OAAO,GAAGP,GAAG,CAACQ,SAAS,GAAGT,IAAI,CAAA;KACnC,CAAA;AAEH,EAAA,IAAII,MAAM,IAAIA,MAAM,CAACM,OAAO,EAAE;AAC5B,IAAA,MAAM,IAAIC,kBAAkB,CAAC,SAAS,CAAC,CAAA;GACxC,MAAM,IAAIP,MAAM,EAAE;AACjBA,IAAAA,MAAM,CAACQ,gBAAgB,CAAC,OAAO,EAAEP,KAAK,EAAE;AAAEQ,MAAAA,IAAI,EAAE,IAAA;AAAK,KAAC,CAAC,CAAA;AACzD,GAAA;;AAEA;EACAZ,GAAG,CAACa,kBAAkB,GAAG,YAAY;AACnC,IAAA,IAAIb,GAAG,CAACc,UAAU,KAAK,CAAC,EAAE;AACxBT,MAAAA,cAAc,EAAE,CAAA;MAChBP,UAAU,CAACE,GAAG,CAAC,CAAA;MACfA,GAAG,CAACa,kBAAkB,GAAGd,IAAI,CAAA;AAC/B,KAAA;GACD,CAAA;AAEDC,EAAAA,GAAG,CAACO,OAAO,GAAGP,GAAG,CAACQ,SAAS,GAAGH,cAAc,CAAA;EAE5CL,GAAG,CAACe,IAAI,CAAC,KAAK,EAAEtB,GAAG,EAAE,IAAI,CAAC,CAAA;EAE1BO,GAAG,CAACgB,IAAI,EAAE,CAAA;AACV,EAAA,OAAOhB,GAAG,CAAA;AACZ;;;;"}