
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
clock-functions
Advanced tools
A JavaScript/TypeScript library containing stopwatch and timer classes.
npm install clock-functions --save
const clockFn = require('clock-functions');
// or
import clockFn from 'clock-functions';
Stopwatch is a class used to measure time in milliseconds.
Stopwatch constructor only has one optional parameter:
autoStart: boolean
- if the stopwatch should start automatically. Defaults to false
.const stopwatch = new Stopwatch();
// or
const stopwatch = new Stopwatch(true); //automatically starts!
Stopwatch has the following methods:
start()
This method starts the stopwatch, if it is not already started.
If the stopwatch is already started, it does nothing.
start(emit: boolean): boolean
Returns false
if the stopwatch was already started, otherwise true
.
If emit
parameter is set to true
(default), the onstart
event will be emitted.
Example:
let stopwatch = new Stopwatch();
stopwatch.start(); // -> true - the stopwatch has started
stopwatch.start(); // -> false - the stopwatch was already started
stop()
This method stops the stopwatch, if it is not already stopped.
If the stopwatch is already stopped, it does nothing.
stop(emit: boolean): boolean
Returns false
if the stopwatch was already stopped, otherwise true
.
If emit
parameter is set to true
(default), the onstop
event will be emitted.
Example:
let stopwatch = new Stopwatch();
stopwatch.stop(); // -> false - the stopwatch was already stopped
stopwatch.start();
stopwatch.stop(); // -> true - the stopwatch has stopped
toggle()
This method toggles the stopwatch, depending on its current state.
toggle(emit: boolean): boolean
Returns true
if the stopwatch has been started, and false
if it has been stopped.
If emit
parameter is set to true
(default), the onstart
or onstop
event will be emitted, depending on the action taken.
Example:
let stopwatch = new Stopwatch();
stopwatch.toggle(); // -> true
stopwatch.toggle(); // -> false
stopwatch.toggle(); // -> true
stopwatch.stop();
stopwatch.toggle(); // -> true
isActive()
This method checks if the stopwatch is currently active, i.e. if it was started but wasn't recently stopped.
isActive(): boolean
Example:
let stopwatch = new Stopwatch();
stopwatch.isActive(); // -> false - the stopwatch was never started
stopwatch.start();
stopwatch.isActive(); // -> true - the stopwatch is active
time()
and valueOf()
Those methods return the total time the stopwatch has been active for. They can be used interchangably.
time(emit: boolean): number
// or
valueOf(emit: boolean): number
If emit
parameter is set to true
(default), the ontime
event will be emitted.
Example:
stopwatch = new Stopwatch();
stopwatch.start();
// and almost 4 seconds later...
stopwatch.time(); // -> 3914
stopwatch.stop();
// and after some more time...
stopwatch.time(); // -> 3914 - the value hasn't changed
sinceStart()
This method returns the time since the last time the stopwatch has been started.
If the stopwatch was never started, it returns null
.
sinceStart(): number | null
Example:
let stopwatch = new Stopwatch();
stopwatch.start();
// and almost 4 seconds later...
stopwatch.stop();
stopwatch.time(); // -> 3914
stopwatch.start();
// some more time later...
stopwatch.time(); // -> 6102
stopwatch.sinceStart(); // -> 2188
reset()
This method resets the stopwatch to 0ms, and keeps its current state.
If the stopwatch was never started, it does nothing.
reset(emit: boolean): boolean
Returns false
if the stopwatch was never started, otherwise true
.
If emit
parameter is set to true
(default), the onreset
event will be emitted.
Example:
let stopwatch = new Stopwatch();
stopwatch.start();
// and almost 4 seconds later...
stopwatch.time(); // -> 3914
stopwatch.reset();
stopwatch.time(); // -> 0
stopwatch.isActive(); // -> true
cancelStart()
This method cancels the last start. The stopwatch stops, and the time remains as it was on the last stop.
If the stopwatch is stopped, it does nothing.
cancelStart(): boolean
Returns false
if the stopwatch was stopped, otherwise true
.
Example:
let stopwatch = new Stopwatch();
stopwatch.start();
stopwatch.stop();
stopwatch.start();
stopwatch.cancelStart(); // -> true - the last start was cancelled, and the stopwatch is now inactive
stopwatch.cancelStart(); // -> false - the stopwatch was already stopped
cancelStop()
This method cancels the last stop. The stopwatch starts, and the duration between the last stop and current time gets added to the total.
If the stopwatch is started, it does nothing.
cancelStop(): boolean
Returns false
if the stopwatch was started, otherwise true
.
Example:
let stopwatch = new Stopwatch();
stopwatch.start();
stopwatch.stop();
stopwatch.cancelStop(); // -> true - the last stop was cancelled, and the stopwatch is now active
stopwatch.cancelStop(); // -> false - the stopwatch was already active
toString()
This method returns the same value as the time()
method, but with ms
string added at the end.
toString(): string
Example:
let stopwatch = new Stopwatch();
stopwatch.start();
// and almost 4 seconds later...
stopwatch.toString(); // -> "3914ms"
Stopwatch has the following public properties:
onstart
This property should be a function, and can be freely changed.
It gets called if the onstart
event is emitted.
onstop
This property should be a function, and can be freely changed.
It gets called if the onstop
event is emitted.
onreset
This property should be a function, and can be freely changed.
It gets called if the onreset
event is emitted.
ontime
This property should be a function, and can be freely changed.
It gets called if the ontime
event is emitted.
Timer is a class used to delay the execution of a function.
Timer constructor has three parameters:
delay: number
- the amount of time in ms until the function should be called.autoStart: boolean
- if the timer should start automatically. Optional, defaults to true
.callback: Function
- the function to be called. It can also be specified by setting the object's property onfinish
.const timer = new Timer(10000);
// or
const timer = new Timer(10000, false, () => console.log('Hello world!'));
// or
const timer = new Timer(10000, false);
timer.onfinish = () => console.log('Hello world!');
Timer methods are extremely similar to Stopwatch methods, but there are no events emitted in any of the functions.
start()
This method starts the timer, if it is not already started.
If the timer is already started, it does nothing.
start(): boolean
Returns false
if the timer was already started, otherwise true
.
Example:
let timer = new Timer(10000);
timer.start(); // -> true - the timer has started
timer.start(); // -> false - the timer was already started
stop()
This method stops the timer, if it is not already stopped.
If the timer is already stopped, it does nothing.
stop(): boolean
Returns false
if the timer was already stopped, otherwise true
.
Example:
let timer = new Timer(10000);
timer.stop(); // -> false - the timer was already stopped
timer.start();
timer.stop(); // -> true - the timer has stopped
toggle()
This method toggles the timer, depending on its current state.
toggle(): boolean
Returns true
if the timer has been started, and false
if it has been stopped.
Example:
let timer = new Timer(10000);
timer.toggle(); // -> true
timer.toggle(); // -> false
timer.toggle(); // -> true
timer.stop();
timer.toggle(); // -> true
isActive()
This method checks if the timer is currently active, i.e. if it was started but wasn't recently stopped.
isActive(): boolean
Example:
let timer = new Timer(10000);
timer.isActive(); // -> false - the timer was never started
timer.start();
timer.isActive(); // -> true - the timer is active
timeRemaining()
and valueOf()
Those methods return the time left until the function is called. They can be used interchangably.
time(): number
// or
valueOf(): number
Example:
let timer = new Timer(10000);
// and almost 4 seconds later...
timer.timeRemaining(); // -> 6086
sinceStart()
This method returns the time since the last time the timer has been started.
If the stopwatch was never started, it returns null
.
sinceStart(): number | null
Example:
let timer = new Timer(10000);
timer.start();
// and almost 4 seconds later...
timer.stop();
timer.timeRemaining(); // -> 6086
timer.start();
// some more time later...
timer.timeRemaining(); // -> 3898
timer.sinceStart(); // -> 2188
reset()
This method resets the timer back to full delay, and keeps its current state.
If the stopwatch was never started, it does nothing.
reset(): boolean
Returns false
if the stopwatch was never started, otherwise true
.
Example:
let timer = new Timer(10000);
timer.start();
// and almost 4 seconds later...
timer.timeRemaining(); // -> 6086
timer.reset();
timer.timeRemaining(); // -> 10000
timer.isActive(); // -> true
toString()
This method returns the time remaining out of the full delay, with ms
string added at the end.
toString(): string
Example:
let timer = new Timer(10000);
timer.start();
// and almost 4 seconds later...
timer.toString(); // -> "6086/10000ms"
Timer, unline Stopwatch, only has two properties:
onfinish
This property should be a function, and can be freely changed.
It gets called if the timer onstart
reaches 0 milliseconds.
delay
This property is read-only.
It stores the maximum delay in ms after which the callback function should be called.
Clock Functions library also provides a few useful time-related constants:
SECOND
- equal to 1,000 milliseconds, or 1 second.MINUTE
- equal to 60,000 milliseconds, or 1 minute.HOUR
- equal to 3,600,1000 milliseconds, or 1 hour.DAY
- equal to 86,400,000 milliseconds, or 24 hours.MONTH
- equal to 2,592,000,000 milliseconds, or 30 days.YEAR
- equal to 31,536,000,000 milliseconds, or 365 days.FAQs
A simple library with time-related classes.
The npm package clock-functions receives a total of 2 weekly downloads. As such, clock-functions popularity was classified as not popular.
We found that clock-functions 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
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.