Skip to content

Commit

Permalink
fix: make shared module independent of config.js (#1870)
Browse files Browse the repository at this point in the history
  • Loading branch information
waterplea authored and MattDHill committed Oct 17, 2022
1 parent cf92d3c commit 3e4b336
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 21 deletions.
13 changes: 10 additions & 3 deletions frontend/projects/diagnostic-ui/src/app/app.module.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ErrorHandler, NgModule } from '@angular/core'
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { RouteReuseStrategy } from '@angular/router'
import { IonicModule, IonicRouteStrategy } from '@ionic/angular'
Expand All @@ -8,9 +8,12 @@ import { HttpClientModule } from '@angular/common/http'
import { ApiService } from './services/api/api.service'
import { MockApiService } from './services/api/mock-api.service'
import { LiveApiService } from './services/api/live-api.service'
import { WorkspaceConfig } from '@start9labs/shared'
import { RELATIVE_URL, WorkspaceConfig } from '@start9labs/shared'

const { useMocks } = require('../../../../config.json') as WorkspaceConfig
const {
useMocks,
ui: { api },
} = require('../../../../config.json') as WorkspaceConfig

@NgModule({
declarations: [AppComponent],
Expand All @@ -28,6 +31,10 @@ const { useMocks } = require('../../../../config.json') as WorkspaceConfig
provide: ApiService,
useClass: useMocks ? MockApiService : LiveApiService,
},
{
provide: RELATIVE_URL,
useValue: `/${api.url}/${api.version}`,
},
],
bootstrap: [AppComponent],
})
Expand Down
11 changes: 9 additions & 2 deletions frontend/projects/setup-wizard/src/app/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,12 @@ import { SuccessPageModule } from './pages/success/success.module'
import { HomePageModule } from './pages/home/home.module'
import { LoadingPageModule } from './pages/loading/loading.module'
import { RecoverPageModule } from './pages/recover/recover.module'
import { WorkspaceConfig } from '@start9labs/shared'
import { RELATIVE_URL, WorkspaceConfig } from '@start9labs/shared'

const { useMocks } = require('../../../../config.json') as WorkspaceConfig
const {
useMocks,
ui: { api },
} = require('../../../../config.json') as WorkspaceConfig

@NgModule({
declarations: [AppComponent],
Expand All @@ -41,6 +44,10 @@ const { useMocks } = require('../../../../config.json') as WorkspaceConfig
provide: ApiService,
useClass: useMocks ? MockApiService : LiveApiService,
},
{
provide: RELATIVE_URL,
useValue: `/${api.url}/${api.version}`,
},
],
bootstrap: [AppComponent],
})
Expand Down
2 changes: 2 additions & 0 deletions frontend/projects/shared/src/public-api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ export * from './types/rpc.types'
export * from './types/url'
export * from './types/workspace-config'

export * from './tokens/relative-url'

export * from './util/copy-to-clipboard'
export * from './util/base-64'
export * from './util/get-pkg-id'
Expand Down
25 changes: 11 additions & 14 deletions frontend/projects/shared/src/services/http.service.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
import { DOCUMENT } from '@angular/common'
import { Inject, Injectable } from '@angular/core'
import { HttpClient } from '@angular/common/http'
import { HttpError } from '../classes/http-error'
import {
HttpAngularOptions,
HttpOptions,
LocalHttpResponse,
Method,
} from '../types/http.types'
import { RPCResponse, RPCOptions } from '../types/rpc.types'
import { WorkspaceConfig } from '../types/workspace-config'
import {
firstValueFrom,
from,
Expand All @@ -19,20 +11,25 @@ import {
race,
take,
} from 'rxjs'
import { DOCUMENT } from '@angular/common'

const {
ui: { api },
} = require('../../../../config.json') as WorkspaceConfig
import { HttpError } from '../classes/http-error'
import {
HttpAngularOptions,
HttpOptions,
LocalHttpResponse,
Method,
} from '../types/http.types'
import { RPCResponse, RPCOptions } from '../types/rpc.types'
import { RELATIVE_URL } from '../tokens/relative-url'

@Injectable({
providedIn: 'root',
})
export class HttpService {
relativeUrl = `/${api.url}/${api.version}`
private fullUrl: string

constructor(
@Inject(RELATIVE_URL) private readonly relativeUrl: string,
@Inject(DOCUMENT) private readonly document: Document,
private readonly http: HttpClient,
) {
Expand Down
5 changes: 5 additions & 0 deletions frontend/projects/shared/src/tokens/relative-url.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { InjectionToken } from '@angular/core'

export const RELATIVE_URL = new InjectionToken<string>(
'Relative URL for requests',
)
11 changes: 9 additions & 2 deletions frontend/projects/ui/src/app/app.providers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,18 @@ import { APP_INITIALIZER, Provider } from '@angular/core'
import { UntypedFormBuilder } from '@angular/forms'
import { Router, RouteReuseStrategy } from '@angular/router'
import { IonicRouteStrategy, IonNav } from '@ionic/angular'
import { WorkspaceConfig } from '@start9labs/shared'
import { RELATIVE_URL, WorkspaceConfig } from '@start9labs/shared'
import { ApiService } from './services/api/embassy-api.service'
import { MockApiService } from './services/api/embassy-mock-api.service'
import { LiveApiService } from './services/api/embassy-live-api.service'
import { AuthService } from './services/auth.service'
import { ClientStorageService } from './services/client-storage.service'
import { FilterPackagesPipe } from '../../../marketplace/src/pipes/filter-packages.pipe'

const { useMocks } = require('../../../../config.json') as WorkspaceConfig
const {
useMocks,
ui: { api },
} = require('../../../../config.json') as WorkspaceConfig

export const APP_PROVIDERS: Provider[] = [
FilterPackagesPipe,
Expand All @@ -30,6 +33,10 @@ export const APP_PROVIDERS: Provider[] = [
useFactory: appInitializer,
multi: true,
},
{
provide: RELATIVE_URL,
useValue: `/${api.url}/${api.version}`,
},
]

export function appInitializer(
Expand Down

0 comments on commit 3e4b336

Please sign in to comment.