From b7ca35ab023ba1758de9e07004adde71e911c28e Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 5 Jan 2018 15:45:53 -0800 Subject: [PATCH] Add type definitions for raven-for-redux (#22710) --- types/raven-for-redux/index.d.ts | 28 +++++++++++++++++++ types/raven-for-redux/package.json | 7 +++++ .../raven-for-redux/raven-for-redux-tests.ts | 13 +++++++++ types/raven-for-redux/tsconfig.json | 23 +++++++++++++++ types/raven-for-redux/tslint.json | 1 + 5 files changed, 72 insertions(+) create mode 100644 types/raven-for-redux/index.d.ts create mode 100644 types/raven-for-redux/package.json create mode 100644 types/raven-for-redux/raven-for-redux-tests.ts create mode 100644 types/raven-for-redux/tsconfig.json create mode 100644 types/raven-for-redux/tslint.json 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" }