-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
aquedux-serverAny aquedux-server ONLY related issuesAny aquedux-server ONLY related issueshelp wantedExtra attention is neededExtra attention is needed
Milestone
Description
While aquedux-client public API is reworked to match a middleware-centric vue, the aquedux-server public API is still cumbersome to use.
The proposal is to have a Koa/Express middleware for aquedux-server with an all-in-one redux store. This way it will simply fit on existing Node.JS apps (nextjs apps 😏?).
The API could be split into two packages:
aquedux-serverwith a full redux-vanilla compatible interface (the same as aquedux-client)koa-aqueduxthat uses the previous package and expose a hidden redux store enhanced with aquedux
The aquedux-server API could look like the new aquedux-client api.
The koa-aquedux API could look like:
const Koa = require('koa');
const Router = require('koa-router');
+ const Aquedux = require('koa-aquedux')
+ const reducer = require('./shared/reducer')
+ const middlewares = require('./shared/middlewares')
const app = new Koa();
const router = new Router();
+ const aquedux = new Aquedux(reducer, middlewares, {
+ queueLimit: 0,
+ hydratedActionTypes: [],
+ logLevel: process.env.AQUEDUX_LOG_LEVEL || 'info',
+ routePrefix: '',
+ secret: null,
+ redisHost: undefined,
+ redisPort: undefined,
+ doFragmentSnapshot: prevState => prevState,
+ onConnection: _socket => {},
+ onClose: _socket => {}
+ })
// Here we call the actual koa middleware of type "async (ctx, next)"
+ router.get('/aquedux', aquedux.middleware());
app
.use(router.routes())
.use(router.allowedMethods());Need more thoughts on this, summon @chabou 🎉
Metadata
Metadata
Assignees
Labels
aquedux-serverAny aquedux-server ONLY related issuesAny aquedux-server ONLY related issueshelp wantedExtra attention is neededExtra attention is needed