From 360dc83ded47de9d0bf55919c16b0925aa422d3b Mon Sep 17 00:00:00 2001 From: Jerko Steiner Date: Thu, 14 Mar 2019 12:38:34 +0500 Subject: [PATCH] Setup simple SSR, untested --- packages/client/src/csrf/CsrfTokenReducer.ts | 3 +++ packages/client/src/csrf/index.ts | 1 + packages/client/src/index.ts | 1 + packages/client/src/store/createStore.ts | 9 +++------ packages/client/src/test-utils/TestUtils.tsx | 2 +- packages/server/src/application/Application.ts | 6 ++++++ 6 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 packages/client/src/csrf/CsrfTokenReducer.ts create mode 100644 packages/client/src/csrf/index.ts diff --git a/packages/client/src/csrf/CsrfTokenReducer.ts b/packages/client/src/csrf/CsrfTokenReducer.ts new file mode 100644 index 0000000..a991f28 --- /dev/null +++ b/packages/client/src/csrf/CsrfTokenReducer.ts @@ -0,0 +1,3 @@ +export function CsrfToken(state = '') { + return state +} diff --git a/packages/client/src/csrf/index.ts b/packages/client/src/csrf/index.ts new file mode 100644 index 0000000..3a1e756 --- /dev/null +++ b/packages/client/src/csrf/index.ts @@ -0,0 +1 @@ +export * from './CsrfTokenReducer' diff --git a/packages/client/src/index.ts b/packages/client/src/index.ts index 96a5a87..d3cac30 100644 --- a/packages/client/src/index.ts +++ b/packages/client/src/index.ts @@ -1,5 +1,6 @@ export * from './actions' export * from './components' +export * from './csrf' export * from './http' export * from './login' export * from './middleware' diff --git a/packages/client/src/store/createStore.ts b/packages/client/src/store/createStore.ts index 4181deb..94f8d2a 100644 --- a/packages/client/src/store/createStore.ts +++ b/packages/client/src/store/createStore.ts @@ -2,17 +2,14 @@ import {PromiseMiddleware} from '../middleware' import { applyMiddleware, createStore as create, - combineReducers, Middleware, Action, - // AnyAction, DeepPartial, - ReducersMapObject, - // Reducer, + Reducer, } from 'redux' export interface ICreateStoreParams { - reducers: ReducersMapObject + reducer: Reducer state?: DeepPartial middleware?: Middleware[] } @@ -25,7 +22,7 @@ export function createStore( ) { const middleware = params.middleware || [new PromiseMiddleware().handle] return (state?: DeepPartial) => create( - combineReducers(params.reducers), + params.reducer, state, applyMiddleware(...middleware), ) diff --git a/packages/client/src/test-utils/TestUtils.tsx b/packages/client/src/test-utils/TestUtils.tsx index 45b1501..368951e 100644 --- a/packages/client/src/test-utils/TestUtils.tsx +++ b/packages/client/src/test-utils/TestUtils.tsx @@ -47,7 +47,7 @@ export class TestUtils { params: IRenderParams, ) { const store = this.createStore({ - reducers: params.reducers, + reducer: this.combineReducers(params.reducers), })(params.state) const Component = params.connector.connect(params.select) diff --git a/packages/server/src/application/Application.ts b/packages/server/src/application/Application.ts index 3d4acda..774544d 100644 --- a/packages/server/src/application/Application.ts +++ b/packages/server/src/application/Application.ts @@ -52,6 +52,7 @@ export class Application implements IApplication { this.configureMiddleware(router) this.configureRouter(router) this.configureApiErrorHandling(router) + this.configureFrontend(router) server.use(this.config.app.context, router) this.configureGlobalErrorHandling(server) @@ -78,6 +79,7 @@ export class Application implements IApplication { } protected configureRouter(router: express.Router) { + // TODO use /api for LoginRoutes router.use('/app', new routes.LoginRoutes( this.userService, this.authenticator, @@ -104,6 +106,10 @@ export class Application implements IApplication { router.use('/api', new middleware.ErrorApiHandler(apiLogger).handle) } + protected configureFrontend(router: express.Router) { + // Override this method + } + protected configureGlobalErrorHandling(server: express.Application) { const apiLogger = this.getApiLogger() server.use(new middleware.ErrorPageHandler(apiLogger).handle)