import { track } from '@imtbl/metrics'; export const withMetrics = ( fn: () => T, flowName: string, ): T => { track('passport', flowName); try { return fn(); } catch (error) { if (error instanceof Error) { track('passport', flowName, { error }); } throw error; } }; export const withMetricsAsync = async ( fn: () => Promise, flowName: string, ): Promise => { track('passport', flowName); try { return await fn(); } catch (error) { if (error instanceof Error) { track('passport', flowName, { error }); } throw error; } };