1
- import hapi from "@hapi/hapi" ;
1
+ import hapi , { ServerOptions } from "@hapi/hapi" ;
2
2
import inert from "@hapi/inert" ;
3
3
import Scooter from "@hapi/scooter" ;
4
4
import logging from "../../digital-form-builder/designer/server/plugins/logging" ;
5
5
import router from "../../digital-form-builder/designer/server/plugins/router" ;
6
6
import { viewPlugin } from "../../digital-form-builder/designer/server/plugins/view" ;
7
7
import Schmervice from "schmervice" ;
8
- import config from "../../digital-form-builder/designer/server/config" ;
9
8
import { determinePersistenceService } from "../../digital-form-builder/designer/server/lib/persistence" ;
10
9
import { configureBlankiePlugin } from "../../digital-form-builder/designer/server/plugins/blankie" ;
11
10
import { configureYarPlugin } from "../../digital-form-builder/designer/server/plugins/session" ;
12
11
import { designerPlugin } from "./plugins/DesignerRouteRegister" ;
13
12
import errorHandlerPlugin from "./plugins/ErrorHandlerPlugin" ;
14
13
import authPlugin from "./plugins/AuthPlugin" ;
14
+ import fs from "fs" ;
15
+ import config from "./config" ;
15
16
16
17
const serverOptions = ( ) => {
17
- return {
18
+ const hasCertificate = config . sslKey && config . sslCert ;
19
+
20
+ const serverOptions : ServerOptions = {
18
21
port : process . env . PORT || 3000 ,
19
22
router : {
20
23
stripTrailingSlash : true ,
@@ -37,6 +40,20 @@ const serverOptions = () => {
37
40
} ,
38
41
} ,
39
42
} ;
43
+
44
+ const httpsOptions = hasCertificate
45
+ ? {
46
+ tls : {
47
+ key : fs . readFileSync ( config . sslKey ) ,
48
+ cert : fs . readFileSync ( config . sslCert ) ,
49
+ } ,
50
+ }
51
+ : { } ;
52
+
53
+ return {
54
+ ...serverOptions ,
55
+ ...httpsOptions ,
56
+ } ;
40
57
} ;
41
58
42
59
export async function createServer ( ) {
0 commit comments