# @smarterservices/smarterclock

> store of delta values between ntp time and local time to get an accurate sync time

Latest version **2.0.1** (published 2017-11-14) · 0 weekly downloads

## Install

```sh
npm install @smarterservices/smarterclock
pnpm add @smarterservices/smarterclock
yarn add @smarterservices/smarterclock
bun add @smarterservices/smarterclock
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.1 |
| Published | 2017-11-14 |
| First published | 2016-05-17 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | jordan l piepkow |
| Maintainers | jasonfill, jpiepkow, smarterservicesdev |
| Keywords | ntp, clock, sync |

## Links

- npm: https://www.npmjs.com/package/@smarterservices/smarterclock
- Repository: https://github.com/SmarterServices/smarterclock
- Homepage: https://github.com/SmarterServices/smarterclock#readme
- Issues: https://github.com/SmarterServices/smarterclock/issues
- npm.io page: https://npm.io/package/@smarterservices/smarterclock

## Dependencies (1)

- [ntp-client](https://npm.io/package/ntp-client.md) ^0.5.3

## Alternatives

- [@commercetools/sync-actions](https://npm.io/package/@commercetools/sync-actions.md) — 25.1K weekly downloads
- [cwait](https://npm.io/package/cwait.md) — 21.4K weekly downloads
- [@ledgerhq/hw-app-cosmos](https://npm.io/package/@ledgerhq/hw-app-cosmos.md) — 4.2K weekly downloads
- [@financial-times/o-loading](https://npm.io/package/@financial-times/o-loading.md) — 2.8K weekly downloads
- [fa](https://npm.io/package/fa.md) — 185 weekly downloads

## Recent versions

- 2.0.1 (latest) — 2017-11-14
- 2.0.0 — 2017-11-02
- 1.1.1 — 2016-07-28
- 1.0.9 — 2016-07-27
- 1.0.8 — 2016-06-02
- 1.0.7 — 2016-05-17
- 1.0.6 — 2016-05-17
- 1.0.5 — 2016-05-17
- 1.0.3 — 2016-05-17
- 1.0.2 — 2016-05-17
- 1.0.1 — 2016-05-17
- 1.0.0 — 2016-05-17

## README

# SmarterClock

Used to ensure the time used is in sync across distributed systems. The sync is achived by the following process:

* Fetches the time from an NTP server.
* Adjusts for network latency and transfer time
* Computes the delta between the NTP server and the system clock and stores the delta for later use.
* Uses all the stored deltas to get the average time drift from UTC.

##Getting Started
Install the module.

```javascript
npm install @smarterservices/smarterclock
```	

Import the module into your codebase

```javascript
var smarterclock = require('@smarterservices/smarterclock')
```	

Create an instance of the clock object passing in the required params. See the options section below for options that can be used.

```javascript
var options = {};

// create a new instance
var clock = new smarterclock(options);

// get the current unix timestamp
var currentTime = clock.getTime();

console.log(currentTime);
```

## Options

The clock constructor can accept the following options.  **all options are optional**

* ```syncDelay``` (number) : The time (in seconds) between each call to an NTP server to get the latest UTC timestamp. Defaults to 300 (which is 5 minutes).
* ```history``` (number): The nubmer of delta values that should be maintained and used for calculating your local time drift.  Defaults to 10.
* ```servers``` (array) : An array of NTP servers to use when looking up time.  Each value in the array should be an object with the keys ```server``` and ```port```.  Defaults to pool.ntp.org.

### Example

```javascript
{
	"syncDelay" : 60,
	"history": 10,
	"servers" : [{"server": "pool.ntp.org", "port": 123}]
}
```	

	
## Methods

###getTime()

Returns unix timestamp based on delta values between server and your local time. This is the time that can be used instead of ```new Date().getTime()```
	
#### Example	

```javascript
clock.getTime();
```	
	
	

###syncTime()

An on-demand method that will force a sync with an NTP server.

```javascript
clock.syncTime();
```

---
_Source: https://npm.io/package/@smarterservices/smarterclock · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
