Skip to content

Commit fc82a8e

Browse files
committed
feat(core): adding AppConfigService to support remote dynamic config
1 parent c088a80 commit fc82a8e

File tree

14 files changed

+116
-32
lines changed

14 files changed

+116
-32
lines changed

PLAYBOOK.md

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -249,22 +249,27 @@ ng update @nrwl/nest --next
249249

250250
> Add `--dry-run` or `-d` option to following commands to see which artifacts will be created, without actually creating them.
251251
252-
```bash
253252

254-
## generate `Lazy-loaded Feature Modules` (angular framwork)
253+
##### generate Lazy-loaded Feature Modules
254+
> with angular schematics (a.k.a. @nrwl/angular which is default in `angular.json`)
255+
256+
```bash
255257
ng g lib home --routing --lazy --prefix=ngx --parent-module=apps/webapp/src/app/app.module.ts --defaults --tags=layout,entry-module
256258
ng g lib dashboard --routing --lazy --prefix=ngx --parent-module=apps/webapp/src/app/app.module.ts --defaults --tags=layout,entry-module
257259
ng g lib admin --routing --lazy --prefix=ngx --parent-module=apps/webapp/src/app/app.module.ts --defaults --tags=layout,entry-module
258260
ng g lib NotFound --routing --lazy --prefix=ngx --parent-module=apps/webapp/src/app/app.module.ts --defaults --tags=entry-module
259261
ng g lib experiments --routing --lazy --prefix=ngx --parent-module=libs/dashboard/src/lib/dashboard.module.ts --defaults --tags=child-module
260262
ng g lib widgets --routing --lazy --prefix=ngx --parent-module=libs/dashboard/src/lib/dashboard.module.ts --defaults --tags=child-module
261263
ng g lib grid --routing --lazy --prefix=ngx --parent-module=libs/dashboard/src/lib/dashboard.module.ts --defaults --tags=child-module
264+
```
262265

263-
264-
## generate shared libs (with no framwork)
266+
##### generate shared neutral libs
267+
> with no-framework (a.k.a. @nrwl/workspace schematics)
268+
```bash
265269
ng g @nrwl/workspace:lib Tree --tags=utils --defaults -d
266270
ng g @nrwl/workspace:lib utils --tags=utils --defaults -d
267271
ng g @nrwl/workspace:lib animations --tags=utils --defaults -d
272+
268273
# system wide `models` module
269274
ng g @nrwl/workspace:lib models --tags=utils --defaults -d
270275
ng g interface User --project=models --type=model -d
@@ -281,23 +286,28 @@ ng g interface Membership --project=models --type=model -d
281286
ng g interface ResourceQuota --project=models --type=model -d
282287
ng g interface Project --project=models --type=model -d
283288
ng g interface Cluster --project=models --type=model -d
289+
```
284290

285-
## generate shared libs (with angular framwork)
286-
291+
##### generate shared angular libs
292+
> with angular schematics (a.k.a. @nrwl/angular which is default in `angular.json`)
293+
```bash
287294
# add `core` module which will be only inported into root/app module.
288295
ng g lib core --tags=core-module --defaults -d
289296
# add global services for `core` Module
290-
ng g service services/InMemoryData --project=core --skip-tests -d
291-
ng g service services/PageTitle --project=core -d
292-
ng g service services/ServiceWorker --project=core -d
293-
ng g service services/MediaQuery --project=core -d
294-
ng g service services/DeepLink --project=core -d
295-
ng g service services/Feature --project=core -d
296-
ng g service services/GoogleAnalytics --project=core -d
297-
ng g service PushNotification --project=core -d
298-
ng g service services/Profile --project=core --skip-tests -d
299-
ng g @ngxs/schematics:state --name=preference --spec=false --project=core --sourceRoot=libs/core/src/lib -d
300-
ng g @ngxs/schematics:state --name=profile --spec=false --project=core --sourceRoot=libs/core/src/lib -d
297+
298+
ng g service services/PageTitle --project=core -d
299+
ng g service services/ServiceWorker --project=core -d
300+
ng g service services/MediaQuery --project=core -d
301+
ng g service services/DeepLink --project=core -d
302+
ng g service services/Feature --project=core -d
303+
ng g service services/GoogleAnalytics --project=core -d
304+
ng g service PushNotification --project=core -d
305+
ng g service services/InMemoryData --project=core --skip-tests -d
306+
ng g service services/Profile --project=core --skip-tests -d
307+
ng g service services/hammer --project=core --skip-tests --type=config -d
308+
ng g service services/AppConfig --project=core --skip-tests -d
309+
ng g @ngxs/schematics:state state/preference --spec=false --sourceRoot=libs/core/src/lib --project=core -d
310+
ng g @ngxs/schematics:state profile --path=state --spec=false --sourceRoot=libs/core/src/lib --project=core -d
301311

