JSPM

@oliveai/loop-sentry

1.0.3
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5
  • Score
    100M100P100Q46143F
  • License MIT

This project is a simple wrapper around the @sentry/browser package to work with the LDK

Package Exports

  • @oliveai/loop-sentry
  • @oliveai/loop-sentry/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@oliveai/loop-sentry) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Sentry LDK

This library is a wrapper of the @sentry/browser library for the use in Loops by creating a custom transport leveraging the Network Aptitude.

Usage

All logs except for console.error will add a breadcrumb automatically through the Console integration. When a console.error is called it will then call the captureException method from sentry and climb up the call stack storing all of the logs/breadcrumbs along the way. Sentry.init() should be called as soon as possible it is recommended that is added to loop start up logic.

Note: Since this is a wrapper library most methods in the sentry documentation still work as intended and can be used like the @sentry/browser library. There is one caveat which is that loops run in a custom runtime and not all features of sentry may work (ex. integrations with things like the filesystem or history API) Sentry Javascript Docs

// Loop Start up logic
import { ui, network } from '@oliveai/ldk';
import * as Sentry from 'sentry-loop-logging';

(async function main(): Promise<void> {
    Sentry.init({
      dsn: 'https://<dsn url> ',
    });
    try {
      console.log('Starting Loop'); // Adds a breadcrumb with a level of log
      console.debug('Debug this'); // Adds a breadcrumb with a level of debug
      console.warn('Warning');  // Adds a breadcrumb with a level of warn
      const req: network.HTTPRequest = {
        url: 'https://google.com',
        body: 'super cool thing',
        method: 'POST',
      };
      const response = await network.httpRequest(req);
    } catch (err) {
      // if any call fails and throws an error it will fall here
      // and the console.error call will send the error to sentry
      console.error(err);
    }
})();

Important!

Since we are using the Network Aptitude the network permission will need to be add to the loop package.jsonpermissions with the dsn url as one of the properties.

Above example in sentry would look something like this:

"sentry example"