Files
bedolaga-cabinet/src/utils/logger.ts
c0mrade 562ab7abf7 refactor: full codebase cleanup, dependency updates, and lint fixes
Phase 0: Remove ~920 lines of dead code (ThemeBentoPicker, PromoDiscountBadge,
AdminLayout, SettingsSidebar, MovingGradient, EmptyState, miniapp API, unused
types/functions/transitions/skeleton helpers). Fix API barrel file (add 20 missing exports).

Phase 1: Add ErrorBoundary (app/page/widget levels), centralize constants,
add axios timeout, fix staleTime:0 in React Query.

Phase 2: Consolidate hexToHsl, extract email validation, fix duplicate code.

Phase 3: Fix auth race condition (await checkAdminStatus), memoize useCurrency,
add WebSocket message validation.

Phase 4: Extract useBranding, useFeatureFlags, useScrollRestoration from AppShell.

Phase 5: Remove all eslint-disable react-hooks/exhaustive-deps (14 total),
simplify logger, remove deprecated hooks (useBackButton, useTelegramDnd,
useTelegramWebApp).

Dependencies: React 19, react-router 7, zustand 5, i18next 25, react-i18next 16,
eslint-plugin-react-refresh 0.5. Remove unused @lottiefiles/dotlottie-react.
Convert vite manualChunks to function-based approach for react-router v7 compat.

Lint: Fix logger.ts no-unused-expressions, fix react-refresh/only-export-components
in 6 Radix primitive files (const re-exports → direct re-exports), fix
WebSocketProvider exhaustive-deps. Result: 0 errors, 0 warnings.

Add CLAUDE.md to .gitignore.
2026-02-06 16:55:55 +03:00

47 lines
1.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Утилита для логирования только в development режиме
* В production логи не выводятся (кроме error)
*/
const isDev = import.meta.env.DEV;
type LogLevel = 'log' | 'warn' | 'debug';
function devOnly(level: LogLevel, prefix?: string) {
return (...args: unknown[]): void => {
if (isDev) {
if (prefix) {
console[level](`[${prefix}]`, ...args);
} else {
console[level](...args);
}
}
};
}
function errorLog(prefix?: string) {
return (...args: unknown[]): void => {
if (prefix) {
console.error(`[${prefix}]`, ...args);
} else {
console.error(...args);
}
};
}
function createLoggerInstance(prefix?: string) {
return {
log: devOnly('log', prefix),
warn: devOnly('warn', prefix),
error: errorLog(prefix),
debug: devOnly('debug', prefix),
};
}
export const logger = {
...createLoggerInstance(),
createLogger: (prefix: string) => createLoggerInstance(prefix),
};
export default logger;