mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-03 04:38:33 +00:00
refactor(core): trim color grading api surface
This commit is contained in:
@@ -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", () => {
|
||||
|
||||
@@ -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<string, unknown> = {};
|
||||
@@ -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,
|
||||
|
||||
@@ -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),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user