all files / lib/ index.js

96.3% Statements 26/27
50% Branches 2/4
87.5% Functions 7/8
96.3% Lines 26/27
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127                                                                                                                                                                                                         
(function () { 'use strict';
 
/**
 * Module dependencies.
 */
 
var integration = require('@segment/analytics.js-integration');
var isObject = require('isobject');
var load = require('@segment/load-script');
 
/**
 * Expose `Userpilot` integration.
 */
 
var Userpilot = integration('Userpilot')
  .global('Userpilot')
  .option('appToken', '');
 
/**
 * Initialize.
 *
 * http://help.userpilot.com/
 *
 * @api public
 */
 
Userpilot.prototype.initialize = function() {
  this.load(this.ready);
};
 
/**
 * Loaded?
 *
 * @api private
 * @return {boolean}
 */
 
Userpilot.prototype.loaded = function() {
  return isObject(window.userpilot);
};
 
/**
 * Load the Userpilot library.
 *
 * @api private
 * @param {Function} callback
 */
 
Userpilot.prototype.load = function(callback) {
  var id = this.options.appToken || 'iv';
  load('//js.userpilot.io/' + id + '/latest.js', callback);
};
 
/**
 * Page.
 *
 * http://help.userpilot.io/docs#page
 *
 * @api public
 * @param {Page} page
 */
 
Userpilot.prototype.page = function(page) {
  window.userpilot.reload(page.name(), page.properties());
};
 
/**
 * Identify.
 *
 * http://help.userpilot.io/docs#identify
 *
 * @api public
 * @param {Identify} identify
 */
 
Userpilot.prototype.identify = function(identify) {
  var traits = identify.traits();
  Eif (traits.createdAt) {
    traits.created_at = traits.createdAt;
    delete traits.createdAt;
  }
 
  window.userpilot.identify(identify.userId(), traits);
};
 
 
/**
 * Track.
 *
 * http://help.userpilot.io/docs#track
 *
 * @api group
 * @param {Group} group
 */
 
Userpilot.prototype.group = function(group) {
  var companyId = group.groupId(),
  traits = group.traits();
  window.userpilot.group(companyId, traits);
};
 
 
/**
 * Track.
 *
 * http://help.userpilot.io/docs#track
 *
 * @api public
 * @param {Track} track
 */
 
Userpilot.prototype.track = function(track) {
  window.userpilot.track(track.event(), track.properties());
};
 
/**
 * Expose plugin.
 */
 
module.exports = exports = function(analytics) {
  analytics.addIntegration(Userpilot);
};
 
exports.Integration = Userpilot;
 
}());