Remote Date
remote-date
is a JavaScript library for synchronizing local time with a remote server. It provides a way to ensure that your application uses accurate and consistent time data, by leveraging remote time sources and accounting for network delays.
Features
- Synchronizes local time with a remote server.
- Handles network delays and server processing times for accurate synchronization.
- Provides methods to get the current synchronized time and date.
Installation
To install remote-date
, use npm:
npm install remote-date
Documentation
You can view the documentation here:
https://dbayarchyk.github.io/remote-date.
Example
import { RemoteDate } from "remote-date";
const remoteDate = new RemoteDate({
remoteDate: new Date("2024-08-05T00:00Z"),
});
remoteDate.dateNow(); // 2024-08-05T00:00:00Z
// later in 1 second
remoteDate.dateNow(); // 2024-08-05T00:00:01Z
// later in 2 seconds
remoteDate.dateNow(); // 2024-08-05T00:00:03Z
// later in 7 seconds
remoteDate.dateNow(); // 2024-08-05T00:00:10Z
import { RemoteDate, RemoteDateSynchronizer } from "remote-date";
const remoteDate = new RemoteDate();
const remoteDateSynchronizer = new RemoteDateSynchronizer({
remoteDate: remoteDate,
fetchRemote: async ({ signal }) => {
const response = await fetch("https://api.example.com/remote-date", {
signal,
});
const data = await response.json();
return {
remoteDate: new Date(data.remoteDate),
serverStartProcessingMonotonicTimeInMs:
data.serverStartProcessingMonotonicTimeInMs,
serverEndProcessingMonotonicTimeInMs:
data.serverEndProcessingMonotonicTimeInMs,
};
},
});
await remoteDateSynchronizer.syncWithRemote();
// ...
remoteDate.dateNow(); // 2024-08-05T00:00:00Z
// later in 1 second
remoteDate.dateNow(); // 2024-08-05T00:00:01Z
// later in 2 seconds
remoteDate.dateNow(); // 2024-08-05T00:00:03Z
// later in 7 seconds
remoteDate.dateNow(); // 2024-08-05T00:00:10Z
References
License
This project is licensed under the MIT License - see the LICENSE file for details.