From e77e6639d4a4d44f2f0cd0a9df708ea4f879d17b Mon Sep 17 00:00:00 2001 From: pylixonly <82711525+pylixonly@users.noreply.github.com> Date: Tue, 28 Jan 2025 23:31:47 +0800 Subject: [PATCH] perf(themes): Draft rawColors normalization since writing directly is insanely slow for some reason --- src/lib/addons/themes/colors/parser.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lib/addons/themes/colors/parser.ts b/src/lib/addons/themes/colors/parser.ts index fe33570..e7e5c40 100644 --- a/src/lib/addons/themes/colors/parser.ts +++ b/src/lib/addons/themes/colors/parser.ts @@ -56,7 +56,9 @@ export function parseColorManifest(manifest: ColorManifest): InternalColorDefini raw: manifest.main.raw ?? {}, background: manifest.main.background, }; - } else if (manifest.spec === 2) { // is Vendetta theme + } + + if (manifest.spec === 2) { // is Vendetta theme const semanticDefinitions: InternalColorDefinition["semantic"] = {}; const background: InternalColorDefinition["background"] | undefined = manifest.background ? { ...omit(manifest.background, ["alpha"]), @@ -76,13 +78,16 @@ export function parseColorManifest(manifest: ColorManifest): InternalColorDefini } if (manifest.rawColors) { + const draft: typeof manifest.rawColors = {}; + for (const key in manifest.rawColors) { const value = manifest.rawColors[key]; if (!value) continue; - manifest.rawColors[key] = normalizeToHex(value)!; + draft[key] = normalizeToHex(value)!; } - if (Platform.OS === "android") applyAndroidAlphaKeys(manifest.rawColors); + if (Platform.OS === "android") applyAndroidAlphaKeys(draft); + manifest.rawColors = draft; }