{"version":3,"file":"ajax.mjs","sources":["../../../../packages/utils/ajax.ts"],"sourcesContent":["import { ajaxSign } from './sign'\nexport interface AjaxOptions {\n\taction: string\n\tdata?: object\n\theaders?: object\n\twithCredentials?: boolean\n\tfilename: string\n\tonError: (error: any) => void\n\tonSuccess: (response: any) => void\n\tonProgress: (proObj) => void\n}\nfunction getBody(xhr) {\n\tconst text = xhr.responseText || xhr.response\n\tif (!text) {\n\t\treturn text\n\t}\n\n\ttry {\n\t\treturn JSON.parse(text)\n\t} catch (e) {\n\t\treturn text\n\t}\n}\nexport const ajax = (option: AjaxOptions) => {\n\tif (typeof XMLHttpRequest === 'undefined') {\n\t\treturn\n\t}\n\n\tconst xhr = new XMLHttpRequest()\n\n\tconst action = option.action\n\txhr.responseType = 'blob'\n\txhr.onerror = function error(e) {\n\t\toption.onError(e)\n\t}\n\n\txhr.onprogress = function progress(e) {\n\t\tif (e.lengthComputable) {\n\t\t\tconst percentComplete = Math.round((e.loaded / e.total) * 100)\n\t\t\toption.onProgress({\n\t\t\t\tpercent: percentComplete,\n\t\t\t\tloaded: e.loaded,\n\t\t\t\ttotal: e.total\n\t\t\t})\n\t\t}\n\t}\n\n\txhr.onload = function onload() {\n\t\tif (xhr.status < 200 || xhr.status >= 300) {\n\t\t\treturn option.onError('response' in xhr ? xhr.response : getBody(xhr))\n\t\t}\n\n\t\toption.onSuccess('response' in xhr ? xhr.response : getBody(xhr))\n\t}\n\n\txhr.open('post', action, true)\n\txhr.setRequestHeader('content-type', 'application/json; charset=UTF-8')\n\n\tif (option.withCredentials && 'withCredentials' in xhr) {\n\t\txhr.withCredentials = true\n\t}\n\n\tconst headers = option.headers || {}\n\n\tfor (const item in headers) {\n\t\tif (Object.prototype.hasOwnProperty.call(headers, item) && headers[item] !== null) {\n\t\t\txhr.setRequestHeader(item, headers[item])\n\t\t}\n\t}\n\n\tconst data: any = option.data || {}\n\tdata.filename = option.filename\n\n\tajaxSign(action, data, xhr)\n\n\txhr.send(JSON.stringify(data))\n\treturn xhr\n}\n"],"names":[],"mappings":"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"}