@hb-test/js v4.2.0
Honeybadger for JavaScript
Universal JavaScript library for integrating apps with the :zap: Honeybadger Error Notifier.
Documentation and Support
For comprehensive documentation and support, check out our documentation site.
Development
Bundling and types
This project is isomorphic, meaning it's a single library which contains both browser and server builds. It's written in TypeScript, and transpiled and bundled with Rollup. Our Rollup config generates three main files:
1. The server build, which transpiles src/server.ts and its dependencies into dist/server/honeybadger.js.
2. The browser build, which transpiles src/browser.ts and its dependencies into dist/browser/honeybadger.js.
3. The minified browser build, which transpiles src/browser.ts and its dependencies into dist/browser/honeybadger.min.js (+ source maps).
In addition, the TypeScript type declaration for each build is generated into its types/ directory (ie dist/browser/types/browser.d.ts and dist/server/types/server.d.ts).
However, since the package is isomorphic, TypeScript users will likely be writing import * as Honeybadger from '@honeybadger-io/js' or import Honeybadger = require('@honeybadger-io/js') in their IDE. Our package.json has main and browser fields that determine which build they get, but there can only be a single type declaration file. So we use an extra file in the project root, honeybadger.d.ts, that combines the types from both builds.
Tests
- To run unit tests for both browser and server builds:
npm test. Or separately:npm run test:browser,npm run test:server. - To run integration tests across all supported platforms, set up a BrowserStack
account and use
BROWSERSTACK_USERNAME=your_username BROWSERSTACK_ACCESS_KEY=your-access-key npm run test:integration. - To test the TypeScript type definitions:
npm run tsd.
Releasing
This package comes with a postpublish script (scripts/release-cdn.sh)
which is executed every time a new version is released to NPM.
The script publishes to our js.honeybadger.io CDN (hosted on AWS via S3/CloudFront).
For the CDN release, make sure you have the following environment variable available in your shell:
export HONEYBADGER_JS_S3_BUCKET=honeybadger-js
export HONEYBADGER_DISTRIBUTION_ID=cloudfront-idAWS credentials are read from ~/.aws/credentials, using the default profile.
If the CDN release fails for some reason (bad AWS credentials, for instance),
re-run the release manually with by executing the script npm run postpublish.