import type { Product } from '@/models/products' type ProductListHandler = (products: Product[]) => void const handlers = new Set() let lastProductsList: Product[] | null = null export function subscribeProductListStream(handler: ProductListHandler) { handlers.add(handler) if (lastProductsList?.length) { handler(lastProductsList) } return () => { handlers.delete(handler) } } export function applyProductsListFromStream(products: Product[]) { if (!Array.isArray(products) || !products.length) { return } lastProductsList = products handlers.forEach((handler) => handler(products)) } export function getLastStreamProductsList(): Product[] | null { return lastProductsList }