From 78bdf7235ad2bb5c0656f01b1c32c72a1c530b52 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Lafleur Date: Sat, 30 Mar 2024 12:41:52 -0400 Subject: [PATCH] feat(Console): provide a mean to log only in dev (#794) --- packages/react/src/index.ts | 5 +++++ packages/react/src/utils/dev-console.ts | 15 +++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 packages/react/src/utils/dev-console.ts diff --git a/packages/react/src/index.ts b/packages/react/src/index.ts index 9273530af..924b9e088 100644 --- a/packages/react/src/index.ts +++ b/packages/react/src/index.ts @@ -1,3 +1,8 @@ +// eslint-disable-next-line no-underscore-dangle, no-var, vars-on-top +declare global { var __DS_DEV__: boolean; } +// eslint-disable-next-line no-underscore-dangle +global.__DS_DEV__ = process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test'; + // Buttons export { Button } from './components/buttons/button'; export { IconButton } from './components/buttons/icon-button'; diff --git a/packages/react/src/utils/dev-console.ts b/packages/react/src/utils/dev-console.ts new file mode 100644 index 000000000..4ccbc951e --- /dev/null +++ b/packages/react/src/utils/dev-console.ts @@ -0,0 +1,15 @@ +type DevConsole = Pick; + +// eslint-disable-next-line no-underscore-dangle +const inDevMode = globalThis.__DS_DEV__; + +// eslint-disable-next-line @typescript-eslint/no-empty-function +function noop(): void {} + +/* eslint-disable no-console */ +export const devConsole: DevConsole = { + log: inDevMode ? console.log : noop, + info: inDevMode ? console.info : noop, + warn: inDevMode ? console.warn : noop, + error: inDevMode ? console.error : noop, +};