be99abe969cdd4061e5f2cb089286fee.json 9.15 KB
{"ast":null,"code":"function getError(option, xhr) {\n  var msg = \"cannot \".concat(option.method, \" \").concat(option.action, \" \").concat(xhr.status, \"'\");\n  var err = new Error(msg);\n  err.status = xhr.status;\n  err.method = option.method;\n  err.url = option.action;\n  return err;\n}\n\nfunction getBody(xhr) {\n  var text = xhr.responseText || xhr.response;\n\n  if (!text) {\n    return text;\n  }\n\n  try {\n    return JSON.parse(text);\n  } catch (e) {\n    return text;\n  }\n}\n\nexport default function upload(option) {\n  // eslint-disable-next-line no-undef\n  var xhr = new XMLHttpRequest();\n\n  if (option.onProgress && xhr.upload) {\n    xhr.upload.onprogress = function progress(e) {\n      if (e.total > 0) {\n        e.percent = e.loaded / e.total * 100;\n      }\n\n      option.onProgress(e);\n    };\n  } // eslint-disable-next-line no-undef\n\n\n  var formData = new FormData();\n\n  if (option.data) {\n    Object.keys(option.data).forEach(function (key) {\n      var value = option.data[key]; // support key-value array data\n\n      if (Array.isArray(value)) {\n        value.forEach(function (item) {\n          // { list: [ 11, 22 ] }\n          // formData.append('list[]', 11);\n          formData.append(\"\".concat(key, \"[]\"), item);\n        });\n        return;\n      }\n\n      formData.append(key, option.data[key]);\n    });\n  } // eslint-disable-next-line no-undef\n\n\n  if (option.file instanceof Blob) {\n    formData.append(option.filename, option.file, option.file.name);\n  } else {\n    formData.append(option.filename, option.file);\n  }\n\n  xhr.onerror = function error(e) {\n    option.onError(e);\n  };\n\n  xhr.onload = function onload() {\n    // allow success when 2xx status\n    // see https://github.com/react-component/upload/issues/34\n    if (xhr.status < 200 || xhr.status >= 300) {\n      return option.onError(getError(option, xhr), getBody(xhr));\n    }\n\n    return option.onSuccess(getBody(xhr), xhr);\n  };\n\n  xhr.open(option.method, option.action, true); // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n\n  if (option.withCredentials && 'withCredentials' in xhr) {\n    xhr.withCredentials = true;\n  }\n\n  var headers = option.headers || {}; // when set headers['X-Requested-With'] = null , can close default XHR header\n  // see https://github.com/react-component/upload/issues/33\n\n  if (headers['X-Requested-With'] !== null) {\n    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n  }\n\n  Object.keys(headers).forEach(function (h) {\n    if (headers[h] !== null) {\n      xhr.setRequestHeader(h, headers[h]);\n    }\n  });\n  xhr.send(formData);\n  return {\n    abort: function abort() {\n      xhr.abort();\n    }\n  };\n}","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-upload/es/request.js"],"names":["getError","option","xhr","msg","concat","method","action","status","err","Error","url","getBody","text","responseText","response","JSON","parse","e","upload","XMLHttpRequest","onProgress","onprogress","progress","total","percent","loaded","formData","FormData","data","Object","keys","forEach","key","value","Array","isArray","item","append","file","Blob","filename","name","onerror","error","onError","onload","onSuccess","open","withCredentials","headers","setRequestHeader","h","send","abort"],"mappings":"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","sourcesContent":["function getError(option, xhr) {\n  var msg = \"cannot \".concat(option.method, \" \").concat(option.action, \" \").concat(xhr.status, \"'\");\n  var err = new Error(msg);\n  err.status = xhr.status;\n  err.method = option.method;\n  err.url = option.action;\n  return err;\n}\n\nfunction getBody(xhr) {\n  var text = xhr.responseText || xhr.response;\n\n  if (!text) {\n    return text;\n  }\n\n  try {\n    return JSON.parse(text);\n  } catch (e) {\n    return text;\n  }\n}\n\nexport default function upload(option) {\n  // eslint-disable-next-line no-undef\n  var xhr = new XMLHttpRequest();\n\n  if (option.onProgress && xhr.upload) {\n    xhr.upload.onprogress = function progress(e) {\n      if (e.total > 0) {\n        e.percent = e.loaded / e.total * 100;\n      }\n\n      option.onProgress(e);\n    };\n  } // eslint-disable-next-line no-undef\n\n\n  var formData = new FormData();\n\n  if (option.data) {\n    Object.keys(option.data).forEach(function (key) {\n      var value = option.data[key]; // support key-value array data\n\n      if (Array.isArray(value)) {\n        value.forEach(function (item) {\n          // { list: [ 11, 22 ] }\n          // formData.append('list[]', 11);\n          formData.append(\"\".concat(key, \"[]\"), item);\n        });\n        return;\n      }\n\n      formData.append(key, option.data[key]);\n    });\n  } // eslint-disable-next-line no-undef\n\n\n  if (option.file instanceof Blob) {\n    formData.append(option.filename, option.file, option.file.name);\n  } else {\n    formData.append(option.filename, option.file);\n  }\n\n  xhr.onerror = function error(e) {\n    option.onError(e);\n  };\n\n  xhr.onload = function onload() {\n    // allow success when 2xx status\n    // see https://github.com/react-component/upload/issues/34\n    if (xhr.status < 200 || xhr.status >= 300) {\n      return option.onError(getError(option, xhr), getBody(xhr));\n    }\n\n    return option.onSuccess(getBody(xhr), xhr);\n  };\n\n  xhr.open(option.method, option.action, true); // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n\n  if (option.withCredentials && 'withCredentials' in xhr) {\n    xhr.withCredentials = true;\n  }\n\n  var headers = option.headers || {}; // when set headers['X-Requested-With'] = null , can close default XHR header\n  // see https://github.com/react-component/upload/issues/33\n\n  if (headers['X-Requested-With'] !== null) {\n    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n  }\n\n  Object.keys(headers).forEach(function (h) {\n    if (headers[h] !== null) {\n      xhr.setRequestHeader(h, headers[h]);\n    }\n  });\n  xhr.send(formData);\n  return {\n    abort: function abort() {\n      xhr.abort();\n    }\n  };\n}"]},"metadata":{},"sourceType":"module"}