@ -1,9 +1,9 @@
/ * *
/ * *
* Enhanced PlatformService Mixin with ultra - concise database operations and caching
* Enhanced PlatformService Mixin with ultra - concise database operations and caching
*
*
* Provides cached platform service access and utility methods for Vue components .
* Provides cached platform service access and utility methods for Vue components .
* Eliminates repetitive PlatformServiceFactory . getInstance ( ) calls across components .
* Eliminates repetitive PlatformServiceFactory . getInstance ( ) calls across components .
*
*
* Features :
* Features :
* - Cached platform service instance ( created once per component )
* - Cached platform service instance ( created once per component )
* - Enhanced database utility methods with comprehensive error handling
* - Enhanced database utility methods with comprehensive error handling
@ -63,10 +63,10 @@ const componentCaches = new WeakMap<any, Map<string, CacheEntry<any>>>();
* Cache configuration constants
* Cache configuration constants
* /
* /
const CACHE_DEFAULTS = {
const CACHE_DEFAULTS = {
settings : 30000 , // 30 seconds TTL for settings
settings : 30000 , // 30 seconds TTL for settings
contacts : 60000 , // 60 seconds TTL for contacts
contacts : 60000 , // 60 seconds TTL for contacts
accounts : 30000 , // 30 seconds TTL for accounts
accounts : 30000 , // 30 seconds TTL for accounts
default : 15000 , // 15 seconds default TTL
default : 15000 , // 15 seconds default TTL
} as const ;
} as const ;
/ * *
/ * *
@ -434,13 +434,15 @@ export const PlatformServiceMixin = {
* @returns Cached mapped array of all contacts
* @returns Cached mapped array of all contacts
* /
* /
async $contacts ( ) : Promise < any [ ] > {
async $contacts ( ) : Promise < any [ ] > {
const cacheKey = 'contacts_all' ;
const cacheKey = "contacts_all" ;
const cached = this . _getCached < any [ ] > ( cacheKey ) ;
const cached = this . _getCached < any [ ] > ( cacheKey ) ;
if ( cached ) {
if ( cached ) {
return cached ;
return cached ;
}
}
const contacts = await this . $query ( "SELECT * FROM contacts ORDER BY name" ) ;
const contacts = await this . $query (
"SELECT * FROM contacts ORDER BY name" ,
) ;
return this . _setCached ( cacheKey , contacts , CACHE_DEFAULTS . contacts ) ;
return this . _setCached ( cacheKey , contacts , CACHE_DEFAULTS . contacts ) ;
} ,
} ,
@ -458,7 +460,11 @@ export const PlatformServiceMixin = {
}
}
const settings = await this . $getSettings ( MASTER_SETTINGS_KEY , defaults ) ;
const settings = await this . $getSettings ( MASTER_SETTINGS_KEY , defaults ) ;
return ( this as any ) . _setCached ( cacheKey , settings , CACHE_DEFAULTS . settings ) ;
return ( this as any ) . _setCached (
cacheKey ,
settings ,
CACHE_DEFAULTS . settings ,
) ;
} ,
} ,
/ * *
/ * *
@ -469,8 +475,8 @@ export const PlatformServiceMixin = {
* /
* /
async $accountSettings ( did? : string , defaults : any = { } ) : Promise < any > {
async $accountSettings ( did? : string , defaults : any = { } ) : Promise < any > {
const currentDid = did || ( this as any ) . activeDid ;
const currentDid = did || ( this as any ) . activeDid ;
const cacheKey = ` account_settings_ ${ currentDid || 'default' } ` ;
const cacheKey = ` account_settings_ ${ currentDid || "default" } ` ;
const cached = this . _getCached < any > ( cacheKey ) ;
const cached = this . _getCached < any > ( cacheKey ) ;
if ( cached ) {
if ( cached ) {
return { . . . cached , . . . defaults } ; // Merge with any new defaults
return { . . . cached , . . . defaults } ; // Merge with any new defaults
@ -480,9 +486,13 @@ export const PlatformServiceMixin = {
if ( ! currentDid ) {
if ( ! currentDid ) {
settings = await this . $settings ( defaults ) ;
settings = await this . $settings ( defaults ) ;
} else {
} else {
settings = await this . $getMergedSettings ( MASTER_SETTINGS_KEY , currentDid , defaults ) ;
settings = await this . $getMergedSettings (
MASTER_SETTINGS_KEY ,
currentDid ,
defaults ,
) ;
}
}
return this . _setCached ( cacheKey , settings , CACHE_DEFAULTS . settings ) ;
return this . _setCached ( cacheKey , settings , CACHE_DEFAULTS . settings ) ;
} ,
} ,
@ -498,28 +508,28 @@ export const PlatformServiceMixin = {
* /
* /
async $saveSettings ( changes : any ) : Promise < boolean > {
async $saveSettings ( changes : any ) : Promise < boolean > {
const result = await databaseUtil . updateDefaultSettings ( changes ) ;
const result = await databaseUtil . updateDefaultSettings ( changes ) ;
// Invalidate related caches
// Invalidate related caches
this . _invalidateCache ( ` settings_ ${ MASTER_SETTINGS_KEY } ` ) ;
this . _invalidateCache ( ` settings_ ${ MASTER_SETTINGS_KEY } ` ) ;
this . _invalidateCache ( ` account_settings_default ` ) ;
this . _invalidateCache ( ` account_settings_default ` ) ;
return result ;
return result ;
} ,
} ,
/ * *
/ * *
* Save user - specific settings with cache invalidation - $saveUserSettings ( )
* Save user - specific settings with cache invalidation - $saveUserSettings ( )
* Ultra - concise shortcut for updateDidSpecificSettings
* Ultra - concise shortcut for updateDidSpecificSettings
* @param did DID identifier
* @param did DID identifier
* @param changes Settings changes to save
* @param changes Settings changes to save
* @returns Promise < boolean > Success status
* @returns Promise < boolean > Success status
* /
* /
async $saveUserSettings ( did : string , changes : any ) : Promise < boolean > {
async $saveUserSettings ( did : string , changes : any ) : Promise < boolean > {
const result = await databaseUtil . updateDidSpecificSettings ( did , changes ) ;
const result = await databaseUtil . updateDidSpecificSettings ( did , changes ) ;
// Invalidate related caches
// Invalidate related caches
this . _invalidateCache ( ` account_settings_ ${ did } ` ) ;
this . _invalidateCache ( ` account_settings_ ${ did } ` ) ;
this . _invalidateCache ( ` settings_ ${ MASTER_SETTINGS_KEY } ` ) ;
this . _invalidateCache ( ` settings_ ${ MASTER_SETTINGS_KEY } ` ) ;
return result ;
return result ;
} ,
} ,
@ -559,7 +569,7 @@ export const PlatformServiceMixin = {
* Forces reload of contacts from database
* Forces reload of contacts from database
* /
* /
async $refreshContacts ( ) : Promise < any [ ] > {
async $refreshContacts ( ) : Promise < any [ ] > {
this . _invalidateCache ( 'contacts_all' ) ;
this . _invalidateCache ( "contacts_all" ) ;
return await this . $contacts ( ) ;
return await this . $contacts ( ) ;
} ,
} ,
@ -612,11 +622,11 @@ declare module "@vue/runtime-core" {
$db ( sql : string , params? : unknown [ ] ) : Promise < any > ;
$db ( sql : string , params? : unknown [ ] ) : Promise < any > ;
$exec ( sql : string , params? : unknown [ ] ) : Promise < any > ;
$exec ( sql : string , params? : unknown [ ] ) : Promise < any > ;
$one ( sql : string , params? : unknown [ ] ) : Promise < any > ;
$one ( sql : string , params? : unknown [ ] ) : Promise < any > ;
// Query + mapping combo methods
// Query + mapping combo methods
$query ( sql : string , params? : unknown [ ] ) : Promise < any [ ] > ;
$query ( sql : string , params? : unknown [ ] ) : Promise < any [ ] > ;
$first ( sql : string , params? : unknown [ ] ) : Promise < any | null > ;
$first ( sql : string , params? : unknown [ ] ) : Promise < any | null > ;
// Enhanced utility methods
// Enhanced utility methods
$dbQuery ( sql : string , params? : unknown [ ] ) : Promise < any > ;
$dbQuery ( sql : string , params? : unknown [ ] ) : Promise < any > ;
$dbExec ( sql : string , params? : unknown [ ] ) : Promise < any > ;
$dbExec ( sql : string , params? : unknown [ ] ) : Promise < any > ;
@ -624,17 +634,17 @@ declare module "@vue/runtime-core" {
$getSettings ( key : string , defaults? : any ) : Promise < any > ;
$getSettings ( key : string , defaults? : any ) : Promise < any > ;
$getMergedSettings ( key : string , did? : string , defaults? : any ) : Promise < any > ;
$getMergedSettings ( key : string , did? : string , defaults? : any ) : Promise < any > ;
$withTransaction < T > ( fn : ( ) = > Promise < T > ) : Promise < T > ;
$withTransaction < T > ( fn : ( ) = > Promise < T > ) : Promise < T > ;
// Cached specialized shortcuts (massive performance boost)
// Cached specialized shortcuts (massive performance boost)
$contacts ( ) : Promise < any [ ] > ;
$contacts ( ) : Promise < any [ ] > ;
$settings ( defaults? : any ) : Promise < any > ;
$settings ( defaults? : any ) : Promise < any > ;
$accountSettings ( did? : string , defaults? : any ) : Promise < any > ;
$accountSettings ( did? : string , defaults? : any ) : Promise < any > ;
// Settings update shortcuts (eliminate 90% boilerplate)
// Settings update shortcuts (eliminate 90% boilerplate)
$saveSettings ( changes : any ) : Promise < boolean > ;
$saveSettings ( changes : any ) : Promise < boolean > ;
$saveUserSettings ( did : string , changes : any ) : Promise < boolean > ;
$saveUserSettings ( did : string , changes : any ) : Promise < boolean > ;
$saveMySettings ( changes : any ) : Promise < boolean > ;
$saveMySettings ( changes : any ) : Promise < boolean > ;
// Cache management methods
// Cache management methods
$refreshSettings ( ) : Promise < any > ;
$refreshSettings ( ) : Promise < any > ;
$refreshContacts ( ) : Promise < any [ ] > ;
$refreshContacts ( ) : Promise < any [ ] > ;