diff --git a/.travis.yml b/.travis.yml
index 5cb224e..4389fb7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,7 +4,6 @@ sudo: required
script:
- npm run lint
- npm run test:unit
-- npm run test:bundle
- 'if [ "$TRAVIS_SECURE_ENV_VARS" = "true" ]; then npm run test:sauce; fi'
after_success:
- npm run report-coverage
diff --git a/README.md b/README.md
index 3bec397..80facda 100644
--- a/README.md
+++ b/README.md
@@ -30,28 +30,28 @@ These include: `Version`, `EventId`, `Timestamp`, `TenantId`, `EventBody.Timesta
### Setup
-Install from Bower:
+Install `d2l-telemetry-browser-client` via NPM:
```shell
-bower install Brightspace/d2l-telemetry-browser-client
+npm install Brightspace/d2l-telemetry-browser-client
```
-Then import `d2l-telemetry-browser-client.html`:
+#### NPM
-```html
-
+In NPM, require it normally:
+
+```javascript
+const d2lTelemetryBrowserClient = require('d2l-telemetry-browser-client');
```
-The HTML import will reference the library from the CDN, but using bower and html imports will allow you to de-dupe different versions.
+#### ES6
-Alternatively you can reference it directly from the CDN
+In ES6, use an `import` statement:
-```html
-
+```javascript
+import d2lTelemetryBrowserClient from 'd2l-telemetry-browser-client';
```
-Finally reference the library using the global variable `d2lTelemetryBrowserClient`
-
The client uses [`d2l-fetch`](https://github.com/Brightspace/d2l-fetch) for making the API requests to the telemetry service.
See the [`d2l-fetch browser compatibility`](https://github.com/Brightspace/d2l-fetch#browser-compatibility) instructions for additional requirements.
@@ -59,7 +59,7 @@ See the [`d2l-fetch browser compatibility`](https://github.com/Brightspace/d2l-f
```js
-const client = new window.d2lTelemetryBrowserClient.Client({
+const client = new d2lTelemetryBrowserClient.Client({
endpoint
});
@@ -69,11 +69,11 @@ const id = 'http://prd.activityfeed.us-east-1.brightspace.com/api/v1/d2l:orgUnit
// by current BDP processing. Even though these events are not yet going to BDP, suggestion
// is to either use an internal identifier or encode the URL.
// The URL is included as a new EventBody.Object.Url property.
-const eventBody = new window.d2lTelemetryBrowserClient.EventBody()
+const eventBody = new d2lTelemetryBrowserClient.EventBody()
.setAction('Created')
.setObject(encodeURIComponent(id), 'Article', id);
-const event = new window.d2lTelemetryBrowserClient.TelemetryEvent()
+const event = new d2lTelemetryBrowserClient.TelemetryEvent()
.setDate(new Date())
.setType('TelemetryEvent')
.setSourceId('activityfeed')
@@ -92,15 +92,9 @@ yarn install
yarn run test
```
-This library builds a de-umdified browserify bundle that is exposed on the global object as `d2lTelemetryBrowserClient`.
-
### Publishing
-The Travis CI build on master branch will bump the version of the library, publish the dist/ bundle to the CDN and commit an updated `./d2l-telemetry-browser-client.html` html import file referencing the CDN library back to the repo.
-
-Refer to `./update.sh` and `./travis.yml` for details on how this publish process works.
-
-You can control the level of verison bump by including either `[increment major]` or `[increment patch]` in your commit message. By default it will increment minor.
+You can control the level of version bump by including either `[increment major]` or `[increment patch]` in your commit message. By default it will increment minor.
[ci-url]: https://travis-ci.org/Brightspace/d2l-telemetry-browser-client
diff --git a/bower.json b/bower.json
deleted file mode 100644
index 34c8e40..0000000
--- a/bower.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "name": "d2l-telemetry-browser-client",
- "description": "Client for sending telemetry from the browser to a telemetry service",
- "main": "d2l-telemetry-browser-client.html",
- "authors": [
- "D2L Corporation"
- ],
- "license": "Apache-2.0",
- "keywords": [
- "telemetry",
- "browser",
- "analytics"
- ],
- "homepage": "https://github.com/Brightspace/d2l-telemetry-browser-client",
- "private": true,
- "ignore": [
- "**/.*",
- "node_modules",
- "bower_components",
- "test",
- "tests"
- ],
- "dependencies": {
- "d2l-fetch": "brightspace/d2l-fetch#^1.8.0"
- }
-}
diff --git a/d2l-telemetry-browser-client.html b/d2l-telemetry-browser-client.html
deleted file mode 100644
index 097feab..0000000
--- a/d2l-telemetry-browser-client.html
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/d2l-telemetry-browser-client.js b/d2l-telemetry-browser-client.js
new file mode 100644
index 0000000..32868b3
--- /dev/null
+++ b/d2l-telemetry-browser-client.js
@@ -0,0 +1,8 @@
+import d2lTelemetryBrowserClient from './src/index.js';
+
+window.d2lTelemetryBrowserClient = {};
+window.d2lTelemetryBrowserClient.Client = d2lTelemetryBrowserClient.Client;
+window.d2lTelemetryBrowserClient.TelemetryEvent = d2lTelemetryBrowserClient.TelemetryEvent;
+window.d2lTelemetryBrowserClient.EventBody = d2lTelemetryBrowserClient.EventBody;
+window.d2lTelemetryBrowserClient.PerformanceEventBody = d2lTelemetryBrowserClient.PerformanceEventBody;
+window.d2lTelemetryBrowserClient.ProblemEventBody = d2lTelemetryBrowserClient.ProblemEventBody;
diff --git a/karma-bundle.conf.js b/karma-bundle.conf.js
deleted file mode 100644
index b37e683..0000000
--- a/karma-bundle.conf.js
+++ /dev/null
@@ -1,17 +0,0 @@
-module.exports = function(config) {
- config.set({
- autoWatch: false,
- browsers: ['ChromeHeadless'],
- colors: true,
- concurrency: Infinity,
- frameworks: ['mocha', 'chai'],
- files: [
- 'dist/d2l-telemetry-browser-client.js',
- 'test/bundle.js'
- ],
- logLevel: config.LOG_WARN,
- port: 9876,
- reporters: ['progress'],
- singleRun: true
- });
-};
diff --git a/karma.conf.js b/karma.conf.js
index c89612b..6e23452 100644
--- a/karma.conf.js
+++ b/karma.conf.js
@@ -20,9 +20,6 @@ module.exports = function(config) {
'node_modules/whatwg-fetch/fetch.js',
'test/*'
],
- exclude: [
- 'test/bundle.js'
- ],
logLevel: config.LOG_WARN,
port: 9876,
preprocessors: {
diff --git a/package.json b/package.json
index 12169c9..baa6860 100644
--- a/package.json
+++ b/package.json
@@ -1,22 +1,16 @@
{
"name": "d2l-telemetry-browser-client",
- "version": "0.0.1",
+ "version": "1.0.0",
"description": "Client for sending telemetry from the browser to a telemetry service",
"private": true,
"main": "src/index.js",
+ "module": "src/index.js",
"scripts": {
- "prebuild": "rimraf dist && mkdir dist",
- "build": "browserify -g uglifyify -t babelify -p deumdify -s d2lTelemetryBrowserClient ./src/index.js > ./dist/d2l-telemetry-browser-client.js",
"lint": "eslint src test",
- "test": "npm run lint && npm run test:unit && npm run test:bundle",
- "pretest:bundle": "npm run build",
- "test:bundle": "karma start karma-bundle.conf.js",
+ "test": "npm run lint && npm run test:unit",
"test:unit": "cross-env NODE_ENV=test karma start karma.conf.js",
"test:sauce": "cross-env NODE_ENV=test karma start karma-sauce.conf.js",
- "report-coverage": "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",
- "publish-location": "node publishLocation",
- "prepublish-release": "npm run build",
- "publish-release": "frau-publisher && npm run publish-location"
+ "report-coverage": "cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js"
},
"repository": {
"type": "git",
@@ -24,19 +18,6 @@
},
"author": "D2L Corporation",
"license": "Apache-2.0",
- "config": {
- "frauPublisher": {
- "files": "./dist/**",
- "moduleType": "lib",
- "targetDirectory": "d2l-telemetry-browser-client",
- "creds": {
- "key": "AKIAIA66UIEEOZM63VEQ",
- "secretVar": "CDN_SECRET"
- },
- "devTagVar": "TRAVIS_COMMIT",
- "versionVar": "TRAVIS_TAG"
- }
- },
"devDependencies": {
"babel-plugin-istanbul": "^4.1.5",
"babel-preset-env": "^1.6.1",
@@ -47,10 +28,8 @@
"chai": "^4.1.2",
"coveralls": "^3.0.0",
"cross-env": "^5.1.3",
- "deumdify": "^1.2.5",
"eslint": "^4.15.0",
"eslint-config-brightspace": "^0.3.1",
- "frau-publisher": "^2.6.2",
"karma": "^2.0.0",
"karma-browserify": "^5.1.3",
"karma-chai": "^0.1.0",
@@ -61,9 +40,7 @@
"karma-sauce-launcher": "^1.2.0",
"mocha": "^4.1.0",
"promise-polyfill": "^7.1.0",
- "rimraf": "^2.6.2",
"sinon": "^4.4.2",
- "uglifyify": "^4.0.5",
"whatwg-fetch": "^2.0.3"
},
"babel": {
diff --git a/publishLocation.js b/publishLocation.js
deleted file mode 100644
index 841d41d..0000000
--- a/publishLocation.js
+++ /dev/null
@@ -1,6 +0,0 @@
-'use strict';
-var publisherOptions = require('./package.json').config.frauPublisher;
-publisherOptions.devTag = process.env.TRAVIS_COMMIT || publisherOptions.devTagVar;
-publisherOptions.version = process.env.TRAVIS_TAG;
-var publisher = require('frau-publisher').lib(publisherOptions);
-console.log('build published to:', publisher.getLocation() + 'd2l-telemetry-browser-client.js'); //eslint-disable-line no-console
diff --git a/src/index.js b/src/index.js
index 46a1906..3cf1148 100644
--- a/src/index.js
+++ b/src/index.js
@@ -4,8 +4,10 @@ import {EventBody} from './eventBody';
import {PerformanceEventBody} from './performanceEventBody';
import {ProblemEventBody} from './problemEventBody';
-module.exports.Client = Client;
-module.exports.TelemetryEvent = TelemetryEvent;
-module.exports.EventBody = EventBody;
-module.exports.PerformanceEventBody = PerformanceEventBody;
-module.exports.ProblemEventBody = ProblemEventBody;
+export default {
+ Client,
+ TelemetryEvent,
+ EventBody,
+ PerformanceEventBody,
+ ProblemEventBody
+};
diff --git a/test/bundle.js b/test/bundle.js
deleted file mode 100644
index bd11f4d..0000000
--- a/test/bundle.js
+++ /dev/null
@@ -1,43 +0,0 @@
-describe('test suite', () => {
-
- describe('bundle', () => {
- it('should have "d2lTelemetryBrowserClient" defined as a global variable', () => {
- expect(window['d2lTelemetryBrowserClient']).to.not.be.undefined;
- });
- });
-
- describe('client', () => {
- it('should have a Client ctor', () => {
- const client = new window['d2lTelemetryBrowserClient'].Client();
- expect(client.logUserEvent).to.not.be.undefined;
- });
- });
-
- describe('event', () => {
- it('should have a TelemetryEvent ctor', () => {
- const event = new window['d2lTelemetryBrowserClient'].TelemetryEvent();
- expect(event.setType).to.not.be.undefined;
- });
- });
-
- describe('eventBody', () => {
- it('should have an EventBody ctor', () => {
- const eventBody = new window['d2lTelemetryBrowserClient'].EventBody();
- expect(eventBody.setTypeGuid).to.not.be.undefined;
- });
- });
-
- describe('performanceEventBody', () => {
- it('should have a PerformanceEventBody ctor', () => {
- const performanceEventBody = new window['d2lTelemetryBrowserClient'].PerformanceEventBody();
- expect(performanceEventBody.addUserTiming).to.not.be.undefined;
- });
- });
-
- describe('problemEventBody', () => {
- it('should have a ProblemEventBody ctor', () => {
- const problemEventBody = new window['d2lTelemetryBrowserClient'].ProblemEventBody();
- expect(problemEventBody.setProblemType).to.not.be.undefined;
- });
- });
-});
diff --git a/test/event.js b/test/event.js
index 1213088..5d29f61 100644
--- a/test/event.js
+++ b/test/event.js
@@ -1,5 +1,6 @@
-const TelemetryEvent = require('../src/index').TelemetryEvent;
-const EventBody = require('../src/index').EventBody;
+import d2lTelemetryBrowserClient from '../src/index';
+const TelemetryEvent = d2lTelemetryBrowserClient.TelemetryEvent;
+const EventBody = d2lTelemetryBrowserClient.EventBody;
describe('Event', () => {
var event;
diff --git a/test/eventBody.js b/test/eventBody.js
index 489fcb8..4bc9ac3 100644
--- a/test/eventBody.js
+++ b/test/eventBody.js
@@ -1,4 +1,5 @@
-const EventBody = require('../src/index').EventBody;
+import d2lTelemetryBrowserClient from '../src/index';
+const EventBody = d2lTelemetryBrowserClient.EventBody;
describe('EventBody', () => {
var eventBody;
diff --git a/test/index.js b/test/index.js
index ceffc22..0bfdbf7 100644
--- a/test/index.js
+++ b/test/index.js
@@ -1,6 +1,7 @@
-const Client = require('../src/index').Client;
-const TelemetryEvent = require('../src/index').TelemetryEvent;
-const EventBody = require('../src/index').EventBody;
+import d2lTelemetryBrowserClient from '../src/index';
+const Client = d2lTelemetryBrowserClient.Client;
+const TelemetryEvent = d2lTelemetryBrowserClient.TelemetryEvent;
+const EventBody = d2lTelemetryBrowserClient.EventBody;
const sinon = require('sinon');
diff --git a/test/performanceEventBody.js b/test/performanceEventBody.js
index 14d8a29..c37938f 100644
--- a/test/performanceEventBody.js
+++ b/test/performanceEventBody.js
@@ -1,4 +1,5 @@
-const PerformanceEventBody = require('../src/index').PerformanceEventBody;
+import d2lTelemetryBrowserClient from '../src/index';
+const PerformanceEventBody = d2lTelemetryBrowserClient.PerformanceEventBody;
describe('PerformanceEventBody', () => {
var eventBody;
diff --git a/test/problemEventBody.js b/test/problemEventBody.js
index 0db44df..4a1b7dc 100644
--- a/test/problemEventBody.js
+++ b/test/problemEventBody.js
@@ -1,4 +1,5 @@
-const ProblemEventBody = require('../src/index').ProblemEventBody;
+import d2lTelemetryBrowserClient from '../src/index';
+const ProblemEventBody = d2lTelemetryBrowserClient.ProblemEventBody;
describe('ProblemEventBody', () => {
var eventBody;
diff --git a/update.sh b/update.sh
index c000990..c69b177 100644
--- a/update.sh
+++ b/update.sh
@@ -1,8 +1,6 @@
#!/bin/bash
set -e
-echo "Generating HTML import and publishing to CDN"
-
if ! [ "$TRAVIS_BRANCH" == "master" ] || ! [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
echo "Version is only bumped on master"
exit 0
@@ -52,9 +50,7 @@ git config --global user.email "travis@travis-ci.com"
git config --global user.name "Travis CI"
echo "Updating from ${lastVersion} to v${newVersion}"
-echo "" > d2l-telemetry-browser-client.html
-echo "" >> d2l-telemetry-browser-client.html
-echo "" >> d2l-telemetry-browser-client.html
+sed -i "s/\"version\": \".*\"/\"version\": \""$newVersion"\"/" package.json
# Add the updated d2l-telemetry-browser-client.html, and add a new tag to create the release
git add .
@@ -63,12 +59,5 @@ git commit -m "[skip ci] Update to v${newVersion}"
echo "About to tag new version"
git tag -a v${newVersion} -m "v${newVersion} - ${lastLogMessageShort}"
-echo "git status"
-git status
-
echo "push new tag"
git push upstream HEAD:master --tags
-
-# Publish the release via frau-publisher
-export TRAVIS_TAG=$newVersion
-npm run publish-release