@strg/behave-tracking-client-lib
v4.1.4
Published
STRG.BeHave - Tracking Client Library
Downloads
190
Readme
BeHave Tracking Client
This library contains the BeHave tracking client, it is intended to use it inside a client application integration and not standalone.
Getting Started
Prerequisites
Specification
The tracking client library register in a global namespace and forward all valid events to the BeHave tracking websocket server, invalid events will be droped. The library communicates with BeHave.tracking-service.
How to use
config
const config = {
NAMESPACE: 'test',
ENDPOINT: ' wss://behave.test.at/ws/event',
RECONNECT_TIMEOUT: 60000,
CLIENT_STORAGE_NAMESPACE: 'test',
}
init
import {
TrackerAPI,
TrackerService,
TrackerWS,
ClientStorage,
} from '@strg-behave/tracking-client-lib'
const ws = new TrackerWS(config)
const storage = new ClientStorage(config)
const service = new TrackerService(ws, storage, config)
const api = new TrackerAPI(service, config)
track
The events can be send to the global namespace defined by config.NAMESPACE
.
// assume global namespace is `data`
data = data || []
let event = {
key: 'test', // required
value: 'test', // required
time: Date.now(), // optional
content: 'https://www.test.at', // optional keys will be passed as plain string
}
data.push(event)
Where time
and content
are optional parameters, time
will be set (if not provided) inside tracking service layer. The value of content
will be hashed as CRC32 checksum and passed to the WebSocket when set.
Development
Installation
npm install
Testing
npm run test
Coverage Report
Starts an interactive http server on port 8888
.
npm run coverage
ESLint
To check the code syntax integrity according to our ESLint specification run:
npm run lint
To autofix code syntax integrity run:
npm run lint:fix
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository. To increase a version and tag in GIT run:
npm version major|minor|patch
Authors
- Can Atesman - first implementation
- Ralf Traunsteiner - second implementation, rewritten most of the code parts and lot of improvements, starts decoupeling
- Nils Müller - reduced to tracking library functionality, reimplementation in layered architecture