/
mustreets
/
TestApp
Обзор
Документация
Войти
/
mustreets
/
TestApp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
1
CI/CD
Аналитика
Безопасность
master
src/utils/logger/core/wrapWithLogging.ts
51 строка
950 B
Slava
Remove Crashlytics integration from the beta lane in Fastfile
07 июн 2026, 20:06
07 июн 2026, 20:06
f21773c
Код
Авторство
О чём код?
import { appError, appLog, formatCallLabel, formatReturnLabel, type LogMode, } from './logSink'; export type LogPrefixes = { call: string; return: string; error: string; }; export type WrapWithLoggingOptions = { label: string; prefixes: LogPrefixes; mode: LogMode; }; export function wrapWithLogging< T extends (...args: unknown[]) => unknown, >(fn: T, options: WrapWithLoggingOptions): T { const { label, prefixes, mode } = options; return function ( this: unknown, ...args: Parameters<T> ): ReturnType<T> { appLog( mode, formatCallLabel(prefixes.call, label), args, ); try { const result = fn.apply(this, args) as ReturnType<T>; appLog( mode, formatReturnLabel(prefixes.return, label), result, ); return result; } catch (error) { appError(`${prefixes.error} ${label}:`, error); throw error; } } as T; }