UNPKG

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

Version:

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

146 lines (142 loc) 4.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.configureLog = void 0; var _reactotronReactNative = _interopRequireDefault(require("reactotron-react-native")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } // External imports. // Types imports. 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 ?? {}; _reactotronReactNative.default.configure({ name: name ?? appName, ...restClientOptions }); pluginCreators?.forEach(pluginCreator => _reactotronReactNative.default.use(pluginCreator)); _reactotronReactNative.default.useReactNative().connect(); // Clear log on start. _reactotronReactNative.default.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); _reactotronReactNative.default.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); _reactotronReactNative.default.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); _reactotronReactNative.default.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); _reactotronReactNative.default.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; }; const configureLog = exports.configureLog = !_reactotronReactNative.default ? undefined : options => { firebaseLogLevels = options?.firebaseLogLevels ?? []; isLocalLogEnable = options?.isLocalLogEnable ?? false; configureReactotron(options); connectConsoleToReactotron(); return _reactotronReactNative.default; }; //# sourceMappingURL=LogConfig.js.map