diff --git a/types/raven-for-redux/index.d.ts b/types/raven-for-redux/index.d.ts new file mode 100644 index 0000000000..09e95542d3 --- /dev/null +++ b/types/raven-for-redux/index.d.ts @@ -0,0 +1,28 @@ +// Type definitions for raven-for-redux 1.1 +// Project: https://github.com/captbaritone/raven-for-redux +// Definitions by: Daniel Chiu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import { Action, Middleware } from "redux"; +import * as Raven from "raven-js"; + +export = createRavenMiddleware; + +declare function createRavenMiddleware(raven: Raven.RavenStatic, options?: createRavenMiddleware.RavenMiddlewareOptions): Middleware; + +declare namespace createRavenMiddleware { + interface RavenUserContext { + id?: string; + username?: string; + email?: string; + } + + interface RavenMiddlewareOptions { + breadcrumbDataFromAction?: (action: Action) => any; + actionTransformer?: (action: Action) => Action; + stateTransformer?: (state: T) => T; + breadcrumbCategory?: string; + filterBreadcrumbActions?: (action: Action) => boolean; + getUserContext?: (state: T) => RavenUserContext; + } +} diff --git a/types/raven-for-redux/package.json b/types/raven-for-redux/package.json new file mode 100644 index 0000000000..ee85fd6437 --- /dev/null +++ b/types/raven-for-redux/package.json @@ -0,0 +1,7 @@ +{ + "private": true, + "dependencies": { + "raven-js": ">=3.21.0", + "redux": ">=3.7.2" + } +} diff --git a/types/raven-for-redux/raven-for-redux-tests.ts b/types/raven-for-redux/raven-for-redux-tests.ts new file mode 100644 index 0000000000..957a2017c5 --- /dev/null +++ b/types/raven-for-redux/raven-for-redux-tests.ts @@ -0,0 +1,13 @@ +import * as Raven from "raven-js"; +import * as createRavenMiddleware from "raven-for-redux"; +import { applyMiddleware, createStore } from "redux"; + +const middleware = createRavenMiddleware(Raven); + +createStore( + () => { + return null; + }, + null, + applyMiddleware(middleware) +); diff --git a/types/raven-for-redux/tsconfig.json b/types/raven-for-redux/tsconfig.json new file mode 100644 index 0000000000..b9ef813901 --- /dev/null +++ b/types/raven-for-redux/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "raven-for-redux-tests.ts" + ] +} diff --git a/types/raven-for-redux/tslint.json b/types/raven-for-redux/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/raven-for-redux/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }