fix: make shared module independent of config.js (#1870)

This commit is contained in:
Alex Inkin
2022-10-11 11:23:34 +03:00
committed by Aiden McClelland
parent 9998ed177b
commit 8beda5b0ae
6 changed files with 46 additions and 21 deletions

View File

@@ -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'
@@ -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],
@@ -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],
})

View File

@@ -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],
@@ -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],
})

View File

@@ -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'

View File

@@ -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,
@@ -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,
) {

View File

@@ -0,0 +1,5 @@
import { InjectionToken } from '@angular/core'
export const RELATIVE_URL = new InjectionToken<string>(
'Relative URL for requests',
)

View File

@@ -2,7 +2,7 @@ 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'
@@ -10,7 +10,10 @@ 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,
@@ -30,6 +33,10 @@ export const APP_PROVIDERS: Provider[] = [
useFactory: appInitializer,
multi: true,
},
{
provide: RELATIVE_URL,
useValue: `/${api.url}/${api.version}`,
},
]
export function appInitializer(