@@ -6,7 +6,7 @@ import fastifyCookie from '@fastify/cookie';
66import session from '@fastify/session' ;
77import { GlobalExceptionFilter } from './components/global-exception.filter' ;
88import * as os from 'os' ;
9- import { readFileSync , readdirSync } from 'fs' ;
9+ import { readFileSync , readFile , readdirSync } from 'fs' ;
1010import * as cluster from 'cluster' ;
1111import {
1212 FastifyAdapter ,
@@ -91,8 +91,45 @@ async function bootstrap() {
9191 : null ,
9292 } ) ;
9393
94+ server . setDefaultRoute ( ( req , res ) => {
95+ if ( req . url && req . url . startsWith ( '/api' ) ) {
96+ res . statusCode = 404 ;
97+ return res . end ( {
98+ success : false ,
99+ error : {
100+ kind : 'user_input' ,
101+ message : 'Not Found' ,
102+ } ,
103+ } ) ;
104+ }
105+
106+ readFile (
107+ join ( __dirname , '..' , 'client' , 'build' , 'index.html' ) ,
108+ 'utf8' ,
109+ ( err , data ) => {
110+ if ( err ) {
111+ res . statusCode = 500 ;
112+ res . end ( 'Internal Server Error' ) ;
113+ return ;
114+ }
115+ res . statusCode = 200 ;
116+ res . setHeader ( 'Content-Type' , 'text/html' ) ;
117+ res . end ( data ) ;
118+ } ,
119+ ) ;
120+ } ) ;
121+
122+ await server . register ( fastifyStatic , {
123+ root : join ( __dirname , '..' , 'client' , 'build' ) ,
124+ prefix : `/` ,
125+ decorateReply : false ,
126+ redirect : false ,
127+ wildcard : false ,
128+ serveDotFiles : true ,
129+ } ) ;
130+
94131 for ( const dir of readdirSync ( join ( __dirname , '..' , 'client' , 'vcs' ) ) ) {
95- server . register ( fastifyStatic , {
132+ await server . register ( fastifyStatic , {
96133 root : join ( __dirname , '..' , 'client' , 'vcs' , dir ) ,
97134 prefix : `/.${ dir } ` ,
98135 decorateReply : false ,
@@ -106,7 +143,7 @@ async function bootstrap() {
106143 } ) ;
107144 }
108145
109- server . register ( fastifyStatic , {
146+ await server . register ( fastifyStatic , {
110147 root : join ( __dirname , '..' , 'client' , 'build' , 'vendor' ) ,
111148 prefix : `/vendor` ,
112149 decorateReply : false ,
0 commit comments