UNPKG

@eslam-elmeniawy/react-native-common-components

Version:

Common `ReactNative` components packed in library for usage in projects.

142 lines (139 loc) 4.36 kB
"use strict"; // Types imports. let reactotron; let firebaseLogLevels = []; let isLocalLogEnable = false; let originalInfo; let originalLog; let originalWarn; let originalError; const configureReactotron = options => { const { appName, clientOptions, pluginCreators } = options ?? {}; const { name, ...restClientOptions } = clientOptions ?? {}; reactotron?.configure({ name: name ?? appName, ...restClientOptions }); pluginCreators?.forEach(pluginCreator => reactotron?.use(pluginCreator)); reactotron?.useReactNative().connect(); // Clear log on start. reactotron?.clear?.(); }; const info = (message, ...optionalParams) => { const tag = 'INFO'; if (firebaseLogLevels.includes(tag)) { try { require('@react-native-firebase/app'); const getCrashlytics = require('@react-native-firebase/crashlytics').getCrashlytics; const crashlyticsLog = require('@react-native-firebase/crashlytics').log; crashlyticsLog(getCrashlytics(), `## ${tag} ## Message: ${message} ## Data: ${JSON.stringify(optionalParams)}`); } catch (_e) {} } if (isLocalLogEnable) { originalInfo?.(message, ...optionalParams); reactotron?.display({ name: tag, preview: typeof message === 'string' ? message : JSON.stringify(message), value: { message, optionalParams } }); } }; const log = (message, ...optionalParams) => { const tag = 'LOG'; if (firebaseLogLevels.includes(tag)) { try { require('@react-native-firebase/app'); const getCrashlytics = require('@react-native-firebase/crashlytics').getCrashlytics; const crashlyticsLog = require('@react-native-firebase/crashlytics').log; crashlyticsLog(getCrashlytics(), `## ${tag} ## Message: ${message} ## Data: ${JSON.stringify(optionalParams)}`); } catch (_e) {} } if (isLocalLogEnable) { originalLog?.(message, ...optionalParams); reactotron?.display({ name: tag, preview: typeof message === 'string' ? message : JSON.stringify(message), value: { message, optionalParams } }); } }; const warn = (message, ...optionalParams) => { const tag = 'WARN'; if (firebaseLogLevels.includes(tag)) { try { require('@react-native-firebase/app'); const getCrashlytics = require('@react-native-firebase/crashlytics').getCrashlytics; const crashlyticsLog = require('@react-native-firebase/crashlytics').log; crashlyticsLog(getCrashlytics(), `## ${tag} ## Message: ${message} ## Data: ${JSON.stringify(optionalParams)}`); } catch (_e) {} } if (isLocalLogEnable) { originalWarn?.(message, ...optionalParams); reactotron?.display({ name: tag, preview: typeof message === 'string' ? message : JSON.stringify(message), value: { message, optionalParams }, important: true }); } }; const error = (message, ...optionalParams) => { const tag = 'ERROR'; if (firebaseLogLevels.includes(tag)) { try { require('@react-native-firebase/app'); const getCrashlytics = require('@react-native-firebase/crashlytics').getCrashlytics; const crashlyticsRecordError = require('@react-native-firebase/crashlytics').recordError; crashlyticsRecordError(getCrashlytics(), new Error(`## ${tag} ## Message: ${message} ## Data: ${JSON.stringify(optionalParams)}`)); } catch (_e) {} } if (isLocalLogEnable) { originalError?.(message, ...optionalParams); reactotron?.display({ name: tag, preview: typeof message === 'string' ? message : JSON.stringify(message), value: { message, optionalParams }, important: true }); } }; const connectConsoleToReactotron = () => { originalInfo = console.info; originalLog = console.log; originalWarn = console.warn; originalError = console.error; console.info = info; console.log = log; console.warn = warn; console.error = error; }; export const configureLog = options => { try { reactotron = require('reactotron-react-native').default; } catch (_e) {} firebaseLogLevels = options?.firebaseLogLevels ?? []; isLocalLogEnable = options?.isLocalLogEnable ?? false; configureReactotron(options); connectConsoleToReactotron(); return reactotron; }; //# sourceMappingURL=LogConfig.js.map