Files
MajoorWaldi-ComfyUI-Majoor-…/docs/MIGRATION_TS_TRACKER.md
T

10 KiB

Migration JS → TypeScript — Tracker

Mis à jour : 2026-05-26 Stratégie : renommer .js → .ts + ajouter annotations TypeScript progressivement par frontière logique.


Résumé global

Zone Total fichiers Migrés (.ts) Restants (.js)
utils/ 14 14 ✅ 0
api/ 5 5 ✅ 0
integration/ 1 1 ✅ 0
stores/ 6 6 ✅ 0
app/ 30 30 ✅ 0
vue/ 23 23 ✅ 0
components/ 15 15 ✅ 0
features/ 141 141 ✅ 0
entry.ts 1 1 ✅ 0
TOTAL ~236 ~236 ✅ 0

Fichiers exclus (générés, ne pas toucher) :

  • ui/vue/majoor-ui.umd.js
  • ui/app/i18n.generated.js
  • dist/ (tout le dossier — produit par npm run build)

Détail par zone

✅ ui/utils/ — 14/14 FAIT

Fichier TS types Notes
debounce.ts ✅ DebouncedFn<TArgs> générique Interface + generic
deleteGuard.ts ✅ Promise<boolean> return
dom.ts ✅ JSDoc → annotations TS
events.ts ✅
extractOutputFiles.ts ✅
filenames.ts ✅ validateFilename retourne {valid,reason}
format.ts ✅ Date | null return
ids.ts ✅
logging.ts ✅
mediaFps.ts ✅
path.ts ✅
safeCall.ts ✅ Generic safeCall<T>
tooltipShortcuts.ts ✅ HTMLElement | null param
ttlCache.ts ✅ Interface TTLCache<K,V> + generic

✅ ui/api/ — 5/5 FAIT

Fichier TS types Notes
client.ts ✅ ApiResult<T> typedef, interfaces existantes
clientAuth.ts ✅
clientOps.ts ✅
endpoints.ts ✅ AssetFilterParams, ListURLParams interfaces
fetchUtils.ts ✅

✅ ui/integration/ — 1/1 FAIT

Fichier TS types Notes
comfy_send_to_am.ts ✅

✅ ui/stores/ — 6/6 FAIT (sessions précédentes)

Fichier TS types
useRuntimeStore.ts ✅
usePanelStore.ts ✅
runtimeEnrichmentState.ts ✅
panelStateBridge.ts ✅
getOptionalRuntimeStore.ts ✅
getOptionalPanelStore.ts ✅

✅ ui/types/ — 1/1 FAIT

Fichier Notes
comfyui-frontend.d.ts Déclarations de types ComfyUI

✅ ui/app/ — 30/30 FAIT

Tous les fichiers renommés .ts + annotations TS sur les exports publics.

Fichier TS types Statut
settingsStore.ts ✅ FAIT (session précédente)
runtimeState.ts ✅ FAIT (session précédente)
assetUrls.ts ✅ (unknown): string FAIT
bootstrap.ts ✅ async void, ReturnType timer FAIT
comfyApiBridge.ts ✅ MajoorComfyApp, MajoorComfyApi FAIT
config.ts ✅ AppConfig typedef FAIT
dialogs.ts ✅ MajoorExtensionDialog retours FAIT
DialogTemplates.ts ✅ (renommé) FAIT
events.ts ✅ (constantes string) FAIT
hostAdapter.ts ✅ types ComfyUI complets FAIT
i18n.ts ✅ exports publics annotés FAIT
metrics.ts ✅ nombre/bool params FAIT
openMajoorSettings.ts ✅ FAIT
settings.ts ✅ (re-exports, pas de corps) FAIT
style.ts ✅ FAIT
toast.ts ✅ comfyToast(unknown, string, number?, opts?) FAIT
versionCheck.ts ✅ types complets FAIT
settings/MajoorSettingsDialog.ts ✅ FAIT
settings/settingsAdvanced.ts ✅ MajoorSettingDefinition param FAIT
settings/settingsCore.ts ✅ FAIT
settings/settingsFeed.ts ✅ FAIT
settings/settingsGrid.ts ✅ FAIT
settings/SettingsPanel.ts ✅ MajoorSettingDefinition[] return FAIT
settings/settingsRuntime.ts ✅ FAIT
settings/settingsScanning.ts ✅ FAIT
settings/settingsSearch.ts ✅ FAIT
settings/settingsSecurity.ts ✅ FAIT
settings/SettingsStore.ts ✅ (Pinia store) FAIT
settings/settingsUtils.ts ✅ types primitifs + generic deepMerge FAIT
settings/settingsViewer.ts ✅ FAIT

✅ ui/vue/ — 23/23 FAIT

