From dd134c0af9d62dce284f918adb78bfacfb746ee5 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 08:43:08 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=B9=20[Code=20Health]=20Replace=20cons?= =?UTF-8?q?ole=20statements=20with=20proper=20logger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: djmbdv <25411168+djmbdv@users.noreply.github.com> --- src/index.js | 5 +++-- src/lib/AstRenderer.js | 17 +++++++++++++---- src/lib/util/logger.js | 19 +++++++++++++++++++ src/lib/util/stringToTokens.js | 3 ++- 4 files changed, 37 insertions(+), 7 deletions(-) create mode 100644 src/lib/util/logger.js diff --git a/src/index.js b/src/index.js index b78b7601..4bde8c7a 100644 --- a/src/index.js +++ b/src/index.js @@ -10,6 +10,7 @@ import parser from './lib/parser'; import getUniqueID from './lib/util/getUniqueID'; import hasParents from './lib/util/hasParents'; import openUrl from './lib/util/openUrl'; +import logger from './lib/util/logger.js'; import tokensToAST from './lib/util/tokensToAST'; import renderRules from './lib/renderRules'; import AstRenderer from './lib/AstRenderer'; @@ -91,13 +92,13 @@ const getRenderer = ( debugPrintTree, ) => { if (renderer && rules) { - console.warn( + logger.warn( 'react-native-markdown-display you are using renderer and rules at the same time. This is not possible, props.rules is ignored', ); } if (renderer && style) { - console.warn( + logger.warn( 'react-native-markdown-display you are using renderer and style at the same time. This is not possible, props.style is ignored', ); } diff --git a/src/lib/AstRenderer.js b/src/lib/AstRenderer.js index 44f563ab..532a3b5c 100644 --- a/src/lib/AstRenderer.js +++ b/src/lib/AstRenderer.js @@ -1,6 +1,7 @@ import {StyleSheet} from 'react-native'; import {textStylePropsSet} from './data/textStyleProps'; +import logger from './util/logger.js'; import convertAdditionalStyles from './util/convertAdditionalStyles'; import getUniqueID from './util/getUniqueID'; @@ -30,6 +31,16 @@ export default class AstRenderer { this._debugPrintTree = debugPrintTree; } + _log = (...args) => { + if (this._debugPrintTree === true) { + logger.log(...args); + } + }; + + _warn = (...args) => { + logger.warn(...args); + }; + /** * * @param {string} type @@ -39,7 +50,7 @@ export default class AstRenderer { const renderFunction = this._renderRules[type]; if (!renderFunction) { - console.warn( + this._warn( `Warning, unknown render rule encountered: ${type}. 'unknown' render rule used (by default, returns null - nothing rendered)`, ); return this._renderRules.unknown; @@ -58,9 +69,7 @@ export default class AstRenderer { const renderFunction = this.getRenderFunction(node.type); const parents = [...parentNodes]; - if (this._debugPrintTree === true) { - console.log(`${'-'.repeat(parents.length)}${node.type}`); - } + this._log(`${'-'.repeat(parents.length)}${node.type}`); parents.unshift(node); diff --git a/src/lib/util/logger.js b/src/lib/util/logger.js new file mode 100644 index 00000000..7272ffe0 --- /dev/null +++ b/src/lib/util/logger.js @@ -0,0 +1,19 @@ +const logger = { + log: (...args) => { + if (typeof console !== 'undefined' && typeof console.log === 'function') { + console.log(...args); + } + }, + warn: (...args) => { + if (typeof console !== 'undefined' && typeof console.warn === 'function') { + console.warn(...args); + } + }, + error: (...args) => { + if (typeof console !== 'undefined' && typeof console.error === 'function') { + console.error(...args); + } + }, +}; + +export default logger; diff --git a/src/lib/util/stringToTokens.js b/src/lib/util/stringToTokens.js index 6ac77f37..3a293462 100644 --- a/src/lib/util/stringToTokens.js +++ b/src/lib/util/stringToTokens.js @@ -1,9 +1,10 @@ +import logger from './logger.js'; export function stringToTokens(source, markdownIt) { let result = []; try { result = markdownIt.parse(source, {}); } catch (err) { - console.warn(err); + logger.warn(err); } return result;