@@ -3,6 +3,8 @@ import cookieParser from 'cookie-parser'
33import flash from 'express-flash'
44import session from 'express-session'
55
6+ import * as config from '../nhsuk-prototype-kit.config.js'
7+
68import { authentication } from './authentication.js'
79import { autoRoutes } from './auto-routes.js'
810import { autoStoreData } from './auto-store-data.js'
@@ -42,13 +44,30 @@ function generateSessionName(serviceName) {
4244 return `nhsuk-prototype-kit-${ hash } `
4345}
4446
47+ /**
48+ * Configure locals middleware
49+ *
50+ * @param {Options } options
51+ */
52+ export function configureLocals ( options ) {
53+ const { app, serviceName } = options
54+
55+ app . use ( setCurrentPageInLocals )
56+ app . use ( ( req , res , next ) => {
57+ res . locals . nhsukFrontendVersion = config . nhsukFrontendVersion
58+ res . locals . prototypeKitVersion = config . prototypeKitVersion
59+ res . locals . serviceName = serviceName
60+ next ( )
61+ } )
62+ }
63+
4564/**
4665 * Configure session middleware
4766 *
48- * @param {Express } app
49- * @param {string } serviceName
67+ * @param {Options } options
5068 */
51- function configureSession ( app , serviceName ) {
69+ export function configureSession ( options ) {
70+ const { app, serviceName } = options
5271 const sessionName = generateSessionName ( serviceName )
5372
5473 app . use (
@@ -72,26 +91,21 @@ function configureSession(app, serviceName) {
7291 * @param {Options } options
7392 */
7493export function configure ( options ) {
75- const app = options . app
76- const serviceName = options . serviceName || 'Service name goes here'
94+ const { app } = options
7795
7896 // Configure core middleware
7997 app . use ( cookieParser ( ) )
8098 app . use ( bodyParser . urlencoded ( { extended : true } ) )
8199
82100 // Configure session
83- configureSession ( app , serviceName )
101+ configureSession ( options )
102+
103+ // Configure locals
104+ configureLocals ( options )
84105
85106 // Use flash
86107 app . use ( flash ( ) )
87108
88- // Set locals
89- app . use ( setCurrentPageInLocals )
90- app . use ( ( req , res , next ) => {
91- res . locals . serviceName = serviceName
92- next ( )
93- } )
94-
95109 // Add production-specific middleware
96110 if ( process . env . NODE_ENV === 'production' ) {
97111 app . use ( productionHeaders )
@@ -132,6 +146,5 @@ export function configure(options) {
132146}
133147
134148/**
135- * @import { Express } from 'express'
136149 * @import { Options } from '../nhsuk-prototype-kit.js'
137150 */
0 commit comments