You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

@cspanring/ember-cli-trackjs

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cspanring/ember-cli-trackjs

Use TrackJS with your fancy Ember CLI powered application

2.1.3
latest
Source
npmnpm
Version published
Weekly downloads
3
200%
Maintainers
1
Weekly downloads
 
Created
Source

ember-cli-trackjs npm version Build Status Dependency Status Ember Observer Score

Handles all of the boilerplate shit you need to use TrackJS in your fancy Ember application.

Settings

Configure TrackJS in your application's config/environment.js file. Please see the TrackJS documentation for specific configuration options.

Example

var ENV = {
  trackJs: {
    config: {
      token: "1234567890"
    }
  }
};

if (environment === 'test') {
  ENV.trackJs.config.enabled = false;
}

See? Pretty much like you'd expect.

One Caveat

TrackJS supports two configuration options that are functions, onError and serialize. These have been a bit problematic (#3, #4) as Ember CLI's config/environment.js does not allow you to include function options.

Despite TrackJS' documentation stating that these options cannot be change after loading, you can, though it's not encouraged. To work around this problem we can use the configure() function in an initializer:

// app/instance-initializers/configure-trackjs.js

export function initialize(application) {
  const trackJs = application.container.lookup('service:trackjs');

  trackJs.configure({
    onError(payload, err) {
      // exclude errors from log in page
      if (payload.url && payload.url.indexOf('login') > 0) {
        return false;
      }

      return true;
    }
  });
}

export default {
  name: 'trackjs-error-and-serializer-configuration',
  initialize: initialize
}

Yeah, it's not ideal. I'm open to pull requests to make this sexier :)

Usage

A service is exposed on your routes and controllers that you can use to report errors instead of having to use the global window.trackJs object, and you don't want to load TrackJS in all of your environments.

Example in a Route

export default {
  beforeModel() {
    this.get('trackjs').track('oh, snap. something bad happened');
  }
};

Example in a Controller

export default Ember.Controller.extend({
  reportSomethingForSomeReason() {
    this.get('trackjs').track('oh, snap. something bad happened');
  }
});

Example in a Component

export default Ember.Component.extend({
  trackjs: Ember.inject.service('trackjs'),

  actions: {
    doSomething() {
      // Let's use some other part of the TrackJS API
      this.get('trackjs').attempt(function(a, b) {
        return 5 + 4;
      }, this, 5, 4);
    }
  }
});

Installation

ember install ember-cli-trackjs

Running Tests

  • npm test -- the entire test suite
  • ember test --server -- you're developing a new feature <3

Building

  • ember build

Keywords

ember-addon

FAQs

Package last updated on 15 Dec 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts