# abstract-timing-provider

> A library for easily setting up a Timing Object Provider using any data source.

Latest version **0.1.4** (published 2023-04-26) · 0 weekly downloads

## Install

```sh
npm install abstract-timing-provider
pnpm add abstract-timing-provider
yarn add abstract-timing-provider
bun add abstract-timing-provider
```

## Health

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

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.4 |
| Published | 2023-04-26 |
| First published | 2023-04-26 |
| Weekly downloads | 0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 240.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Maintainers | salmoro |

## Links

- npm: https://www.npmjs.com/package/abstract-timing-provider
- Repository: https://github.com/salmoro/abstract-timing-provider
- Homepage: https://github.com/salmoro/abstract-timing-provider#readme
- Issues: https://github.com/salmoro/abstract-timing-provider/issues
- npm.io page: https://npm.io/package/abstract-timing-provider

## Recent versions

- 0.1.4 (latest) — 2023-04-26
- 0.1.3 — 2023-04-26
- 0.1.2 — 2023-04-26
- 0.1.1 — 2023-04-26
- 0.1.0 — 2023-04-26

## README

# Abstract Timing Provider
A library for easily setting up a Timing Object Provider using any data source. 

### Demo
https://salmoro.github.io/abstract-timing-provider/demo/dist


# Installation
> **Note** 
> "firebase" installation is only needed if using Firebase as a datasource

```shell
npm install firebase abstract-timing-provider
```
# Usage

```ts
import {AbstractTimingProvider} from 'abstract-timing-provider';
import {FirebaseDatasource} from "abstract-timing-provider/datasources";

const dataSource = new FirebaseDatasource({
    docPath: `my-sync/${sessionId}`, // A unique path which correlates to a specific session 
    firebase: {
        projectId: '<FIREBASE_PROJECT_ID>',
        apiKey: '<FIREBASE_API_KEY>',
    }
});

const provider = new AbstractTimingProvider(dataSource);

// Do something with the provider, for example:
new TimingObject(provider);
```

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