eduardomoroni/trading-card-manager

View on GitHub
packages/frontend/src/data/DataLayer.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { initializeAsync } from 'expo-facebook';
import { FACEBOOK_APP_ID } from 'react-native-dotenv';
import { initializeFirebase } from './firebase';
import { BugSnag, initBugSnag } from './bugsnag';
import { initApolloClient } from './graphql/Apollo';
import { initializeAxios } from './services';

type DataLayerInit = {
  BugSnag?: BugSnag;
};

export function initializeDataLayer(): DataLayerInit {
  let BugSnag = undefined;
  const APP_NAME = 'mtgx frontend';

  try {
    initializeAsync(FACEBOOK_APP_ID, APP_NAME);
    initializeFirebase();
    initApolloClient();
    initializeAxios();
    BugSnag = initBugSnag();

    return {
      BugSnag,
    };
  } catch (e) {
    console.info('Failed to initialize Data Layer:');
    console.error(e);

    return { BugSnag };
  }
}