56 lines
1.3 KiB
JavaScript
Raw Permalink Normal View History

if (!globalThis.requestIdleCallback) {
globalThis.requestIdleCallback = (callback) =>
window.setTimeout(() => callback({ didTimeout: false, timeRemaining: () => 0 }), 0);
}
if (!globalThis.cancelIdleCallback) {
globalThis.cancelIdleCallback = (handle) => window.clearTimeout(handle);
}
if (!globalThis.Headers) {
class SimpleHeaders {
constructor(init = {}) {
this.map = new Map();
const entries = init instanceof SimpleHeaders ? init.entries() : Object.entries(init || {});
for (const [key, value] of entries) {
this.set(key, value);
}
}
get(name) {
return this.map.get(String(name).toLowerCase()) ?? null;
}
set(name, value) {
this.map.set(String(name).toLowerCase(), String(value));
}
entries() {
return this.map.entries();
}
}
globalThis.Headers = SimpleHeaders;
}
if (!globalThis.Response) {
class SimpleResponse {
constructor(body = "", init = {}) {
this.body = body;
this.status = Number(init.status ?? 200);
this.ok = this.status >= 200 && this.status < 300;
this.headers = new Headers(init.headers || {});
}
async text() {
return String(this.body);
}
async json() {
return JSON.parse(String(this.body));
}
}
globalThis.Response = SimpleResponse;
}