import { FlowfulError } from './error'; export const MODE_DEV = 'development'; export const MODE_PROD = 'production'; export type MODE = typeof MODE_DEV | typeof MODE_PROD; let mode: MODE = MODE_PROD; if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV && process.env.NODE_ENV !== 'production') { mode = MODE_DEV; } export function checkMode(mode: MODE, functionName: string) { if (mode !== MODE_PROD && mode !== MODE_DEV) { throw new FlowfulError( `[Flowful][${functionName}] Invalid mode: "${mode}". The mode must be either "${MODE_PROD}" or "${MODE_DEV}".`, { mode } ); } return mode; } export function setGlobalMode(newMode: MODE) { mode = checkMode(newMode, 'setGlobalMode'); } export function getGlobalMode() { return mode; }