@instructure/redux-service-middleware
v1.0.0
Published
Service middleware for redux
Downloads
5,423
Maintainers
Keywords
Readme
@instructure/redux-service-middleware
Simple redux middleware for registering service objects.
- A service is an object or class instance:
const myService = {
doStuff: (arg1, arg2) => result
}
class MyOtherService {
doOtherStuff (...args) {
return result
}
}
- While creating your store, register your services as key/value pairs with the service middleware constructor:
import { applyMiddleware } from 'redux'
import createServiceMiddleware from '@instructure/redux-service-middleware'
applyMiddleware(
createServiceMiddleware({
myKey: myService,
myOtherKey: new MyOtherService()
})
)
- In your action creator, dispatch an action with the following shape:
import { CALL_SERVICE } from '@instructure/redux-service-middleware'
const actionCreator = () => ({
type: CALL_SERVICE,
payload: {
service: 'myKey',
method: 'doStuff',
args: [arg1, arg2]
}
})
Calls to dispatch
with an action of this form will return a promise
resolving to the result of calling
myService.methodName(arg1, arg2)
.
License
This project is is released under the MIT license.