Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 41 additions & 5 deletions types/raven/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Type definitions for raven 2.1
// Type definitions for raven 2.5
// Project: https://github.com/getsentry/raven-node
// Definitions by: Scott Cooper <https://github.com/scttcper>
// Dmitrii Sorin <https://github.com/1999>
Expand All @@ -7,7 +7,9 @@

/// <reference types="node" />

import { IncomingMessage, ServerResponse } from 'http';
import {
IncomingMessage, ServerResponse, OutgoingHttpHeaders, Agent, ClientRequest
} from 'http';
import { EventEmitter } from 'events';

// expose all methods of `Client` class since raven exposes a singleton instance
Expand Down Expand Up @@ -81,7 +83,7 @@ export interface ConstructorOptions {
sampleRate?: number;
sendTimeout?: number;
shouldSendCallback?: ShouldSendCallback;
transport?: TransportCallback;
transport?: transports.Transport;
captureUnhandledRejections?: boolean;
maxBreadcrumbs?: number;
autoBreadcrumbs?: boolean | { [breadcrumbType: string]: boolean };
Expand Down Expand Up @@ -113,8 +115,6 @@ export type DataCallback = (data: { [key: string]: any }) => any;

export type ShouldSendCallback = (data: { [key: string]: any }) => boolean;

export type TransportCallback = (options: { [key: string]: any }) => void;

export interface CaptureOptions {
tags?: { [key: string]: string };
extra?: { [key: string]: any };
Expand All @@ -123,3 +123,39 @@ export interface CaptureOptions {
req?: IncomingMessage;
user?: any;
}

export namespace transports {
interface HTTPTransportOptions {
hostname?: string;
path?: string;
headers?: OutgoingHttpHeaders;
method?: 'POST' | 'GET';
port?: number;
ca?: string;
agent?: Agent;
}
abstract class Transport extends EventEmitter {
abstract send(
client: Client,
message: any,
headers: OutgoingHttpHeaders,
eventId: string,
cb: CaptureCallback
): void;
}
class HTTPTransport extends Transport {
defaultPort: string;
options: HTTPTransportOptions;
agent: Agent;
constructor(options?: HTTPTransportOptions);
send(
client: Client,
message: any,
headers: OutgoingHttpHeaders,
eventId: string,
cb: CaptureCallback
): void;
}
class HTTPSTransport extends HTTPTransport {
}
}
5 changes: 4 additions & 1 deletion types/raven/raven-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@ Raven.config(dsn, {
});
console.log(Raven.version);

const transport = new Raven.transports.HTTPTransport();

Raven.config({
release: 'foobar'
release: 'foobar',
transport
});
client.setContext({});
client.on('logged', () => { });
Expand Down