Fichier Statut
components/panel/summaryBarState.ts FAIT (session précédente)
components/panel/sidebar/generationSectionState.ts FAIT (session précédente)
components/grid/gridDomBridge.ts FAIT (session précédente)
components/grid/assetsGridHostState.ts FAIT (session précédente)
composables/gridVisibility.ts FAIT — `Element
composables/useActiveAsset.ts FAIT — setActiveAsset/patchActiveAsset typés
composables/useAssetsQuery.ts FAIT — renommé
composables/useDragDrop.ts FAIT — renommé
composables/useGridContextMenu.ts FAIT — unknown param
composables/useGridKeyboard.ts FAIT — `HTMLElement
composables/useGridLoader.ts FAIT — renommé
composables/useGridSelection.ts FAIT — renommé
composables/useGridState.ts FAIT — renommé
composables/useVirtualGrid.ts FAIT — renommé
createVueApp.ts FAIT — ReturnType<typeof createApp>
grid/useAssetCollection.ts FAIT — defaultAssetKey typé
grid/useGridDisplayAssets.ts FAIT — unknown[] params
grid/useGridQuery.ts FAIT — string params
grid/useGridSnapshotCache.ts FAIT — clés string
grid/useGridVirtualRows.ts FAIT — unknown[][] return
grid/useInfiniteTrigger.ts FAIT — renommé
grid/usePagedAssets.ts FAIT — renommé
majoorPrimeVue.ts FAIT — installMajoorPrimeVue typé

✅ ui/components/ — 15/15 FAIT

Fichier Statut
Badges.ts FAIT — createFileBadge, setFileBadgeCollision, createRatingBadge, etc.
RatingEditor.ts FAIT — params asset + callback
TagsEditor.ts FAIT — params asset + callback
VideoControls.ts FAIT — renommé
Viewer.ts FAIT — renommé
ViewerRuntime.ts FAIT — getViewerInstance(): unknown
Viewer_impl.ts FAIT — renommé
buttons.ts FAIT — createIconButton/createModeButton(string, string)
sidebar/SidebarView.ts FAIT — renommé
sidebar/parsers/a1111ParamsParser.ts FAIT — (unknown): Record<string,unknown>
sidebar/parsers/comfyWorkflowParser.ts FAIT — typed return
sidebar/parsers/geninfoParser.ts FAIT — sanitizePromptForDisplay, etc.
sidebar/utils/dom.ts FAIT — createSection, createFieldRow
sidebar/utils/format.ts FAIT — formatFileSize(number)
sidebar/utils/minimap.ts FAIT — drawWorkflowMinimap(canvas, workflow, opts?)
Fichier Statut
WorkflowSidebar.ts FAIT
WorkflowNodesTab.ts FAIT
widgetAdapters.ts FAIT
sidebarRunButton.ts FAIT
NodeWidgetRenderer.ts FAIT

✅ ui/features/viewer/workflowGraphMap/ — 4/4 FAIT

Fichier Statut
workflowNodeLabeling.ts FAIT
workflowGraphMapActions.ts FAIT
workflowGraphMapData.ts FAIT — session 2026-05-26
WorkflowGraphMapPanel.ts FAIT — renommé

✅ ui/features/viewer/ — 70/70 FAIT (session 2026-05-26)

Tous les .js renommés en .ts et annotés :

  • FloatingViewer.ts, FloatingViewer.impl.ts, LiveStreamTracker.ts, ViewerCanvas.ts
  • ViewerContextMenu.ts, ViewerKeyboard.ts, ViewerState.ts, ViewerToolbar.ts
  • abCompare.ts, audioVisualizer.ts, filmstrip.ts, floatingViewer*.ts (9 fichiers)
  • frameExport.ts, genInfo.ts, grid.ts, imagePreloader.ts, imageProcessor.ts
  • keyboard.ts, lifecycle.ts, loupe.ts, mediaFactory.ts, mediaPlayer.ts, metadata.ts
  • model3dCore.ts, model3dLoaders.ts, model3dRenderer.impl.ts, model3dRenderer.ts, model3dSupport.ts
  • panzoom.ts, playerBarManager.ts, probe.ts, processorUtils.ts, scopes.ts
  • sideBySide.ts, state.ts, toolbar.ts, toolbarActions.ts, toolbarControls.ts
  • videoProcessor.ts, videoProcessorWebGL.ts, videoSync.ts
  • viewerInstanceManager.ts, viewerOpenRequest.ts, viewerOverlayDismiss.ts
  • viewerRuntimeHosts.ts, viewerShell.ts, viewerThemeStyles.ts
  • nodeStream/ (6 fichiers + 4 adapters)

✅ ui/features/panel/ — 29/29 FAIT (session 2026-05-26)

Tous les .js renommés en .ts et annotés (Record<string,unknown> pour les params destructurés complexes).

✅ ui/entry.ts — FAIT (session 2026-05-26)


Ordre de migration recommandé

  1. ✅ utils/ + api/ + integration/ — FAIT
  2. ✅ app/ — FAIT
  3. ✅ vue/ — FAIT
  4. ✅ components/ — FAIT
  5. ✅ features/grid/ + features/status/ + features/stacks/ — FAIT
  6. ✅ features/runtime/ + features/dnd/ — FAIT
  7. ✅ features/panel/ — FAIT
  8. ✅ features/viewer/ — FAIT
  9. ✅ entry.ts — FAIT

Migration JS → TypeScript terminée. 236/236 fichiers source migrés.


Notes techniques

  • tsconfig : allowJs: true, checkJs: true, strict: false, moduleResolution: "Bundler"
  • Imports : garder l'extension .js dans les imports (Bundler résout .js → .ts)
  • Convention : supprimer les JSDoc @param/@returns quand remplacés par annotations TS
  • Build : npm run build génère dist/ — ne pas modifier dist/ directement
  • Lint : npm run lint:js obligatoire après conversion, lint:js:ox + typecheck:js en audit