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 { getUserDetails } from "@/utils/utilities"; 2import { preferences } from "@/utils/storage"; 3import config from "@/utils/config.json"; 4 5import * as discovery from "./discovery"; 6import * as view from "./view"; 7import * as apiTypes from "@/utils/types"; 8 9export default defineContentScript({ 10 matches: ['*://polytoria.com/store/*'], 11 main() { 12 preferences.getPreferences() 13 .then((values) => { 14 getUserDetails() 15 .then((user) => { 16 if (!user) { 17 // Error page or event page most likely, where users are not authenticated 18 console.warn('[Poly+] Failure to get logged in user details.'); 19 return; 20 }; 21 22 if (!window.location.pathname.split('/')[2]) { 23 // Discovery 24 if (config.devBuild) console.log('[Poly+] Running discovery page functions: ', discovery); 25 26 if (values.irlBrickPrice.enabled) discovery.irlBrickPrice(); 27 if (values.storeOwnedTags.enabled) discovery.ownedTags(user.userId); 28 } else { 29 // View 30 if (config.devBuild) console.log('[Poly+] Running view page functions: ', view); 31 32 if (values.irlBrickPrice.enabled) view.irlBrickPrice(); 33 if (values.tryItems.enabled) view.tryOn(user as apiTypes.userDetails); 34 if (values.accurateOwners.enabled) view.accurateOwnerCount(); 35 }; 36 }) 37 }); 38 } 39});