diff --git a/redux-promise/redux-promise-tests.ts b/redux-promise/redux-promise-tests.ts new file mode 100644 index 000000000..a5aef668b --- /dev/null +++ b/redux-promise/redux-promise-tests.ts @@ -0,0 +1,30 @@ +/// +/// +/// +/// + +import {Promise} from 'es6-promise'; +import {createAction} from 'redux-actions'; +import { createStore, applyMiddleware } from 'redux'; +import promise from 'redux-promise'; +import PromiseInterface = ReduxPromise.PromiseInterface; + +declare var userReducer: any; + +const appStore = createStore(userReducer, applyMiddleware( + promise +)); + + +appStore.dispatch( + listUsers() +); + +function listUsers(): PromiseInterface { + return createAction('LIST_USERS', + () => { + return Promise.resolve([{ email: 'me@definitely.typed' }]); + }); +} + + diff --git a/redux-promise/redux-promise.d.ts b/redux-promise/redux-promise.d.ts new file mode 100644 index 000000000..58b6d712a --- /dev/null +++ b/redux-promise/redux-promise.d.ts @@ -0,0 +1,18 @@ +// Type definitions for redux-promise v0.5.3 +// Project: https://github.com/acdlite/redux-promise +// Definitions by: Rogelio Morrell Caballero +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare namespace ReduxPromise { + export interface Promise extends Redux.Middleware {} + export interface PromiseInterface { + (dispatch: Redux.Dispatch, getState?: () => T): any; + } +} + +declare module "redux-promise" { + var promise: ReduxPromise.Promise; + export default promise; +} \ No newline at end of file