1.0.0 • Published 8 years ago

lester v1.0.0

Weekly downloads
4
License
MIT
Repository
github
Last release
8 years ago

Lester

 “I keep asking myself... Who could have done a thing like this?”

— Lester Nygaard, Fargo S01


Usage

You must initialize either TrackJS or Sentry on the page before calling any of the capture/logging functions, e.g:

<script>
  window._trackJs = {
    token: "YOUR_TOKEN_HERE"
  }
</script>
<script type="text/javascript" src="https://.../tracker.js"></script>
<script type="text/javascript" src="./lester.js"></script>
<script>
  var lester = new Lester();
  lester.log('Now this will work!');
</script>

Multiple Instances

It is possible to use multiple instances within a single web page, each using whichever backend you prefer. For example:

const lester1 = new Lester({backend: Lester.TRACKJS});
const lester2 = new Lester({backend: Lester.SENTRY});

This way you can incrementally update code to use Lester and whichever backend you prefer.

API Reference

Lester

Creates a new Lester instance, allowing you to pass in options.

const lester = new Lester({
  backend: 'auto'
});
Options
NameDescriptionDefault
backendBackend to use. Set to 'sentry' or 'trackjs' to disable autodetection.'auto'

capture

lester.capture(new Error('An error occurred.'));
Mapping
TrackJSSentry
trackJs.trackraven.captureException

attempt

lester.attempt allows you to wrap any function to be immediately executed. Behind the scenes, Lester is just wrapping your code in a try...catch block to record the exception before re-throwing it.

lester.attempt(function() {
  foo(bar.baz);
});
Mapping
TrackJSSentry
trackJs.attemptraven.context

wrap

lester.wrap wraps a function in a similar way to lester.context, but instead of executing the function, it returns a new function.

var myFunction = lester.wrap(function() {
  foo(bar.baz);
});

myFunction()
Mapping
TrackJSSentry
trackJs.watchraven.wrap

wrapAll

lester.wrapAll wraps all functions within a given object.

lester.wrapAll(myModel);
lester.wrapAll(new Model());
Mapping
TrackJSSentry
trackJs.watchAllraven.wrap for each item

log

Log data to the console.

lester.log('Some data');
Mapping
TrackJSSentry
trackJs.console.lograven.captureMessage

set

Set additional metadata to be logged with errors.

lester.set('role', 'editor');
lester.set({ role: 'editor' });
Mapping
TrackJSSentry
trackJs.addMetadataraven.setExtraContext