From ad0a20613ea1add556fe1269ae73bee46258f1f8 Mon Sep 17 00:00:00 2001 From: Sebastian Krupinski Date: Sun, 22 Feb 2026 16:54:00 -0500 Subject: [PATCH] refactor: module federation Signed-off-by: Sebastian Krupinski --- src/main.ts | 22 ++++++---------------- src/models/index.ts | 11 +++++++++-- src/services/transceive.ts | 2 +- vite.config.ts | 9 ++++++--- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/main.ts b/src/main.ts index 4fe1d91..47e9d78 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,10 +1,6 @@ import type { App as Vue } from 'vue' import routes from '@/routes' import integrations from '@/integrations' -import { useCollectionsStore } from '@/stores/collectionsStore' -import { useEntitiesStore } from '@/stores/entitiesStore' -import { useProvidersStore } from '@/stores/providersStore' -import { useServicesStore } from '@/stores/servicesStore' /** * Mail Manager Module Boot Script @@ -23,21 +19,15 @@ export const css = ['__CSS_FILENAME_PLACEHOLDER__'] // Export routes and integrations for module system export { routes, integrations } -// Export stores for external use if needed -export { useCollectionsStore, useEntitiesStore, useProvidersStore, useServicesStore } +// Export services, stores and models for external use +export * from '@/services' +export * from '@/stores' +export * from '@/models' -// Export composables +// Export composables for external use export { useMailSync } from '@/composables/useMailSync' -// Export services -export { providerService, serviceService, collectionService, entityService } from '@/services' - -// Export models -export { CollectionObject, CollectionPropertiesObject } from '@/models/collection' -export { MessageObject } from '@/models/message' -export { EntityObject } from '@/models/entity' - -// Export components +// Export components for external use export { default as AddAccountDialog } from '@/components/AddAccountDialog.vue' export { default as EditAccountDialog } from '@/components/EditAccountDialog.vue' diff --git a/src/models/index.ts b/src/models/index.ts index aad0188..9994329 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -1,7 +1,14 @@ -export { CollectionObject } from './collection'; -export { EntityObject } from './entity'; export { ProviderObject } from './provider'; export { ServiceObject } from './service'; +export { + CollectionObject, + CollectionPropertiesObject +} from './collection'; +export { EntityObject } from './entity'; +export { + MessageObject, + MessagePartObject +} from './message'; export { Identity, IdentityNone, diff --git a/src/services/transceive.ts b/src/services/transceive.ts index 7744751..9690dc8 100644 --- a/src/services/transceive.ts +++ b/src/services/transceive.ts @@ -3,7 +3,7 @@ * Provides a centralized way to make API calls with envelope wrapping/unwrapping */ -import { createFetchWrapper } from '@KTXC/utils/helpers/fetch-wrapper-core'; +import { createFetchWrapper } from '@KTXC'; import type { ApiRequest, ApiResponse } from '../types/common'; const fetchWrapper = createFetchWrapper(); diff --git a/vite.config.ts b/vite.config.ts index fc3f3c8..3d4dc29 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -41,13 +41,16 @@ export default defineConfig({ }, rollupOptions: { external: [ - 'pinia', 'vue', 'vue-router', - // Externalize shared utilities from core to avoid duplication - /^@KTXC\/utils\//, + 'pinia', + '@KTXC', ], output: { + paths: (id) => { + if (id === '@KTXC') return '/js/ktxc.mjs' + return id + }, assetFileNames: (assetInfo) => { if (assetInfo.name?.endsWith('.css')) { return 'mail_manager-[hash].css' -- 2.39.5