Files
MajoorWaldi-ComfyUI-Majoor-…/dist/assets
Ewald a0ab764dc7 refactor(ui): introduce shared MjrAssetLike type, reduce any usage (~17%)
Part of the frontend audit finding on ~230 any/as any occurrences.
Adds ui/types/asset.d.ts documenting the asset shape actually read
across the grid/sidebar/viewer components (id, filename, kind, tags,
rating, workflow metadata, file_info, etc.) with a permissive index
signature as fallback, and replaces every local ad-hoc asset-like
interface/any prop with it: AssetCardInner, CollectionsPopover,
SidebarFileInfoSection, SidebarGenerationSection,
SidebarWorkflowSection, ViewerMetadataBlock, RatingEditor, TagsEditor,
FolderCard, AssetSidebarContent, SidebarFolderSection,
SidebarHeaderSection, SidebarPreviewSection.

This both removes a chunk of `any` (150 -> 124 in ui/vue) and gives
future components one place to extend the asset shape instead of
re-declaring it. Remaining `any` usage is concentrated in two
legitimate categories, not oversights:
  - "glue" refs to sibling components whose defineExpose isn't
    individually typed yet (App.vue, HeaderSection.vue, AssetsGrid.vue)
  - genuinely dynamic third-party payloads (ComfyUI workflow/node JSON
    in SidebarWorkflowSection, context-menu item objects)

Build + full vitest suite (831 tests) pass. Live-verified against the
running ComfyUI instance.
2026-09-12 00:19:50 +02:00
..