Frontend javascript library for pixel tracking on operator sites.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
build
demo
doc-build
src
test/unit
.babelrc
.eslintignore
.eslintrc
.gitignore
.npmignore
LICENSE
README.md
npm-shrinkwrap.json
package.json

README.md

F8 Tracking

Codeship Status for ConnectedVentures/tracking.js

Getting Started

Using Bundled ES5

The project is pre bundled and transpiled using webpack and babel, into the dist folder where there is an uncompressed and uglified version of the Fresh8Tracking.js library.

Its formatted as a commonjs2 module. Use with your own bundler like so in es5:

var Fresh8Tracking = require('Fresh8Tracking').Fresh8Tracking;

Using Browser Version

The project is also pre bundled as a browser.js file to be used in the browser where the Fresh8Tracking class has been bound to the window. with this script you should be able to access window.Fresh8Tracking

Using ES6

you will need to ensure your babel configuration includes:

{
"presets": ["es2015", "stage-2"],
"plugins": ["transform-es2015-function-name"]
}

Assuming you have a bundler and transpiler configured correctly.

import { Fresh8Tracking } from 'Fresh8Tracking/src';

will load the Fresh8Tracking class

Using Fresh8Tracking example

import Fresh8Tracking from 'Fresh8Tracking';
const fresh8Tracking = new Fresh8Tracking;

fresh8Tracking.emitEvent(data, () => {})

Contributing and Developing

Ensure node 6 LTS is installed. Then.

npm install

Testing

  • Running unit tests, and check code coverage: npm test
  • Open the code coverage report: npm run cov

Scripts

Use these scripts using npm run ...:

  • unit: Run the unit tests once
  • build -- url: Compiles the code to ES5 in the dist folder also adds a browser version, and builds readme.md. Can pass this a url for the built version to use a different URL. url defaults to https://heimdall.fresh8.co
  • docs: Rebuild this README.md
  • dev: Compiles the code to ES5, and runs unit tests whilst watching for changes

API

Classes

Fresh8Tracking

Fresh8Tracking class holds 1 function which validates and sends data

Functions

sendRequest(data)* | Promise.<TResult>

makes the request to the server using fetch

checkStatusCode(response)Promise.reject | Object

Checks the stats code on a response and rejects the promise chain if less than 200 or greater than 300.

validateFields(data)Error | boolean

validates data fields to only be the fields in the validFields array validates data fields to have to include the fields in requiredFields array returns an error if validation doesn't pass, else returns true

validateBets(data)Error | boolean

validates the bets property of the attribute to be an array and be formatted correctly returns an error if validation doesn't pass, else returns true

shouldContainBets(data)boolean

checks to see if the data should contain bets or not

Fresh8Tracking

Fresh8Tracking class holds 1 function which validates and sends data

Kind: global class

fresh8Tracking.emitEvent(data, callback) ⇒

runs data through validation and and returns then runs sendRequest in a callback to send the data

Kind: instance method of Fresh8Tracking
Returns: returns the callback containing an error if data does not validate or sendRequest if everything does validate

Param Description
data data to be validated and sent
callback

sendRequest(data) ⇒ * | Promise.<TResult>

makes the request to the server using fetch

Kind: global function

Param Description
data to be sent

checkStatusCode(response) ⇒ Promise.reject | Object

Checks the stats code on a response and rejects the promise chain if less than 200 or greater than 300.

Kind: global function
Returns: Promise.reject | Object - a rejected promise or the reponse object

Param Type Description
response Object is the fetch response object

validateFields(data) ⇒ Error | boolean

validates data fields to only be the fields in the validFields array validates data fields to have to include the fields in requiredFields array returns an error if validation doesn't pass, else returns true

Kind: global function
Returns: Error | boolean - returns an Error if fields do not validate and true if they do

Param
data

validateBets(data) ⇒ Error | boolean

validates the bets property of the attribute to be an array and be formatted correctly returns an error if validation doesn't pass, else returns true

Kind: global function
Returns: Error | boolean - returns an Error if bets do not validate and true if they do

Param
data

shouldContainBets(data) ⇒ boolean

checks to see if the data should contain bets or not

Kind: global function

Param
data