all files / firebase/utils/ ModuleBase.js

80% Statements 8/10
50% Branches 2/4
100% Functions 2/2
80% Lines 8/10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46                                      30×     30×     30× 30× 30×     30× 30×                     8650×      
/**
 * @flow
 */
import { initialiseLogger } from './log';
import { initialiseNativeModule } from './native';
 
import type App from '../modules/core/app';
import type { FirebaseModuleConfig, FirebaseNamespace } from '../types';
 
export default class ModuleBase {
  _app: App;
  namespace: FirebaseNamespace;
 
  /**
   *
   * @param app
   * @param config
   */
  constructor(app: App, config: FirebaseModuleConfig) {
    Iif (!config.moduleName) {
      throw new Error('Missing module name');
    }
    Iif (!config.namespace) {
      throw new Error('Missing namespace');
    }
    const { moduleName } = config;
    this._app = app;
    this.namespace = config.namespace;
 
    // check if native module exists as all native
    initialiseNativeModule(this, config);
    initialiseLogger(
      this,
      `${app.name}:${moduleName.replace('RNFirebase', '')}`
    );
  }
 
  /**
   * Returns the App instance for current module
   * @return {*}
   */
  get app(): App {
    return this._app;
  }
}