@strg/behave-tracking-client-lib

4.1.4 • Public • Published

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

Dependencies (0)

    Dev Dependencies (13)

    Package Sidebar

    Install

    npm i @strg/behave-tracking-client-lib

    Weekly Downloads

    7

    Version

    4.1.4

    License

    MIT

    Unpacked Size

    18.5 kB

    Total Files

    21

    Last publish

    Collaborators

    • tronstoner
    • tyriis
    • ajobi