diff --git a/src/schemas/assetSchema.ts b/src/platform/assets/schemas/assetSchema.ts similarity index 100% rename from src/schemas/assetSchema.ts rename to src/platform/assets/schemas/assetSchema.ts diff --git a/src/services/assetService.ts b/src/platform/assets/services/assetService.ts similarity index 98% rename from src/services/assetService.ts rename to src/platform/assets/services/assetService.ts index ffc825260..344209bf7 100644 --- a/src/services/assetService.ts +++ b/src/platform/assets/services/assetService.ts @@ -5,7 +5,7 @@ import { type ModelFile, type ModelFolder, assetResponseSchema -} from '@/schemas/assetSchema' +} from '@/platform/assets/schemas/assetSchema' import { api } from '@/scripts/api' import { useModelToNodeStore } from '@/stores/modelToNodeStore' diff --git a/src/renderer/extensions/vueNodes/widgets/composables/useComboWidget.ts b/src/renderer/extensions/vueNodes/widgets/composables/useComboWidget.ts index 96fa0d580..01c3f3184 100644 --- a/src/renderer/extensions/vueNodes/widgets/composables/useComboWidget.ts +++ b/src/renderer/extensions/vueNodes/widgets/composables/useComboWidget.ts @@ -7,6 +7,7 @@ import type { IBaseWidget, IComboWidget } from '@/lib/litegraph/src/types/widgets' +import { assetService } from '@/platform/assets/services/assetService' import { useSettingStore } from '@/platform/settings/settingStore' import { transformInputSpecV2ToV1 } from '@/schemas/nodeDef/migration' import { @@ -23,7 +24,6 @@ import { type ComfyWidgetConstructorV2, addValueControlWidgets } from '@/scripts/widgets' -import { assetService } from '@/services/assetService' import { useRemoteWidget } from './useRemoteWidget' diff --git a/src/scripts/api.ts b/src/scripts/api.ts index 77fc17286..5c8dd209c 100644 --- a/src/scripts/api.ts +++ b/src/scripts/api.ts @@ -2,6 +2,10 @@ import axios from 'axios' import { get } from 'es-toolkit/compat' import defaultClientFeatureFlags from '@/config/clientFeatureFlags.json' with { type: 'json' } +import type { + ModelFile, + ModelFolderInfo +} from '@/platform/assets/schemas/assetSchema' import { useToastStore } from '@/platform/updates/common/toastStore' import { WorkflowTemplates } from '@/platform/workflow/templates/types/template' import type { @@ -37,7 +41,6 @@ import type { User, UserDataFullInfo } from '@/schemas/apiSchema' -import type { ModelFile, ModelFolderInfo } from '@/schemas/assetSchema' import type { ComfyNodeDef } from '@/schemas/nodeDefSchema' import type { NodeExecutionId } from '@/types/nodeIdentification' diff --git a/src/stores/modelStore.ts b/src/stores/modelStore.ts index b510dbf5d..16015a9d2 100644 --- a/src/stores/modelStore.ts +++ b/src/stores/modelStore.ts @@ -1,10 +1,10 @@ import { defineStore } from 'pinia' import { computed, ref } from 'vue' +import type { ModelFile } from '@/platform/assets/schemas/assetSchema' +import { assetService } from '@/platform/assets/services/assetService' import { useSettingStore } from '@/platform/settings/settingStore' -import type { ModelFile } from '@/schemas/assetSchema' import { api } from '@/scripts/api' -import { assetService } from '@/services/assetService' /** (Internal helper) finds a value in a metadata object from any of a list of keys. */ function _findInMetadata(metadata: any, ...keys: string[]): string | null { diff --git a/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useComboWidget.test.ts b/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useComboWidget.test.ts index da47cdd4f..875919ccd 100644 --- a/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useComboWidget.test.ts +++ b/tests-ui/tests/renderer/extensions/vueNodes/widgets/composables/useComboWidget.test.ts @@ -2,9 +2,9 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { LGraphNode } from '@/lib/litegraph/src/litegraph' import type { IBaseWidget } from '@/lib/litegraph/src/types/widgets' +import { assetService } from '@/platform/assets/services/assetService' import { useComboWidget } from '@/renderer/extensions/vueNodes/widgets/composables/useComboWidget' import type { InputSpec } from '@/schemas/nodeDef/nodeDefSchemaV2' -import { assetService } from '@/services/assetService' vi.mock('@/scripts/widgets', () => ({ addValueControlWidgets: vi.fn() @@ -23,7 +23,7 @@ vi.mock('@/i18n', () => ({ ) })) -vi.mock('@/services/assetService', () => ({ +vi.mock('@/platform/assets/services/assetService', () => ({ assetService: { isAssetBrowserEligible: vi.fn(() => false) } diff --git a/tests-ui/tests/services/assetService.test.ts b/tests-ui/tests/services/assetService.test.ts index 6a3981acb..f11c9d40d 100644 --- a/tests-ui/tests/services/assetService.test.ts +++ b/tests-ui/tests/services/assetService.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' +import { assetService } from '@/platform/assets/services/assetService' import { api } from '@/scripts/api' -import { assetService } from '@/services/assetService' vi.mock('@/stores/modelToNodeStore', () => ({ useModelToNodeStore: vi.fn(() => ({ diff --git a/tests-ui/tests/store/modelStore.test.ts b/tests-ui/tests/store/modelStore.test.ts index 8ecee118e..c9ed82e55 100644 --- a/tests-ui/tests/store/modelStore.test.ts +++ b/tests-ui/tests/store/modelStore.test.ts @@ -1,9 +1,9 @@ import { createPinia, setActivePinia } from 'pinia' import { beforeEach, describe, expect, it, vi } from 'vitest' +import { assetService } from '@/platform/assets/services/assetService' import { useSettingStore } from '@/platform/settings/settingStore' import { api } from '@/scripts/api' -import { assetService } from '@/services/assetService' import { useModelStore } from '@/stores/modelStore' // Mock the api @@ -11,12 +11,15 @@ vi.mock('@/scripts/api', () => ({ api: { getModels: vi.fn(), getModelFolders: vi.fn(), - viewMetadata: vi.fn() + viewMetadata: vi.fn(), + apiURL: vi.fn((path: string) => `http://localhost:8188${path}`), + addEventListener: vi.fn(), + removeEventListener: vi.fn() } })) // Mock the assetService -vi.mock('@/services/assetService', () => ({ +vi.mock('@/platform/assets/services/assetService', () => ({ assetService: { getAssetModelFolders: vi.fn(), getAssetModels: vi.fn()