Kargi-Sitesi/node_modules/@angular/fire/fesm2015/angular-fire-compat.js

173 lines
7.5 KiB
JavaScript

import * as i0 from '@angular/core';
import { InjectionToken, isDevMode, NgZone, Optional, VERSION as VERSION$1, PLATFORM_ID, NgModule, Inject } from '@angular/core';
import firebase from 'firebase/compat/app';
import { VERSION } from '@angular/fire';
// DEBUG quick debugger function for inline logging that typescript doesn't complain about
// wrote it for debugging the ɵlazySDKProxy, commenting out for now; should consider exposing a
// verbose mode for AngularFire in a future release that uses something like this in multiple places
// usage: () => log('something') || returnValue
// const log = (...args: any[]): false => { console.log(...args); return false }
// The problem here are things like ngOnDestroy are missing, then triggering the service
// rather than dig too far; I'm capturing these as I go.
const noopFunctions = ['ngOnDestroy'];
// INVESTIGATE should we make the Proxy revokable and do some cleanup?
// right now it's fairly simple but I'm sure this will grow in complexity
const ɵlazySDKProxy = (klass, observable, zone, options = {}) => {
return new Proxy(klass, {
get: (_, name) => zone.runOutsideAngular(() => {
var _a;
if (klass[name]) {
if ((_a = options === null || options === void 0 ? void 0 : options.spy) === null || _a === void 0 ? void 0 : _a.get) {
options.spy.get(name, klass[name]);
}
return klass[name];
}
if (noopFunctions.indexOf(name) > -1) {
return () => {
};
}
const promise = observable.toPromise().then(mod => {
const ret = mod && mod[name];
// TODO move to proper type guards
if (typeof ret === 'function') {
return ret.bind(mod);
}
else if (ret && ret.then) {
return ret.then((res) => zone.run(() => res));
}
else {
return zone.run(() => ret);
}
});
// recurse the proxy
return new Proxy(() => { }, {
get: (_, name) => promise[name],
// TODO handle callbacks as transparently as I can
apply: (self, _, args) => promise.then(it => {
var _a;
const res = it && it(...args);
if ((_a = options === null || options === void 0 ? void 0 : options.spy) === null || _a === void 0 ? void 0 : _a.apply) {
options.spy.apply(name, args, res);
}
return res;
})
});
})
});
};
const ɵapplyMixins = (derivedCtor, constructors) => {
constructors.forEach((baseCtor) => {
Object.getOwnPropertyNames(baseCtor.prototype || baseCtor).forEach((name) => {
Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype || baseCtor, name));
});
});
};
class FirebaseApp {
constructor(app) {
return app;
}
}
const FIREBASE_OPTIONS = new InjectionToken('angularfire2.app.options');
const FIREBASE_APP_NAME = new InjectionToken('angularfire2.app.name');
function ɵfirebaseAppFactory(options, zone, nameOrConfig) {
const name = typeof nameOrConfig === 'string' && nameOrConfig || '[DEFAULT]';
const config = typeof nameOrConfig === 'object' && nameOrConfig || {};
config.name = config.name || name;
// Added any due to some inconsistency between @firebase/app and firebase types
const existingApp = firebase.apps.filter(app => app && app.name === config.name)[0];
// We support FirebaseConfig, initializeApp's public type only accepts string; need to cast as any
// Could be solved with https://github.com/firebase/firebase-js-sdk/pull/1206
const app = (existingApp || zone.runOutsideAngular(() => firebase.initializeApp(options, config)));
try {
if (JSON.stringify(options) !== JSON.stringify(app.options)) {
const hmr = !!module.hot;
log$1('error', `${app.name} Firebase App already initialized with different options${hmr ? ', you may need to reload as Firebase is not HMR aware.' : '.'}`);
}
}
catch (e) { }
return new FirebaseApp(app);
}
const log$1 = (level, ...args) => {
if (isDevMode() && typeof console !== 'undefined') {
console[level](...args);
}
};
const FIREBASE_APP_PROVIDER = {
provide: FirebaseApp,
useFactory: ɵfirebaseAppFactory,
deps: [
FIREBASE_OPTIONS,
NgZone,
[new Optional(), FIREBASE_APP_NAME]
]
};
class AngularFireModule {
// tslint:disable-next-line:ban-types
constructor(platformId) {
firebase.registerVersion('angularfire', VERSION.full, 'core');
firebase.registerVersion('angularfire', VERSION.full, 'app-compat');
firebase.registerVersion('angular', VERSION$1.full, platformId.toString());
}
static initializeApp(options, nameOrConfig) {
return {
ngModule: AngularFireModule,
providers: [
{ provide: FIREBASE_OPTIONS, useValue: options },
{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }
]
};
}
}
AngularFireModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireModule, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.NgModule });
AngularFireModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireModule });
AngularFireModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireModule, providers: [FIREBASE_APP_PROVIDER] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireModule, decorators: [{
type: NgModule,
args: [{
providers: [FIREBASE_APP_PROVIDER]
}]
}], ctorParameters: function () { return [{ type: Object, decorators: [{
type: Inject,
args: [PLATFORM_ID]
}] }]; } });
function ɵcacheInstance(cacheKey, moduleName, appName, fn, deps) {
const [, instance, cachedDeps] = globalThis.ɵAngularfireInstanceCache.find((it) => it[0] === cacheKey) || [];
if (instance) {
if (!matchDep(deps, cachedDeps)) {
log('error', `${moduleName} was already initialized on the ${appName} Firebase App with different settings.${IS_HMR ? ' You may need to reload as Firebase is not HMR aware.' : ''}`);
log('warn', { is: deps, was: cachedDeps });
}
return instance;
}
else {
const newInstance = fn();
globalThis.ɵAngularfireInstanceCache.push([cacheKey, newInstance, deps]);
return newInstance;
}
}
function matchDep(a, b) {
try {
return a.toString() === b.toString();
}
catch (_) {
return a === b;
}
}
const IS_HMR = !!module.hot;
const log = (level, ...args) => {
if (isDevMode() && typeof console !== 'undefined') {
console[level](...args);
}
};
globalThis.ɵAngularfireInstanceCache || (globalThis.ɵAngularfireInstanceCache = []);
/**
* Generated bundle index. Do not edit.
*/
export { AngularFireModule, FIREBASE_APP_NAME, FIREBASE_OPTIONS, FirebaseApp, ɵapplyMixins, ɵcacheInstance, ɵfirebaseAppFactory, ɵlazySDKProxy };
//# sourceMappingURL=angular-fire-compat.js.map