@eslam-elmeniawy/react-native-common-components
Version:
Common `ReactNative` components packed in library for usage in projects.
146 lines (142 loc) • 4.78 kB
JavaScript
;
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