vue-auth3
Version:
<p align="center"> <img src="./docs/public/icon.svg" width="180px"> </p>
57 lines (56 loc) • 1.44 kB
JavaScript
import {
defineHttpDriver
} from "../../chunk-JUGBTNJP.mjs";
import {
__async,
__spreadProps,
__spreadValues
} from "../../chunk-MI2N2CU6.mjs";
// src/drivers/http/fetch.ts
var toString = Object.prototype.toString;
function type(obj) {
return toString.call(obj).slice(8, -1);
}
var parseJSON = (str) => {
try {
return JSON.parse(str);
} catch (e) {
return str;
}
};
var fetch_default = defineHttpDriver({
request(config) {
var _a;
return fetch((_a = config.url) != null ? _a : "/", __spreadProps(__spreadValues({}, config), {
body: typeof config.data === "object" && type(config.data) !== "FormData" ? new URLSearchParams(config.data) : config.data
})).then((res) => __async(this, null, function* () {
let data;
switch (config.responseType) {
case "arraybuffer":
data = yield res.arrayBuffer();
break;
case "blob":
data = yield res.blob();
break;
case "json":
data = yield res.json();
break;
case "text":
data = yield res.text();
break;
default:
data = parseJSON(yield res.text());
}
return {
data,
headers: Object.fromEntries(Array.from(res.headers.entries())),
status: res.status,
statusText: res.statusText
};
}));
}
});
export {
fetch_default as default
};
//# sourceMappingURL=fetch.mjs.map