UNPKG

8.53 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/fetchData.ts"],"names":["AJAXError","message","status","url","name","constructor","Error","makeRequest","requestParameters","xhr","XMLHttpRequest","open","k","headers","hasOwnProperty","setRequestHeader","withCredentials","credentials","getJSON","callback","onerror","statusText","onload","response","data","JSON","parse","err","send","getArrayBuffer","responseType","byteLength","cacheControl","getResponseHeader","expires","sameOrigin","a","window","document","createElement","href","protocol","location","host","transparentPngUrl","getImage","imgData","img","Image","crossOrigin","URL","webkitURL","revokeObjectURL","src","blob","Blob","Uint8Array","type","createObjectURL"],"mappings":"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","sourcesContent":["class AJAXError extends Error {\n private status: number;\n private url: string;\n\n constructor(message: string, status: number, url: string) {\n super(message);\n this.status = status;\n this.url = url;\n\n // work around for https://github.com/Rich-Harris/buble/issues/40\n this.name = this.constructor.name;\n this.message = message;\n }\n\n public toString() {\n return `${this.name}: ${this.message} (${this.status}): ${this.url}`;\n }\n}\n\nfunction makeRequest(requestParameters: any) {\n const xhr = new XMLHttpRequest();\n\n xhr.open('GET', requestParameters.url, true);\n for (const k in requestParameters.headers) {\n if (requestParameters.headers.hasOwnProperty(k)) {\n xhr.setRequestHeader(k, requestParameters.headers[k]);\n }\n }\n xhr.withCredentials = requestParameters.credentials === 'include';\n return xhr;\n}\n\nexport const getJSON = (requestParameters: any, callback: any) => {\n const xhr = makeRequest(requestParameters);\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.onerror = () => {\n callback(new Error(xhr.statusText));\n };\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300 && xhr.response) {\n let data;\n try {\n data = JSON.parse(xhr.response);\n } catch (err) {\n return callback(err);\n }\n callback(null, data);\n } else {\n if (xhr.status === 401) {\n callback(\n new AJAXError(`${xhr.statusText}`, xhr.status, requestParameters.url),\n );\n } else {\n callback(\n new AJAXError(xhr.statusText, xhr.status, requestParameters.url),\n );\n }\n }\n };\n xhr.send();\n return xhr;\n};\n\nexport const getArrayBuffer = (requestParameters: any, callback: any) => {\n const xhr = makeRequest(requestParameters);\n xhr.responseType = 'arraybuffer';\n xhr.onerror = () => {\n callback(new Error(xhr.statusText));\n };\n xhr.onload = () => {\n const response = xhr.response;\n if (response.byteLength === 0 && xhr.status === 200) {\n return callback(new Error('http status 200 returned without content.'));\n }\n if (xhr.status >= 200 && xhr.status < 300 && xhr.response) {\n callback(null, {\n data: response,\n cacheControl: xhr.getResponseHeader('Cache-Control'),\n expires: xhr.getResponseHeader('Expires'),\n });\n } else {\n callback(\n new AJAXError(xhr.statusText, xhr.status, requestParameters.url),\n );\n }\n };\n xhr.send();\n return xhr;\n};\n\nfunction sameOrigin(url: string) {\n const a = window.document.createElement('a');\n a.href = url;\n return (\n a.protocol === window.document.location.protocol &&\n a.host === window.document.location.host\n );\n}\n\nconst transparentPngUrl =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=';\n\nexport const getImage = (requestParameters: any, callback: any) => {\n // request the image with XHR to work around caching issues\n // see https://github.com/mapbox/mapbox-gl-js/issues/1470\n return getArrayBuffer(requestParameters, (err: string, imgData: any) => {\n if (err) {\n callback(err);\n } else if (imgData) {\n const img = new window.Image();\n img.crossOrigin = 'anonymous';\n const URL = window.URL || window.webkitURL;\n img.onload = () => {\n callback(null, img);\n URL.revokeObjectURL(img.src);\n };\n const blob = new window.Blob([new Uint8Array(imgData.data)], {\n type: 'image/png',\n });\n img.src = imgData.data.byteLength\n ? URL.createObjectURL(blob)\n : transparentPngUrl;\n }\n });\n};\n"],"file":"fetchData.js"}
\No newline at end of file