From 8aaaaf1812638258e4ac4a2fe2c083ddea03e8ed Mon Sep 17 00:00:00 2001 From: ukimsanov Date: Tue, 16 Jun 2026 13:37:38 -0700 Subject: [PATCH] refactor(core): trim color grading api surface --- packages/core/src/colorGrading.test.ts | 13 ++++++------- packages/core/src/colorGrading.ts | 14 +------------- packages/core/src/compiler/htmlBundler.ts | 7 +++++-- packages/core/src/index.ts | 2 -- 4 files changed, 12 insertions(+), 24 deletions(-) diff --git a/packages/core/src/colorGrading.test.ts b/packages/core/src/colorGrading.test.ts index 0c7712492..42ac1a6b7 100644 --- a/packages/core/src/colorGrading.test.ts +++ b/packages/core/src/colorGrading.test.ts @@ -4,13 +4,12 @@ import { isHfColorGradingActive, normalizeHfColorGrading, normalizeHfColorGradingWithVariables, - parseHfColorGradingAttribute, serializeHfColorGrading, } from "./colorGrading"; describe("color grading", () => { it("parses preset shorthand", () => { - const grading = parseHfColorGradingAttribute("warm-clean"); + const grading = normalizeHfColorGrading("warm-clean"); expect(grading?.preset).toBe("warm-clean"); expect(grading?.colorSpace).toBe(HF_COLOR_GRADING_COLOR_SPACE); expect(grading?.adjust.temperature).toBeGreaterThan(0); @@ -42,17 +41,17 @@ describe("color grading", () => { expect(grading?.lut?.intensity).toBe(1); }); - it("returns null for disabled or invalid looks", () => { + it("returns null for disabled or invalid grading", () => { expect(normalizeHfColorGrading({ enabled: false, preset: "warm-clean" })).toBeNull(); - expect(parseHfColorGradingAttribute("{nope")).toBeNull(); - expect(parseHfColorGradingAttribute("")).toBeNull(); + expect(normalizeHfColorGrading("{nope")).toBeNull(); + expect(normalizeHfColorGrading("")).toBeNull(); }); - it("serializes normalized looks for data-color-grading", () => { + it("serializes normalized grading for data-color-grading", () => { const grading = normalizeHfColorGrading({ adjust: { exposure: 0.25 } }); const serialized = serializeHfColorGrading(grading); expect(serialized).toContain('"exposure":0.25'); - expect(parseHfColorGradingAttribute(serialized)?.adjust.exposure).toBe(0.25); + expect(normalizeHfColorGrading(serialized)?.adjust.exposure).toBe(0.25); }); it("treats zero global intensity as inactive even with LUT data", () => { diff --git a/packages/core/src/colorGrading.ts b/packages/core/src/colorGrading.ts index 035bf93bd..b923f19de 100644 --- a/packages/core/src/colorGrading.ts +++ b/packages/core/src/colorGrading.ts @@ -256,9 +256,6 @@ export function resolveHfColorGradingVariables( return raw; } } - if (Array.isArray(raw)) { - return raw.map((item) => resolveHfColorGradingVariables(item, variables)); - } if (!isRecord(raw)) return raw; const resolved: Record = {}; @@ -268,9 +265,7 @@ export function resolveHfColorGradingVariables( return resolved; } -export function getHfColorGradingPreset( - id: string | null | undefined, -): HfColorGradingPreset | null { +function getHfColorGradingPreset(id: string | null | undefined): HfColorGradingPreset | null { if (!id) return null; return PRESETS_BY_ID.get(id) ?? null; } @@ -305,13 +300,6 @@ export function normalizeHfColorGrading(raw: unknown): NormalizedHfColorGrading }; } -export function parseHfColorGradingAttribute( - value: string | null | undefined, -): NormalizedHfColorGrading | null { - if (value == null) return null; - return normalizeHfColorGrading(value); -} - export function normalizeHfColorGradingWithVariables( raw: unknown, variables: HfColorGradingVariableMap, diff --git a/packages/core/src/compiler/htmlBundler.ts b/packages/core/src/compiler/htmlBundler.ts index 5d15b5125..538f0632f 100644 --- a/packages/core/src/compiler/htmlBundler.ts +++ b/packages/core/src/compiler/htmlBundler.ts @@ -222,7 +222,7 @@ function maybeInlineRelativeAssetUrl(urlValue: string, projectDir: string): stri } // fallow-ignore-next-line complexity -function rewriteLookLutWithInlinedAssets(value: string, projectDir: string): string { +function rewriteColorGradingLutWithInlinedAssets(value: string, projectDir: string): string { if (!value.trim().startsWith("{")) return value; let parsed: unknown; try { @@ -979,7 +979,10 @@ export async function bundleToSingleHtml( for (const el of [...document.querySelectorAll(`[${HF_COLOR_GRADING_ATTR}]`)]) { const value = el.getAttribute(HF_COLOR_GRADING_ATTR); if (value) { - el.setAttribute(HF_COLOR_GRADING_ATTR, rewriteLookLutWithInlinedAssets(value, projectDir)); + el.setAttribute( + HF_COLOR_GRADING_ATTR, + rewriteColorGradingLutWithInlinedAssets(value, projectDir), + ); } } diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index fdd73c2cd..8f38c7e05 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -137,11 +137,9 @@ export { HF_COLOR_GRADING_ADJUST_KEYS, HF_COLOR_GRADING_COLOR_SPACE, HF_COLOR_GRADING_PRESETS, - getHfColorGradingPreset, isHfColorGradingActive, normalizeHfColorGrading, normalizeHfColorGradingWithVariables, - parseHfColorGradingAttribute, resolveHfColorGradingVariables, serializeHfColorGrading, type HfColorGrading,