diff --git a/demo/vite.config.demo.ts b/demo/vite.config.demo.ts index 17e8ae0..91cd260 100644 --- a/demo/vite.config.demo.ts +++ b/demo/vite.config.demo.ts @@ -19,4 +19,7 @@ export default defineConfig({ plugins: [ react(), ], + define: { + __REACT_SHARED_STATES_DEV__: process.env.NODE_ENV === 'development' ? 'true' : 'false', + } }); \ No newline at end of file diff --git a/package.json b/package.json index 50956cf..fac732d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-shared-states", - "version": "1.0.5", + "version": "1.0.6", "type": "module", "description": "Global state made as simple as useState, with zero config, built-in async caching, and automatic scoping.", "keywords": [ diff --git a/src/config/index.ts b/src/config/index.ts new file mode 100644 index 0000000..eab8541 --- /dev/null +++ b/src/config/index.ts @@ -0,0 +1,6 @@ +export let isDevMode = false; + +// noinspection JSUnusedGlobalSymbols +export const setDevMode = (value: boolean) => { + isDevMode = value; +}; \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 1a350e1..c157a2c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,4 @@ export * from "./context"; export * from "./hooks"; -export * from "./types"; \ No newline at end of file +export * from "./types"; +export * from "./config"; \ No newline at end of file diff --git a/src/lib/utils.ts b/src/lib/utils.ts index de80e66..98ff485 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,7 +1,8 @@ import type {NonEmptyString} from "../types"; +import {isDevMode} from "../config"; export const log = (...args: any[]) => { - if (process.env.NODE_ENV !== 'development') return; + if ((typeof __REACT_SHARED_STATES_DEV__ === "undefined" || !__REACT_SHARED_STATES_DEV__) && !isDevMode) return; console.log( '%c[react-shared-states]', 'color: #007acc; font-weight: bold', diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..2c8288a --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1,3 @@ +/// + +declare const __REACT_SHARED_STATES_DEV__ : boolean; \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index efa3675..476bf3b 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -41,5 +41,8 @@ export default defineConfig({ exclude: ['node_modules', 'dist'], // Exclude unnecessary files }) - ] + ], + define: { + __REACT_SHARED_STATES_DEV__: process.env.NODE_ENV === 'development' ? 'true' : 'false', + } }); \ No newline at end of file