What is @sentry/types?
The @sentry/types package provides TypeScript definitions for Sentry's JavaScript SDK. It includes types for Sentry's configuration options, event objects, and various interfaces used within Sentry's SDKs. This package is primarily used by developers to ensure type safety and autocompletion when working with Sentry in a TypeScript environment.
What are @sentry/types's main functionalities?
Event Interface
Defines the structure of an event that can be sent to Sentry. This includes the event's ID, level, timestamp, platform, and SDK information.
{
event_id: string;
level: 'error' | 'warning' | 'info' | 'debug';
timestamp: number;
platform: string;
sdk: {
name: string;
version: string;
};
}
Options Interface
Specifies the options for configuring the Sentry SDK. This includes the DSN (Data Source Name), breadcrumb limits, debug mode, integrations, and a beforeSend hook for event manipulation.
{
dsn: string;
maxBreadcrumbs: number;
debug: boolean;
integrations: Integration[];
beforeSend: (event: Event) => Event | null;
}
Breadcrumb Interface
Describes a breadcrumb, which is a snapshot of data that describes what happened before an event. This includes the timestamp, message, category, level, and any additional data.
{
timestamp: number;
message: string;
category: string;
level: 'critical' | 'error' | 'warning' | 'info' | 'debug';
data: Record<string, any>;
}
Other packages similar to @sentry/types
@types/node
Provides TypeScript definitions for Node.js. Similar to @sentry/types, it's used for type safety and autocompletion but focuses on Node.js' API rather than Sentry's.
typescript
The TypeScript language itself, which includes its compiler and type system. While not a direct alternative, it's the foundation that packages like @sentry/types build upon to provide type definitions for specific libraries.
@types/react
Offers TypeScript definitions for React. Similar to @sentry/types, it aids in developing React applications with TypeScript by providing types for React's API, but it doesn't relate to error monitoring or logging.
Important Changes since v8.0.0-alpha.9
- feat(browser): Create spans as children of root span by default (#10986)
Because execution context isolation in browser environments does not work reliably, we deciced to keep a flat span
hierarchy by default in v8.
- feat(core): Deprecate
addTracingExtensions
(#11579)
Instead of calling Sentry.addTracingExtensions()
if you want to use performance in a browser SDK without using
browserTracingIntegration()
, you should now call Sentry.registerSpanErrorInstrumentation()
.
- feat(core): Implement
suppressTracing
(#11468)
You can use the new suppressTracing
API to ensure a given callback will not generate any spans:
return Sentry.suppressTracing(() => {
// Ensure this fetch call does not generate a span
return fetch('/my-url');
});
- feat: Rename ESM loader hooks to
import
and loader
(#11498)
We renamed the loader hooks for better clarity: