UNPKG

pulse-ai-utils

Version:

Utility functions and helpers for AI-powered applications

45 lines (44 loc) 2.69 kB
export declare function normalizeQueryFilters(filters: Record<string, any>, defaults?: Partial<Record<'type' | 'category' | 'region' | 'area', string>>): Record<string, any>; declare class FirestoreService { getDocuments(collection: string, id: string | null, dbId: string, timestamp?: string | null, intervalMinutes?: number | null, fields?: string[] | null): Promise<any>; createOrUpdateDocument(collection: string, id: string, data: Record<string, any>, dbId: string): Promise<{ message: string; }>; updateDocument(collection: string, id: string, data: Record<string, any>, dbId: string): Promise<{ message: string; }>; batchUpsertDocuments(collection: string, docs: Array<Record<string, any>>, dbId: string): Promise<{ message: string; }>; getDocumentsByFields(collection: string, dbId: string, filters?: Record<string, any>, defaults?: Partial<Record<'type' | 'category' | 'region' | 'area', string>>): Promise<any[]>; /** * Delete documents from a collection using arbitrary field filters. * A collection and at least one filter are required to avoid mass deletions. * @param {string} dbId Firestore database ID * @param {string} collection Firestore collection name * @param {object} filters - key/value pairs to filter on * @returns {Promise<number>} - Number of deleted documents */ deleteDocumentsByFields(dbId: string, collection: string, filters?: Record<string, any>): Promise<number>; /** * Delete documents older than the specified age in minutes. * Optionally filters by page field if provided. * @param {string} dbId Firestore database ID * @param {string} collection Firestore collection name * @param {number} maxAgeMinutes Age in minutes * @param {string} [page] Optional page filter * @returns {Promise<number>} Number of deleted documents */ deleteStaleDocuments(dbId: string, collection: string, maxAgeMinutes: number, page?: string): Promise<number>; /** * Cleanup stale contents based on refresh rate from Remote Config. * @param {string} dbId Firestore database ID * @param {string} page Page name used for config parameter and filtering * @param {Function} [fetchConfig] optional injection for tests * @returns {Promise<number>} Number of deleted documents */ cleanupStaleContents(dbId: string, collection: string, page?: string, fetchConfig?: (param: string) => Promise<string | null>): Promise<number>; deleteContents(dbId: string, collection: string, page: string): Promise<number>; } declare const firestoreService: FirestoreService; export default firestoreService;