Skip to content

Latest commit

 

History

History
62 lines (40 loc) · 1.56 KB

README.md

File metadata and controls

62 lines (40 loc) · 1.56 KB

Tiny Proxy

Small Javascript proxy wrapper around setTimeout, clearTimeout, setInterval and clearInterval. This library can help you identify the leaking timers and intervals in your applications.

Installation

  • Yarn
yarn add tiny-timer-proxy
  • NPM
npm i tiny-timer-proxy

Why?

This tool was developed to monitor and analyze the frequency of timeouts and intervals in a React Native application, helping developers assess their impact on performance. It can help identifying uncleared & leaking timeouts and intervals.

Usage

// Import
import { TinyProxy } from "tiny-timer-proxy";

// Initialize the class
const p = new TinyProxy({ shouldLog: true });

// Call timeout or/and interval setup methods

p.setupTimerProxy(); // timeouts
p.setupIntervalProxy(); // intervals

After adding above to somewhere in your application, run your application and you can observe the console logs if shouldLog property is set to true.

You should see something like:

   # ....other logs....
   clearTimeout called with: {"argumentsList": [1074], "id": 1074, "thisArg": undefined}
   clearTimeout called with: {"argumentsList": [1107], "id": 1107, "thisArg": undefined}
   setTimeout called with: {"argumentsList": [[Function anonymous], 5000], "id":
   1125, "thisArg": undefined}
   # ....other logs....

Alternatively, you can access the active timeout and interval variables(Set) via:

const p = new TinyProxy({ shouldLog: true });

p.setupTimerProxy(); // timeouts

console.log('active timeouts ->', p.activeTimeouts)