freshyo/apps/backend/src/stores/store-initializer.ts
2026-02-07 00:10:47 +05:30

36 lines
No EOL
1.2 KiB
TypeScript

import roleManager from '../lib/roles-manager';
import { computeConstants } from '../lib/const-store';
import { initializeProducts } from './product-store';
import { initializeProductTagStore } from './product-tag-store';
import { initializeSlotStore } from './slot-store';
import { initializeBannerStore } from './banner-store';
/**
* Initialize all application stores
* This function handles initialization of:
* - Role Manager (fetches and caches all roles)
* - Const Store (syncs constants from DB to Redis)
* - Product Store (caches all products in Redis)
* - Product Tag Store (caches all product tags in Redis)
* - Slot Store (caches all delivery slots with products in Redis)
* - Banner Store (caches all banners in Redis)
*/
export const initializeAllStores = async (): Promise<void> => {
try {
console.log('Starting application stores initialization...');
await Promise.all([
roleManager.fetchRoles(),
computeConstants(),
initializeProducts(),
initializeProductTagStore(),
initializeSlotStore(),
initializeBannerStore(),
]);
console.log('All application stores initialized successfully');
} catch (error) {
console.error('Application stores initialization failed:', error);
throw error;
}
};