pulse-ai-utils
Version:
Utility functions and helpers for AI-powered applications
45 lines (44 loc) • 2.69 kB
TypeScript
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;