@angular/fire
Version:
Angular + Firebase = ❤️
58 lines (52 loc) • 2.74 kB
TypeScript
import * as i0 from '@angular/core';
import { NgZone, InjectionToken, ModuleWithProviders } from '@angular/core';
import { Observable } from 'rxjs';
import firebase from 'firebase/compat/app';
import { FirebaseOptions, FirebaseAppSettings } from 'firebase/app';
type MyFunction = (...args: any[]) => any;
type FunctionPropertyNames<T> = {
[K in keyof T]: T[K] extends MyFunction ? K : never;
}[keyof T];
type ReturnTypeOrNever<T> = T extends MyFunction ? ReturnType<T> : never;
type ParametersOrNever<T> = T extends MyFunction ? Parameters<T> : never;
type PromiseReturningFunctionPropertyNames<T> = {
[K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? K : never;
}[FunctionPropertyNames<T>];
type NonPromiseReturningFunctionPropertyNames<T> = {
[K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? never : K;
}[FunctionPropertyNames<T>];
type NonFunctionPropertyNames<T> = {
[K in keyof T]: T[K] extends MyFunction ? never : K;
}[keyof T];
type ɵPromiseProxy<T> = {
[K in NonFunctionPropertyNames<T>]: Promise<T[K]>;
} & {
[K in NonPromiseReturningFunctionPropertyNames<T>]: (...args: ParametersOrNever<T[K]>) => Promise<ReturnTypeOrNever<T[K]>>;
} & {
[K in PromiseReturningFunctionPropertyNames<T>]: T[K];
};
declare const ɵlazySDKProxy: (klass: any, observable: Observable<any>, zone: NgZone, options?: {
spy?: {
get?: ((name: string, it: any) => void);
apply?: ((name: string, args: any[], it: any) => void);
};
}) => any;
declare const ɵapplyMixins: (derivedCtor: any, constructors: any[]) => void;
interface FirebaseApp extends firebase.app.App {
}
declare class FirebaseApp {
constructor(app: firebase.app.App);
}
declare const FIREBASE_OPTIONS: InjectionToken<FirebaseOptions>;
declare const FIREBASE_APP_NAME: InjectionToken<string>;
declare function ɵfirebaseAppFactory(options: FirebaseOptions, zone: NgZone, nameOrConfig?: string | FirebaseAppSettings | null): FirebaseApp;
declare class AngularFireModule {
static initializeApp(options: FirebaseOptions, nameOrConfig?: string | FirebaseAppSettings): ModuleWithProviders<AngularFireModule>;
constructor(platformId: Object);
static ɵfac: i0.ɵɵFactoryDeclaration<AngularFireModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<AngularFireModule, never, never, never>;
static ɵinj: i0.ɵɵInjectorDeclaration<AngularFireModule>;
}
declare function ɵcacheInstance<T>(cacheKey: any, moduleName: string, appName: string, fn: () => T, deps: any): T;
export { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp, ɵapplyMixins, ɵcacheInstance, ɵfirebaseAppFactory, ɵlazySDKProxy };
export type { ɵPromiseProxy };