Skip to content
master
Switch branches/tags
Code

Latest commit

This cleans up the types we use in `withSentryConfig` and friends. Three specific changes:

- When a user passes their nextjs config to nextjs, they're free to specify as few or as many of the options as they like. Nextjs config objects provided directly by nextjs, on the other hand, will always have certain properties, because they will have been filled in with defaults if not specified by the user. This differentiates between these two cases, through the use of the `Partial< ... >` utility type when describing config provided by the user.

- In order to play more nicely with `@sentry/webpack-plugin` and its types, this uses the official `WebpackPluginInstance` type from webpack itself. This requires including webpack as a dependency, in this case a peer dependency, since we're only using it for its types and therefore don't actually care if it's installed or not. (Given nextjs's reliance on it, you might be asking yourself how a nextjs user would ever _not_ have it already installed, and the answer is that nextjs ships [with a precompiled version](https://github.com/vercel/next.js/tree/canary/packages/next/compiled/webpack) and therefore [doesn't include it](https://github.com/vercel/next.js/blob/canary/packages/next/package.json) as anything other than a dev dependency.)

- Given that we still support webpack 4, this ramps our types dev dependency down to the lowest version which includes the compatibility type `WebpackPluginInstance`.
0de61f8

Git stats

Files

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


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.

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/minimal: Minimal SDK for library authors to add Sentry support
  • @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.