302312
# add `shared` module which will encapsulate angular and 3rd party modules, needed for all `Lazy-loaded Feature Modules`
303313
ng g lib shared --prefix=ngx --tags=shared-module --defaults -d
@@ -503,8 +513,8 @@ ng g component containers/virtualScroll --project=experiments -d
503513
ng g component containers/StickyTable --project=experiments -d
504514
ng g component containers/clapButton --project=experiments -s -t --skip-tests -d
505515
ng g component containers/knobDemo --project=experiments -d
506-
ng g component containers/ledDemo --project=experiments -d
507-
ng g component containers/ImageComp --project=experiments -d
516+
ng g component containers/ledDemo --project=experiments -d
517+
ng g component containers/ImageComp --project=experiments -d
508518
ng g component containers/layout --project=experiments -d
509519
ng g component containers/dashing --project=experiments -d
510520
ng g component components/card --project=experiments -d

apps/webapp/ngsw-config.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@
4545
{
4646
"name": "keycloak",
4747
"urls": [
48-
"https://keycloak-ngx1.1d35.starter-us-east-1.openshiftapps.com/auth/realms/ngx/.well-known/openid-configuration",
49-
"https://keycloak-ngx1.1d35.starter-us-east-1.openshiftapps.com/auth/realms/ngx/protocol/openid-connect/certs",
50-
"https://keycloak-ngx1.1d35.starter-us-east-1.openshiftapps.com/auth/realms/ngx/protocol/openid-connect/login-status-iframe.html"
48+
"https://keycloak-ngx.apps.us-west-1.online-starter.openshift.com/auth/realms/ngx/.well-known/openid-configuration",
49+
"https://keycloak-ngx.apps.us-west-1.online-starter.openshift.com/auth/realms/ngx/protocol/openid-connect/certs",
50+
"https://keycloak-ngx.apps.us-west-1.online-starter.openshift.com/auth/realms/ngx/protocol/openid-connect/login-status-iframe.html"
5151
],
5252
"cacheConfig": {
5353
"strategy": "performance",

apps/webapp/src/app/app.module.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { BrowserModule } from '@angular/platform-browser';
22
import { NgModule } from '@angular/core';
3-
import { HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
43
import { AppComponent } from './app.component';
54
import { RouterModule } from '@angular/router';
65
import { ServiceWorkerModule } from '@angular/service-worker';
@@ -9,7 +8,6 @@ import { QuicklinkModule, QuicklinkStrategy } from '@xmlking/ngx-quicklink';
98
import { CoreModule } from '@ngx-starter-kit/core';
109

1110
import { environment } from '@env/environment';
12-
import { HammerConfig } from './hammer.config';
1311

1412
@NgModule({
1513
imports: [
@@ -54,12 +52,6 @@ import { HammerConfig } from './hammer.config';
5452
ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }),
5553
CoreModule, // IMP: Please keep CoreModule after RouterModule
5654
],
57-
providers: [
58-
{
59-
provide: HAMMER_GESTURE_CONFIG,
60-
useClass: HammerConfig,
61-
},
62-
],
6355
declarations: [AppComponent],
6456
bootstrap: [AppComponent],
6557
})
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"DOCS_BASE_URL": "http://sumo.com/docs"
3+
}

apps/webapp/src/environments/environment.mock.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export const environment: IEnvironment = {
66
production: true,
77
envName: 'mock',
88

9+
REMOTE_CONFIG_URL: '/assets/data/ui-config.json',
910
DOCS_BASE_URL: 'http://localhost:8000',
1011
API_BASE_URL: 'http://localhost:3000/api',
1112
WS_EVENT_BUS_URL: 'ws://localhost:3000/eventbus',

apps/webapp/src/environments/environment.prod.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export const environment: IEnvironment = {
66
production: true,
77
envName: 'prod',
88

9+
REMOTE_CONFIG_URL: '/assets/data/ui-config.json',
910
DOCS_BASE_URL: 'http://localhost:8000',
1011
API_BASE_URL: 'https://ngxapi.traefik.k8s/api',
1112
WS_EVENT_BUS_URL: 'wss://ngxapi.traefik.k8s/eventbus',

apps/webapp/src/environments/environment.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export const environment: IEnvironment = {
99
production: false,
1010
envName: 'dev',
1111

12+
REMOTE_CONFIG_URL: '/assets/data/ui-config.json',
1213
DOCS_BASE_URL: 'http://localhost:8000',
1314
API_BASE_URL: 'http://localhost:3000/api',
1415
WS_EVENT_BUS_URL: 'ws://localhost:3000/eventbus',

apps/webapp/src/environments/ienvironment.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
55
export interface IEnvironment {
66
production: boolean;
77
envName: string;
8+
REMOTE_CONFIG_URL: string;
89

910
// Enables use of ng.profiler.timeChangeDetection(); in browser console
1011
enableDebugTools?: boolean;

libs/chat-box/src/lib/services/dialogflow.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export class DialogflowService {
2222

2323
public getResponse(query: string): Observable<Dialogflow> {
2424
const data = {
25-
query: query,
25+
query,
2626
lang: 'en',
2727
sessionId: this.sessionId,
2828
};

libs/core/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ export * from './lib/state/app.state';
44
export * from './lib/state/profile.state';
55
export { PageTitleService } from './lib/services/page-title.service';
66
export { ProfileService } from './lib/services/profile.service';
7+
export { AppConfigService } from './lib/services/app-config.service';
78
export { ServiceWorkerService } from './lib/services/service-worker.service';
89
export { MediaQueryService } from './lib/services/media-query.service';
910
export { DeepLinkService } from './lib/services/deep-link.service';

0 commit comments

Comments
 (0)