From f95922e744bceaaa25208404ac74e3077ffd9b9e Mon Sep 17 00:00:00 2001 From: Michael Zhang Date: Sat, 27 Jul 2024 16:45:04 -0500 Subject: [PATCH] update --- .gitignore | 2 ++ bun.lockb | Bin 116474 -> 138664 bytes package.json | 7 +++++-- src/dom.ts | 5 +++-- src/utils.ts | 7 +++++++ 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 9b1ee42..402da6a 100644 --- a/.gitignore +++ b/.gitignore @@ -173,3 +173,5 @@ dist # Finder (MacOS) folder config .DS_Store + +tweaks_*.zip \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index 4d78c4ed6ade0d287eb83660bc314e6e3161c3e4..39e57ef3660f45582c764ba774e4e81faeea7a97 100644 GIT binary patch delta 28614 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
cO_=Bfz{FZ8@(EK1i$(qtkzOX& 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 wXkB@)xC%Uclio7EDWi2%8mqm>2T@1FNmkA^-pY delta 15307 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 diff --git a/package.json b/package.json index 1b6a595..cdd7ba1 100644 --- a/package.json +++ b/package.json @@ -1,15 +1,18 @@ { "name": "tweaks", + "version": "0.1.0", "module": "index.ts", "type": "module", "scripts": { - "dev": "vite" + "dev": "vite", + "build": "vite build && npm-build-zip --source=dist --destination=." }, "devDependencies": { "@biomejs/biome": "^1.8.3", "@types/bun": "latest", "@types/lodash.isequal": "^4.5.8", "@types/webextension-polyfill": "^0.10.7", + "npm-build-zip": "^1.0.4", "vite-plugin-web-extension": "^4.1.6" }, "peerDependencies": { @@ -20,4 +23,4 @@ "vite": "^5.3.5", "webextension-polyfill": "^0.12.0" } -} \ No newline at end of file +} diff --git a/src/dom.ts b/src/dom.ts index 4d73adb..5ee0fa5 100644 --- a/src/dom.ts +++ b/src/dom.ts @@ -1,4 +1,5 @@ -import isEqual from "lodash.isequal"; +import { isPathEqual } from "./utils"; + const REFRESH_RATE = 1000; export async function waitForElementToExist( @@ -49,7 +50,7 @@ export function addPageChangeHandler(func: (path: OsuPath) => void) { hash: location.hash, }; - if (!isEqual(currentPath, newPath)) { + if (!isPathEqual(currentPath, newPath)) { func(newPath); currentPath = newPath; } diff --git a/src/utils.ts b/src/utils.ts index 29aa586..55d77b7 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,4 +1,7 @@ // Color parsing function + +import type { OsuPath } from "./dom"; + // minified, original is from https://stackoverflow.com/a/68580275 export function parseCssColor(str: string): [number, number, number] { const div = document.createElement("div"); @@ -10,3 +13,7 @@ export function parseCssColor(str: string): [number, number, number] { div.remove(); return res; } + +export function isPathEqual(a: OsuPath, b: OsuPath) { + return a.pathname === b.pathname && a.hash === b.hash; +}