Fix production build crash by resolving circular import dependency

Moved database schemas from src-tauri/database/schemas/ to src/database/schemas/
to fix bundling issues and resolved circular import dependency that caused
"Cannot access uninitialized variable" error in production builds.

Key changes:
- Moved crdtColumnNames definition into haex.ts to break circular dependency
- Restored .$defaultFn(() => crypto.randomUUID()) calls
- Kept AnySQLiteColumn type annotations
- Removed obsolete TDZ fix script (no longer needed)
- Updated all import paths across stores and configuration files
This commit is contained in:
2025-11-02 00:57:03 +01:00
parent 3ed8d6bc05
commit 6a7f58a513
26 changed files with 352 additions and 1324 deletions

View File

@ -1,9 +1,9 @@
import { eq } from 'drizzle-orm'
import { haexDesktopItems } from '~~/src-tauri/database/schemas'
import { haexDesktopItems } from '~/database/schemas'
import type {
InsertHaexDesktopItems,
SelectHaexDesktopItems,
} from '~~/src-tauri/database/schemas'
} from '~/database/schemas'
import de from './de.json'
import en from './en.json'

View File

@ -2,7 +2,7 @@ import { asc, eq } from 'drizzle-orm'
import {
haexWorkspaces,
type SelectHaexWorkspaces,
} from '~~/src-tauri/database/schemas'
} from '~/database/schemas'
import type { Swiper } from 'swiper/types'
export type IWorkspace = SelectHaexWorkspaces

View File

@ -2,7 +2,7 @@
import { drizzle } from 'drizzle-orm/sqlite-proxy'
import { invoke } from '@tauri-apps/api/core'
import { schema } from '@/../src-tauri/database/index'
import { schema } from '~/database'
import type {
AsyncRemoteCallback,
SqliteRemoteDatabase,
@ -21,11 +21,12 @@ export const useVaultStore = defineStore('vaultStore', () => {
public: { haexVault },
} = useRuntimeConfig()
const router = useRouter()
const currentVaultId = computed<string | undefined>({
get: () =>
getSingleRouteParam(useRouter().currentRoute.value.params.vaultId),
getSingleRouteParam(router.currentRoute.value.params.vaultId),
set: (newVaultId) => {
useRouter().currentRoute.value.params.vaultId = newVaultId ?? ''
router.currentRoute.value.params.vaultId = newVaultId ?? ''
},
})

View File

@ -2,7 +2,7 @@ import { and, eq, or, type SQLWrapper } from 'drizzle-orm'
import {
haexNotifications,
type InsertHaexNotifications,
} from '~~/src-tauri/database/schemas/haex'
} from '~/database/schemas/haex'
import {
isPermissionGranted,
requestPermission,
@ -31,7 +31,12 @@ export const useNotificationStore = defineStore('notificationStore', () => {
}
const checkNotificationAsync = async () => {
isNotificationAllowed.value = await isPermissionGranted()
try {
isNotificationAllowed.value = await isPermissionGranted()
} catch (error) {
console.warn('Notification permission check failed:', error)
isNotificationAllowed.value = false
}
return isNotificationAllowed.value
}

View File

@ -1,6 +1,6 @@
import { and, eq } from 'drizzle-orm'
import { z } from 'zod'
import * as schema from '@/../src-tauri/database/schemas/haex'
import * as schema from '~/database/schemas/haex'
import type { Locale } from 'vue-i18n'
export enum VaultSettingsTypeEnum {