A rewrite of Poly+, my quality-of-life browser extension for Polytoria. Built entirely fresh using the WXT extension framework, Typescript, and with added better overall code quality.
extension
1import { cache } from "./storage"; 2import { cacheInterface } from "./types"; 3 4// maybe make this use Meta data on an actual container ? 5export async function pullCache(key: string, replenish: Function, forceReplenish: boolean) { 6 const cacheStorage: cacheInterface = await cache.getValue(); 7 console.log('cache: ', cacheStorage) 8 if (!cacheStorage[key] || forceReplenish) { 9 const replenishedCache = await replenish(); 10 cacheStorage[key] = replenishedCache; 11 //@ts-ignore: why 12 cache.setValue(cacheStorage); 13 console.log('replenished cache: ', replenishedCache) 14 return replenishedCache; 15 } 16 return cacheStorage[key]; 17} 18 19// mergeObjects function was written by ChatGPT cause I was lazy and it was a while ago 20// type inferences set to any because I am again, lazy 21export function mergeObjects(obj1: any, obj2: any) { 22 var mergedObj: any = {}; 23 for (var key in obj1) { 24 mergedObj[key] = obj1[key]; 25 } 26 27 // Merge the values from obj2 into the mergedObj, favoring obj2 for non-existing keys in obj1 28 for (var key in obj2) { 29 if (!obj1.hasOwnProperty(key)) { 30 mergedObj[key] = obj2[key]; 31 } 32 } 33 34 return mergedObj; 35}