react-native-firebase/lib/utils/ModuleBase.js

46 lines
1.2 KiB
JavaScript
Raw Normal View History

/**
* @flow
*/
import { initialiseLogger } from './log';
import { initialiseNativeModule } from './native';
import type FirebaseApp from '../modules/core/firebase-app';
import type { FirebaseModuleConfig } from '../types';
export default class ModuleBase {
_firebaseApp: FirebaseApp;
2017-09-25 14:38:54 +00:00
_native: Object;
_options: Object;
2017-07-18 05:04:12 +00:00
/**
*
* @param firebaseApp
* @param options
* @param withEventEmitter
*/
constructor(firebaseApp: FirebaseApp, options: Object, config: FirebaseModuleConfig) {
if (!config.moduleName) {
throw new Error('Missing module name');
}
if (!config.namespace) {
throw new Error('Missing namespace');
}
const { moduleName } = config;
this._firebaseApp = firebaseApp;
this._options = options;
// check if native module exists as all native
// TODO: Get rid of this._native and change to using getNativeModule instead?
this._native = initialiseNativeModule(this, config);
initialiseLogger(this, `${firebaseApp.name}:${moduleName.replace('RNFirebase', '')}`);
}
/**
* Returns the FirebaseApp instance for current module
* @return {*}
*/
2017-09-25 14:38:54 +00:00
get app(): FirebaseApp {
return this._firebaseApp;
}
}