@@ -48,14 +48,20 @@ export class NamespaceHttp extends Http implements NamespaceRepository {
4848 */
4949 private namespaceRoutesApi : NamespaceRoutesApi ;
5050
51+ /**
52+ * @internal
53+ * network type for the mappings.
54+ */
55+ private readonly networkTypeObservable : Observable < NetworkType > ;
5156 /**
5257 * Constructor
5358 * @param url
5459 * @param networkType
5560 */
56- constructor ( url : string , networkType ?: NetworkType ) {
57- super ( url , networkType ) ;
61+ constructor ( url : string , networkType ?: NetworkType | Observable < NetworkType > ) {
62+ super ( url ) ;
5863 this . namespaceRoutesApi = new NamespaceRoutesApi ( url ) ;
64+ this . networkTypeObservable = this . createNetworkTypeObservable ( networkType ) ;
5965 }
6066
6167 /**
@@ -111,7 +117,7 @@ export class NamespaceHttp extends Http implements NamespaceRepository {
111117 * @returns Observable<NamespaceInfo>
112118 */
113119 public getNamespace ( namespaceId : NamespaceId ) : Observable < NamespaceInfo > {
114- return this . getNetworkTypeObservable ( ) . pipe (
120+ return this . networkTypeObservable . pipe (
115121 mergeMap ( ( networkType ) => observableFrom (
116122 this . namespaceRoutesApi . getNamespace ( namespaceId . toHex ( ) ) ) . pipe (
117123 map ( ( { body} ) => new NamespaceInfo (
@@ -141,7 +147,7 @@ export class NamespaceHttp extends Http implements NamespaceRepository {
141147 */
142148 public getNamespacesFromAccount ( address : Address ,
143149 queryParams ?: QueryParams ) : Observable < NamespaceInfo [ ] > {
144- return this . getNetworkTypeObservable ( ) . pipe (
150+ return this . networkTypeObservable . pipe (
145151 mergeMap ( ( networkType ) => observableFrom (
146152 this . namespaceRoutesApi . getNamespacesFromAccount ( address . plain ( ) ,
147153 this . queryParams ( queryParams ) . pageSize ,
@@ -178,7 +184,7 @@ export class NamespaceHttp extends Http implements NamespaceRepository {
178184 const publicKeysBody = {
179185 addresses : addresses . map ( ( address ) => address . plain ( ) ) ,
180186 } ;
181- return this . getNetworkTypeObservable ( ) . pipe (
187+ return this . networkTypeObservable . pipe (
182188 mergeMap ( ( networkType ) => observableFrom (
183189 this . namespaceRoutesApi . getNamespacesFromAccounts ( publicKeysBody ) ) . pipe (
184190 map ( ( { body} ) => body . namespaces . map ( ( namespaceInfoDTO ) => {
@@ -229,7 +235,7 @@ export class NamespaceHttp extends Http implements NamespaceRepository {
229235 * @returns Observable<MosaicId | null>
230236 */
231237 public getLinkedMosaicId ( namespaceId : NamespaceId ) : Observable < MosaicId > {
232- return this . getNetworkTypeObservable ( ) . pipe (
238+ return this . networkTypeObservable . pipe (
233239 mergeMap ( ( ) => observableFrom (
234240 this . namespaceRoutesApi . getNamespace ( namespaceId . toHex ( ) ) ) . pipe (
235241 map ( ( { body} ) => {
@@ -257,7 +263,7 @@ export class NamespaceHttp extends Http implements NamespaceRepository {
257263 * @returns Observable<Address>
258264 */
259265 public getLinkedAddress ( namespaceId : NamespaceId ) : Observable < Address > {
260- return this . getNetworkTypeObservable ( ) . pipe (
266+ return this . networkTypeObservable . pipe (
261267 mergeMap ( ( ) => observableFrom (
262268 this . namespaceRoutesApi . getNamespace ( namespaceId . toHex ( ) ) ) . pipe (
263269 map ( ( { body} ) => {
0 commit comments