@tangential/firebase-util
Version:
Utility classes and shared functionality for Tangential services that use Firebase.
35 lines (34 loc) • 1.42 kB
TypeScript
import { DatabaseReference, Query, DataSnapshot } from '@firebase/database';
import { Observable } from 'rxjs';
export declare type OnRefKey = 'value' | 'child_added' | 'child_removed' | 'child_changed' | 'child_moved';
export declare const OnRefKeys: {
value: OnRefKey;
child_added: OnRefKey;
child_removed: OnRefKey;
child_changed: OnRefKey;
child_moved: OnRefKey;
};
/**
* Prevent typescript casting issues while maintaining/enhancing type safety.
*/
export declare class FireBlanket {
static util: {
clean<T extends object>(obj: T, deep?: boolean): T;
removeIllegalKeys<T_1 extends object>(obj: T_1): T_1;
isLegalFirebaseKey(key: string): boolean;
isLegalFirebaseValue(value: any): boolean;
isFirebaseGeneratedId(key: string): boolean;
};
/**
* Read the value once and return.
* @param query
*/
static value(query: Query): Promise<DataSnapshot>;
static value$(query: Query): Observable<DataSnapshot>;
static awaitValue$(query: Query): Observable<DataSnapshot>;
static valueOnce$(query: Query): Observable<DataSnapshot>;
static set<T>(ref: DatabaseReference, value: T): Promise<void>;
static push<T>(ref: DatabaseReference, value: T): Promise<void>;
static update<T extends object>(ref: DatabaseReference, value: T): Promise<void>;
static remove<T>(ref: DatabaseReference): Promise<void>;
}