Skip to content

getsentry/sentry-javascript

master
Switch branches/tags
Code

Latest commit

Currently, the `handlers` module includes not just our middleware handlers but also a bunch of code for extracting context data and applying it to events. That latter code is indeed used in the handlers, but it's also used in a number of other places in the repo. This pulls that code into its own module in `@sentry/utils`, to make it possible to use in a platform-agnostic context.

Key changes:

-  A new `requestData` module in `@sentry/utils` to hold the data extraction code (and a new test file for its tests).
- Wrapper functions in the `handlers` module for backwards compatibility. (IOW, calling `Handlers.someFunc()` still works, but it's now just a passthrough to `someFunc` from the new module.)
- Deprecation notices in the docstrings of the wrappers, and TODOs so we remember to make the switch in v8.
- Wrapper `describe`s in the tests, to run the tests against both the real functions and their wrappers, to make sure the wrappers work identically to the real functions. (This means that for the moment, the test file needs to live in `@sentry/node`, since it depends on the wrappers as well as the real functions. Once the wrappers are removed, the test file can be moved to `@sentry/utils`.)
- `parseRequest` has been renamed `addRequestDataToEvent` for greater accuracy and clarity for the reader. (The corresponding options type has also been renamed.)
- Two pieces of context data which have until now been set by `parseRequest`, but which have nothing to do with the request and are Node-only (namely `runtime` and `server_name`) are now set by the Node client. As a result, they no longer need to be set separately in the serverless package. (The exception is `server_name` in the AWS integration, because it pulls from a non-standard location.)

Note: The original impetus for this change is the need to call `parseRequest`/`addRequestDataToEvent` in the nextjs SDK, in code which can run either in Node or the browser, which means it can't be exported from `@sentry/node`.
7c521e3

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Aug 10, 2018
Oct 3, 2019
May 30, 2022

Sentry

Bad software is everywhere, and we're tired of it. Sentry is on a mission to help developers write better software faster, so we can get back to enjoying technology. If you want to join us Check out our open positions

Build & Test codecov npm version typedoc Discord

Official Sentry SDKs for JavaScript

This is the next line of Sentry JavaScript SDKs, comprised in the @sentry/ namespace. It will provide a more convenient interface and improved consistency between various JavaScript environments.


Sentry is Hiring!!!

Would you like to work on Open Source software and help maintain this repository? Apply today https://grnh.se/ca81c1701us.


Links

  • TypeDoc
  • Documentation
  • Forum
  • Discord
  • Stack Overflow
  • Twitter Follow

Contents

Supported Platforms

For each major JavaScript platform, there is a specific high-level SDK that provides all the tools you need in a single package. Please refer to the README and instructions of those SDKs for more detailed information:

  • @sentry/browser: SDK for Browsers including integrations for Backbone
  • @sentry/node: SDK for Node, including integrations for Express, Koa, Loopback, Sails and Connect
  • @sentry/angular: browser SDK with Angular integration enabled
  • @sentry/react: browser SDK with React integration enabled
  • @sentry/ember: browser SDK with Ember integration enabled
  • @sentry/vue: browser SDK with Vue integration enabled
  • @sentry/gatsby: SDK for Gatsby
  • @sentry/nextjs: SDK for Next.js
  • @sentry/integrations: Pluggable integrations that can be used to enhance JS SDKs
  • @sentry/electron: SDK for Electron with support for native crashes
  • @sentry/react-native: SDK for React Native with support for native crashes
  • @sentry/capacitor: SDK for Capacitor Apps and Ionic with support for native crashes
  • sentry-cordova: SDK for Cordova Apps and Ionic with support for native crashes
  • raven-js: Our old stable JavaScript SDK, we still support and release bug fixes for the SDK but all new features will be implemented in @sentry/browser which is the successor.
  • raven: Our old stable Node SDK, same as for raven-js we still support and release bug fixes for the SDK but all new features will be implemented in @sentry/node which is the successor.

Installation and Usage

To install a SDK, simply add the high-level package, for example:

npm install --save @sentry/browser
yarn add @sentry/browser

Setup and usage of these SDKs always follows the same principle.

import { init, captureMessage } from '@sentry/browser';

init({
  dsn: '__DSN__',
  // ...
});

captureMessage('Hello, world!');

Other Packages

Besides the high-level SDKs, this repository contains shared packages, helpers and configuration used for SDK development. If you're thinking about contributing to or creating a JavaScript-based SDK, have a look at the resources below:

  • @sentry/tracing: Provides Integrations and extensions for Performance Monitoring / Tracing
  • @sentry/hub: Global state management of SDKs
  • @sentry/core: The base for all JavaScript SDKs with interfaces, type definitions and base classes.
  • @sentry/utils: A set of helpers and utility functions useful for various SDKs.
  • @sentry/types: Types used in all packages.