
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
activity-loop
Advanced tools
Checks whether a user interaction happened on the given element.
It's useful when you want to change an element's state when the user makes some interactions on the given element like clicking on it, moving the mouse cursor on the surface, etc. Or the other way round, you want to change the state when the user does nothing since the latest activity happened.
$ npm i activity-loop --save
import loop from 'activity-loop'
loop(document.getElementById('video-player'), {
activity: () => showControls(),
inactivity: () => hideControls()
})
loop(el, [options])
Type: HTMLElement
required
Type: Object
Default: {}
Callback function which is invoked when the user does some interactions on the given element's surface.
Type: Function
Type: Function
Callback function which is invoked when the user does nothing since the latest activity
Type: Number
Default: 1500
Timeout value in milliseconds. For example if it's 3000, it means that inactivity will occur if the user doesn't have any interactions within 3 seconds.
Note: the timer restarts every time when activity happens.
If you don't need the loop instance, it's recommended to call destroy() method to avoid memory leaks.
Whether the loop has to be paused
Type: Boolean
Default: true
Type: Object
Default: {}
You can enforce an immediate activity event to be fired after coming back from paused mode
Type: Boolean
Default: false
The loop instance is an event emitter so you can do the following:
const l = loop(el)
l.on('activity', () => {
// do something
})
l.on('inactivity', () => {
// do something
})
For further information, read the docs.
$ npm test
$ npm run build
$ npm run build-example
Pull requests are welcome! ;)
FAQs
Checks whether a user interaction happened on the given element
We found that activity-loop demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.