mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-03-20 05:28:44 +08:00
36 lines
954 B
TypeScript
36 lines
954 B
TypeScript
// Polyfill ResizeObserver for jsdom/happy-dom
|
|
if (typeof globalThis.ResizeObserver === "undefined") {
|
|
globalThis.ResizeObserver = class ResizeObserver {
|
|
observe() {}
|
|
unobserve() {}
|
|
disconnect() {}
|
|
} as unknown as typeof globalThis.ResizeObserver;
|
|
}
|
|
|
|
const storage = new Map<string, string>();
|
|
|
|
if (
|
|
typeof globalThis.localStorage === "undefined" ||
|
|
typeof globalThis.localStorage?.getItem !== "function"
|
|
) {
|
|
Object.defineProperty(globalThis, "localStorage", {
|
|
value: {
|
|
getItem: (key: string) => storage.get(key) ?? null,
|
|
setItem: (key: string, value: string) => {
|
|
storage.set(key, String(value));
|
|
},
|
|
removeItem: (key: string) => {
|
|
storage.delete(key);
|
|
},
|
|
clear: () => {
|
|
storage.clear();
|
|
},
|
|
key: (index: number) => Array.from(storage.keys())[index] ?? null,
|
|
get length() {
|
|
return storage.size;
|
|
},
|
|
},
|
|
configurable: true,
|
|
});
|
|
}
|