/ src / costHook.ts
costHook.ts
 1  import { useEffect } from 'react'
 2  import { formatTotalCost, saveCurrentSessionCosts } from './cost-tracker.js'
 3  import { hasConsoleBillingAccess } from './utils/billing.js'
 4  import type { FpsMetrics } from './utils/fpsTracker.js'
 5  
 6  export function useCostSummary(
 7    getFpsMetrics?: () => FpsMetrics | undefined,
 8  ): void {
 9    useEffect(() => {
10      const f = () => {
11        if (hasConsoleBillingAccess()) {
12          process.stdout.write('\n' + formatTotalCost() + '\n')
13        }
14  
15        saveCurrentSessionCosts(getFpsMetrics?.())
16      }
17      process.on('exit', f)
18      return () => {
19        process.off('exit', f)
20      }
21    }, [])
22  }