refactor(core): simplify packages/core — dead code, dedup, type safety (#1413)

- Delete unused mediaPreloader module, 5 dead RuntimeState fields,
  emitPerformanceMetric, lintScriptUrls, 5 variable type guards
- Consolidate compiler utilities: unify CSS URL regex, relative URL
  predicate, MIME map, @import regex, bulk asset rewrite delegation
- Cache extractGsapWindows per script (eliminates 2 redundant recast
  parses per lint run), share stripJsComments and script extraction
- Deduplicate GSAP parser: share serializeValue/safeJsKey, centralize
  converted-id fallback (6 sites), keyframe codegen (3 sites),
  waypoint extraction, insert-after-anchor, script hoisting
- Replace 88 bare any annotations with typed AstNode/AstPath interfaces
- Derive RuntimeBridgeControlAction from HyperframeControlAction,
  alias RuntimePickerElementInfo, share macOS font profiler
- Gate generateHyperframesStyles on includeStyles, collapse 4 GSAP
  property mutation cases into 2
- Extract magic numbers into named constants, replace 5 double casts
  with type guards and typed accessors (runtime/globals.ts),
  reduce function complexity in htmlParser and files route
This commit is contained in:
Miguel Ángel
2026-06-13 18:23:36 -04:00
committed by GitHub
parent fbc3cdf2fd
commit 6f677292ae
29 changed files with 551 additions and 1399 deletions
+21 -23
View File
@@ -320,11 +320,26 @@ export function generateHyperframesHtml(
? ` data-zoom-keyframes='${JSON.stringify(stageZoomKeyframes).replace(/'/g, "'")}'`
: "";
const { coreCss, customCss, googleFontsLink } = generateHyperframesStyles(
sortedElements,
resolution,
customStyles,
);
let styleTags = "";
let googleFontsLink = "";
if (includeStyles) {
const styles = generateHyperframesStyles(sortedElements, resolution, customStyles);
googleFontsLink = styles.googleFontsLink;
styleTags = [
styles.coreCss
? ` <style data-hf-core="true">
${styles.coreCss.split("\n").join("\n ")}
</style>`
: "",
styles.customCss
? ` <style data-hf-custom="true">
${styles.customCss.split("\n").join("\n ")}
</style>`
: "",
]
.filter(Boolean)
.join("\n");
}
const gsapScript = includeScripts
? generateGsapTimelineScript(sortedElements, totalDuration, {
@@ -344,23 +359,6 @@ ${gsapScript}
</script>`
: "";
const styleTags = includeStyles
? [
coreCss
? ` <style data-hf-core="true">
${coreCss.split("\n").join("\n ")}
</style>`
: "",
customCss
? ` <style data-hf-custom="true">
${customCss.split("\n").join("\n ")}
</style>`
: "",
]
.filter(Boolean)
.join("\n")
: "";
const customStylesAttr = customStyles
? ` data-custom-styles='${JSON.stringify(customStyles).replace(/'/g, "&#39;")}'`
: "";
@@ -372,7 +370,7 @@ ${gsapScript}
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
${includeStyles ? googleFontsLink : ""}
${googleFontsLink}
${gsapCdnTag}
${styleTags ? ` ${styleTags}` : ""}
</head>