10 KiB
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.jsui/app/i18n.generated.jsdist/(tout le dossier — produit parnpm 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.tsViewerContextMenu.ts,ViewerKeyboard.ts,ViewerState.ts,ViewerToolbar.tsabCompare.ts,audioVisualizer.ts,filmstrip.ts,floatingViewer*.ts(9 fichiers)frameExport.ts,genInfo.ts,grid.ts,imagePreloader.ts,imageProcessor.tskeyboard.ts,lifecycle.ts,loupe.ts,mediaFactory.ts,mediaPlayer.ts,metadata.tsmodel3dCore.ts,model3dLoaders.ts,model3dRenderer.impl.ts,model3dRenderer.ts,model3dSupport.tspanzoom.ts,playerBarManager.ts,probe.ts,processorUtils.ts,scopes.tssideBySide.ts,state.ts,toolbar.ts,toolbarActions.ts,toolbarControls.tsvideoProcessor.ts,videoProcessorWebGL.ts,videoSync.tsviewerInstanceManager.ts,viewerOpenRequest.ts,viewerOverlayDismiss.tsviewerRuntimeHosts.ts,viewerShell.ts,viewerThemeStyles.tsnodeStream/(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é
- ✅
utils/+api/+integration/— FAIT - ✅
app/— FAIT - ✅
vue/— FAIT - ✅
components/— FAIT - ✅
features/grid/+features/status/+features/stacks/— FAIT - ✅
features/runtime/+features/dnd/— FAIT - ✅
features/panel/— FAIT - ✅
features/viewer/— FAIT - ✅
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
.jsdans les imports (Bundler résout.js→.ts) - Convention : supprimer les JSDoc
@param/@returnsquand remplacés par annotations TS - Build :
npm run buildgénèredist/— ne pas modifierdist/directement - Lint :
npm run lint:jsobligatoire après conversion,lint:js:ox+typecheck:jsen audit