taro-fetch-polyfill
Version:
W3C fetch() API polyfill for Taro 3+
244 lines (204 loc) • 9.62 kB
JavaScript
import {ReadableStream as $7d367d6ec930520d$re_export$ReadableStream, TransformStream as $7d367d6ec930520d$re_export$TransformStream, WritableStream as $7d367d6ec930520d$re_export$WritableStream} from "web-streams-polyfill";
import $7d367d6ec930520d$import$6e3e14bf3384a560$2e2bcd8739ae039 from "miniprogram-formdata";
import $QdH60$miniprogramblob from "miniprogram-blob";
import $d8adb5a05c59328c$import$4ed7dce669f1b628$2e2bcd8739ae039 from "@ungap/url-search-params";
import {request as $QdH60$request} from "@tarojs/taro";
function $parcel$export(e, n, v, s) {
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
}
var $4b2a846c1a55ad0e$exports = {};
$parcel$export($4b2a846c1a55ad0e$exports, "Headers", function () { return $4b2a846c1a55ad0e$export$79b704688b15c0f4; });
const $4b2a846c1a55ad0e$var$store = new WeakMap();
class $4b2a846c1a55ad0e$export$79b704688b15c0f4 {
constructor(init){
if (!init) return;
init = init instanceof $4b2a846c1a55ad0e$export$79b704688b15c0f4 ? [
...init
] : init instanceof Array ? init : Object.entries(init);
for (const [key, value] of init)this.append(key, value);
}
append(name, value) {
const map = $4b2a846c1a55ad0e$var$store.get(this) || {};
(map[name] ||= []).push(value);
$4b2a846c1a55ad0e$var$store.set(this, map);
}
set(name, value) {
const map = $4b2a846c1a55ad0e$var$store.get(this) || {};
map[name] = [
value
];
$4b2a846c1a55ad0e$var$store.set(this, map);
}
get(name) {
return $4b2a846c1a55ad0e$var$store.get(this)?.[name]?.join() ?? null;
}
has(name) {
return this.get(name) != null;
}
delete(name) {
const map = $4b2a846c1a55ad0e$var$store.get(this) || {};
delete map[name];
}
*[Symbol.iterator]() {
for (const [key, value] of Object.entries($4b2a846c1a55ad0e$var$store.get(this) || {}))yield [
key,
value?.join()
];
}
entries() {
return this[Symbol.iterator]();
}
*keys() {
yield* Object.keys($4b2a846c1a55ad0e$var$store.get(this) || {});
}
*values() {
for (const value of Object.values($4b2a846c1a55ad0e$var$store.get(this) || {}))yield value?.join();
}
forEach(callbackfn, thisArg) {
for (const [key, value] of this)callbackfn.call(thisArg, value, key, this);
}
getSetCookie() {
return $4b2a846c1a55ad0e$var$store.get(this)?.['Set-Cookie'] ?? [];
}
}
var $7d367d6ec930520d$exports = {};
$parcel$export($7d367d6ec930520d$exports, "Body", function () { return $7d367d6ec930520d$export$4b2c32e08f77ff18; });
$parcel$export($7d367d6ec930520d$exports, "FormData", function () { return $7d367d6ec930520d$import$6e3e14bf3384a560$2e2bcd8739ae039; });
$parcel$export($7d367d6ec930520d$exports, "ReadableStream", function () { return $7d367d6ec930520d$re_export$ReadableStream; });
$parcel$export($7d367d6ec930520d$exports, "TransformStream", function () { return $7d367d6ec930520d$re_export$TransformStream; });
$parcel$export($7d367d6ec930520d$exports, "WritableStream", function () { return $7d367d6ec930520d$re_export$WritableStream; });
var $81a6c09b57327804$exports = {};
$parcel$export($81a6c09b57327804$exports, "Blob", function () { return $81a6c09b57327804$export$3b660928c86ff55c; });
class $81a6c09b57327804$export$3b660928c86ff55c extends (0, $QdH60$miniprogramblob) {
async bytes() {
const buffer = await this.arrayBuffer();
return new Uint8Array(buffer);
}
slice(start, end, contentType) {
const blob = super.slice(start, end, contentType);
return Object.setPrototypeOf(blob, $81a6c09b57327804$export$3b660928c86ff55c.prototype);
}
stream() {
return new (0, $7d367d6ec930520d$re_export$ReadableStream)({
start: async (controller)=>{
const bytes = await this.bytes();
for(let offset = 0; offset < bytes.length; offset += 1024){
const chunk = bytes.slice(offset, offset + 1024);
controller.enqueue(chunk);
}
controller.close();
}
});
}
}
class $7d367d6ec930520d$export$4b2c32e08f77ff18 {
async bytes() {
const chunks = [], reader = this.body?.getReader();
if (reader) while(true){
const { done: done, value: value } = await reader.read();
if (done) break;
chunks.push(...value);
}
return new Uint8Array(chunks);
}
async arrayBuffer() {
return (await this.bytes()).buffer;
}
async blob() {
return new (0, $81a6c09b57327804$export$3b660928c86ff55c)([
await this.arrayBuffer()
]);
}
async text() {
const data = await this.blob();
return data.text();
}
async json() {
const text = await this.text();
return JSON.parse(text);
}
/**
* @deprecated 尚未实现内部逻辑
*/ async formData() {
return new (0, $7d367d6ec930520d$import$6e3e14bf3384a560$2e2bcd8739ae039)();
}
constructor(){
this.body = null;
this.bodyUsed = false;
}
}
var $d8e2d459cef7e802$exports = {};
$parcel$export($d8e2d459cef7e802$exports, "Request", function () { return $d8e2d459cef7e802$export$7fa6c5b6f8193917; });
var $d8adb5a05c59328c$exports = {};
$parcel$export($d8adb5a05c59328c$exports, "Response", function () { return $d8adb5a05c59328c$export$9f633d56d7ec90d3; });
$parcel$export($d8adb5a05c59328c$exports, "URLSearchParams", function () { return $d8adb5a05c59328c$import$4ed7dce669f1b628$2e2bcd8739ae039; });
// @ts-expect-error Upstream export bug
class $d8adb5a05c59328c$export$9f633d56d7ec90d3 extends (0, $7d367d6ec930520d$export$4b2c32e08f77ff18) {
constructor(body, init){
super(), this.type = 'basic', this.ok = false, this.redirected = false;
this.status = init?.status || 0;
this.statusText = init?.statusText || '';
if (init?.headers) this.headers = new (0, $4b2a846c1a55ad0e$export$79b704688b15c0f4)(init.headers);
this.body = body instanceof (0, $7d367d6ec930520d$re_export$ReadableStream) ? body : body instanceof (0, $7d367d6ec930520d$import$6e3e14bf3384a560$2e2bcd8739ae039) ? null : body != null ? new (0, $81a6c09b57327804$export$3b660928c86ff55c)([
body instanceof (0, $d8adb5a05c59328c$import$4ed7dce669f1b628$2e2bcd8739ae039) ? body + '' : body
]).stream() : null;
}
clone() {
return Object.assign(new $d8adb5a05c59328c$export$9f633d56d7ec90d3(), this);
}
}
class $d8e2d459cef7e802$export$7fa6c5b6f8193917 extends (0, $7d367d6ec930520d$export$4b2c32e08f77ff18) {
constructor(input, init){
super();
if (input instanceof $d8e2d459cef7e802$export$7fa6c5b6f8193917) Object.assign(this, input);
else this.url = input + '';
if (!init) return;
const { headers: headers, body: body, ...fields } = init;
if (headers) this.headers = new (0, $4b2a846c1a55ad0e$export$79b704688b15c0f4)(headers);
if (body) this.body = new (0, $d8adb5a05c59328c$export$9f633d56d7ec90d3)(body).body;
Object.assign(this, fields);
}
clone() {
return new $d8e2d459cef7e802$export$7fa6c5b6f8193917(this);
}
}
var $32589a6243a380a5$exports = {};
$parcel$export($32589a6243a380a5$exports, "fetch", function () { return $32589a6243a380a5$export$e7aa7bc5c1b3cfb3; });
async function $32589a6243a380a5$export$e7aa7bc5c1b3cfb3(input, init) {
const req = new (0, $d8e2d459cef7e802$export$7fa6c5b6f8193917)(input, init);
const { method: method, url: url, headers: headers, mode: mode, credentials: credentials } = req;
const header = {
...Object.fromEntries([
...headers
]),
'Content-Type': [
'HEAD',
'GET'
].includes(method.toUpperCase()) ? 'text/plain' : headers.get('Content-Type')
};
const response = await (0, $QdH60$request)({
method: // @ts-ignore
method,
url: url,
header: header,
mode: // @ts-ignore
mode,
credentials: credentials,
data: await req.arrayBuffer(),
responseType: 'arraybuffer'
});
return new (0, $d8adb5a05c59328c$export$9f633d56d7ec90d3)(response.data, {
status: response.statusCode,
statusText: response.errMsg,
headers: response.header
});
}
for (const [key, value] of Object.entries({
Headers: $4b2a846c1a55ad0e$export$79b704688b15c0f4,
Body: $7d367d6ec930520d$export$4b2c32e08f77ff18,
Request: $d8e2d459cef7e802$export$7fa6c5b6f8193917,
Response: $d8adb5a05c59328c$export$9f633d56d7ec90d3,
fetch: $32589a6243a380a5$export$e7aa7bc5c1b3cfb3
}))globalThis[key] = value;
export {$4b2a846c1a55ad0e$export$79b704688b15c0f4 as Headers, $7d367d6ec930520d$export$4b2c32e08f77ff18 as Body, $7d367d6ec930520d$import$6e3e14bf3384a560$2e2bcd8739ae039 as FormData, $7d367d6ec930520d$re_export$ReadableStream as ReadableStream, $7d367d6ec930520d$re_export$TransformStream as TransformStream, $7d367d6ec930520d$re_export$WritableStream as WritableStream, $d8e2d459cef7e802$export$7fa6c5b6f8193917 as Request, $d8adb5a05c59328c$export$9f633d56d7ec90d3 as Response, $d8adb5a05c59328c$import$4ed7dce669f1b628$2e2bcd8739ae039 as URLSearchParams, $32589a6243a380a5$export$e7aa7bc5c1b3cfb3 as fetch, $81a6c09b57327804$export$3b660928c86ff55c as Blob};
//# sourceMappingURL=index.esm.js.map