@@ -2,11 +2,42 @@ import { ApplicationConfig, mergeApplicationConfig } from '@angular/core';
22import { provideServerRendering } from '@angular/platform-server' ;
33import { provideServerRouting } from '@angular/ssr' ;
44
5+ import { SSR_CONFIG } from '@core/constants/ssr-config.token' ;
6+ import { ConfigModel } from '@core/models/config.model' ;
7+
58import { appConfig } from './app.config' ;
69import { serverRoutes } from './app.routes.server' ;
710
11+ import { existsSync , readFileSync } from 'node:fs' ;
12+ import { dirname , resolve } from 'node:path' ;
13+ import { fileURLToPath } from 'node:url' ;
14+
15+ function loadSsrConfig ( ) : ConfigModel {
16+ const serverDistFolder = dirname ( fileURLToPath ( import . meta. url ) ) ;
17+ const configPath = resolve ( serverDistFolder , '../browser/assets/config/config.json' ) ;
18+
19+ let config = { } as ConfigModel ;
20+
21+ if ( existsSync ( configPath ) ) {
22+ try {
23+ config = JSON . parse ( readFileSync ( configPath , 'utf-8' ) ) ;
24+ } catch {
25+ config = { } as ConfigModel ;
26+ }
27+ }
28+
29+ return {
30+ ...config ,
31+ throttleToken : process . env [ 'THROTTLE_TOKEN' ] || '' ,
32+ } as ConfigModel ;
33+ }
34+
835const serverConfig : ApplicationConfig = {
9- providers : [ provideServerRendering ( ) , provideServerRouting ( serverRoutes ) ] ,
36+ providers : [
37+ provideServerRendering ( ) ,
38+ provideServerRouting ( serverRoutes ) ,
39+ { provide : SSR_CONFIG , useFactory : loadSsrConfig } ,
40+ ] ,
1041} ;
1142
1243export const config = mergeApplicationConfig ( appConfig , serverConfig ) ;
0 commit comments