Skip to content

Instantly share code, notes, and snippets.

@gtkatakura
Created May 1, 2018 01:48
Show Gist options
  • Save gtkatakura/972abbc2ef3e8a530d9e52ab108cc03f to your computer and use it in GitHub Desktop.
Save gtkatakura/972abbc2ef3e8a530d9e52ab108cc03f to your computer and use it in GitHub Desktop.
GTK Combinator
var GTK = func => (...args) => {
let result;
const self = (...args) => result(...args);
result = func(self)(...args);
return result;
}
var applyMiddlewares = GTK(enhancedDispatch => (middlewares, dispatch, getState) => {
const passThrough = {
getState,
dispatch: enhancedDispatch
}
const chain = middlewares.map(middleware => middleware(passThrough))
return compose(...chain)(dispatch)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment