1
1
// Load environment
2
- require ( " console-stamp" ) ( console , " [HH:MM:ss.l]" ) ;
3
- require ( " dotenv" ) . config ( { path : " ../.env" } ) ;
2
+ require ( ' console-stamp' ) ( console , ' [HH:MM:ss.l]' ) ;
3
+ require ( ' dotenv' ) . config ( { path : ' ../.env' } ) ;
4
4
const jsdom = require ( 'jsdom' ) ;
5
- const express = require ( " express" ) ;
6
- const path = require ( " path" ) ;
7
- const mustacheExpress = require ( " mustache-express" ) ;
8
- const getDecorator = require ( " ./dekorator" ) ;
9
- const buildPath = path . resolve ( __dirname , " ../build" ) ;
5
+ const express = require ( ' express' ) ;
6
+ const path = require ( ' path' ) ;
7
+ const mustacheExpress = require ( ' mustache-express' ) ;
8
+ const getDecorator = require ( ' ./dekorator' ) ;
9
+ const buildPath = path . resolve ( __dirname , ' ../build' ) ;
10
10
const server = express ( ) ;
11
11
const { JSDOM } = jsdom ;
12
+ const compression = require ( 'compression' ) ;
12
13
13
14
const frontendloggerScript = ( ) => {
14
15
const scriptTag = `<div id="frontendlogger"><script type="application/javascript" src="${ process . env . FRONTENDLOGGER_BASE_URL } /logger.js"></script></div>` ;
15
16
const { document } = new JSDOM ( scriptTag ) . window ;
16
17
return document . getElementById ( 'frontendlogger' ) [ 'innerHTML' ] ;
17
- }
18
+ } ;
18
19
19
- const securityHeadersMiddleware = ( req , res , next ) => {
20
- res . header ( " X-Frame-Options" , " SAMEORIGIN" ) ;
21
- res . header ( " Strict-Transport-Security" , " max-age=31536000; includeSubDomains" ) ;
22
- res . header ( " X-Content-Type-Options" , " nosniff" ) ;
23
- res . header ( " X-XSS-Protection" , " 1; mode=block" ) ;
24
- res . header ( " Referrer-Policy" , " no-referrer-when-downgrade" ) ;
20
+ const securityHeadersMiddleware = ( req , res , next ) => {
21
+ res . header ( ' X-Frame-Options' , ' SAMEORIGIN' ) ;
22
+ res . header ( ' Strict-Transport-Security' , ' max-age=31536000; includeSubDomains' ) ;
23
+ res . header ( ' X-Content-Type-Options' , ' nosniff' ) ;
24
+ res . header ( ' X-XSS-Protection' , ' 1; mode=block' ) ;
25
+ res . header ( ' Referrer-Policy' , ' no-referrer-when-downgrade' ) ;
25
26
next ( ) ;
26
- }
27
+ } ;
27
28
28
- server . set ( "views" , `${ __dirname } /../build` ) ;
29
- server . set ( "view engine" , "mustache" ) ;
30
- server . engine ( "html" , mustacheExpress ( ) ) ;
29
+ server . set ( 'views' , `${ __dirname } /../build` ) ;
30
+ server . set ( 'view engine' , 'mustache' ) ;
31
+ server . engine ( 'html' , mustacheExpress ( ) ) ;
32
+
33
+ server . use ( compression ( ) ) ;
31
34
32
35
// Parse application/json
33
36
server . use ( express . json ( ) ) ;
@@ -36,38 +39,32 @@ server.use(express.json());
36
39
server . use ( '/' , express . static ( buildPath , { index : false } ) ) ;
37
40
38
41
// Nais functions
39
- server . get ( `/internal/isReady` , ( req , res ) =>
40
- res . sendStatus ( 200 )
41
- ) ;
42
+ server . get ( `/internal/isReady` , ( req , res ) => res . sendStatus ( 200 ) ) ;
42
43
43
- server . get ( `/internal/isAlive` , ( req , res ) =>
44
- res . sendStatus ( 200 )
45
- ) ;
44
+ server . get ( `/internal/isAlive` , ( req , res ) => res . sendStatus ( 200 ) ) ;
46
45
47
46
server . get ( `/config` , ( req , res ) =>
48
- res . send ( {
49
- appUrl : process . env . REACT_APP_URL ,
50
- loginserviceUrl : process . env . REACT_APP_LOGINSERVICE_URL ,
51
- apiUrl : process . env . REACT_API_URL ,
52
- } )
47
+ res . send ( {
48
+ appUrl : process . env . REACT_APP_URL ,
49
+ loginserviceUrl : process . env . REACT_APP_LOGINSERVICE_URL ,
50
+ apiUrl : process . env . REACT_API_URL
51
+ } )
53
52
) ;
54
53
55
54
// Match everything except internal og static
56
55
server . use ( / ^ (? ! .* \/ ( i n t e r n a l | s t a t i c ) \/ ) .* $ / , securityHeadersMiddleware , ( req , res ) =>
57
- getDecorator ( )
58
- . then ( ( fragments ) => {
59
- res . render ( " index.html" , { ...fragments , FRONTEND_LOGGER_SCRIPT : frontendloggerScript ( ) } ) ;
60
- } )
61
- . catch ( ( e ) => {
62
- const error = `Failed to get decorator: ${ e } ` ;
63
- console . error ( error ) ;
64
- res . status ( 500 ) . send ( error ) ;
65
- } )
56
+ getDecorator ( )
57
+ . then ( fragments => {
58
+ res . render ( ' index.html' , { ...fragments , FRONTEND_LOGGER_SCRIPT : frontendloggerScript ( ) } ) ;
59
+ } )
60
+ . catch ( e => {
61
+ const error = `Failed to get decorator: ${ e } ` ;
62
+ console . error ( error ) ;
63
+ res . status ( 500 ) . send ( error ) ;
64
+ } )
66
65
) ;
67
66
68
67
const port = process . env . PORT || 8080 ;
69
68
server . listen ( port , ( ) => console . log ( `App listening on: ${ port } ` ) ) ;
70
69
71
- process . on ( "SIGTERM" , ( ) =>
72
- setTimeout ( ( ) => console . log ( "Har sovet i 30 sekunder" ) , 30000 )
73
- ) ;
70
+ process . on ( 'SIGTERM' , ( ) => setTimeout ( ( ) => console . log ( 'Har sovet i 30 sekunder' ) , 30000 ) ) ;
0 commit comments