@@ -84,7 +84,7 @@ function modifyUrlLocal(
84
84
}
85
85
86
86
const extendUrl = ( url : string , props : URLMeaningfulParts ) =>
87
- modifyUrlLocal ( url , parsed => _ . merge ( parsed , props ) ) ;
87
+ modifyUrlLocal ( url , ( parsed ) => _ . merge ( parsed , props ) ) ;
88
88
89
89
/**
90
90
* Unescape a url template that was escaped by encodeURI() so leaflet
@@ -272,16 +272,6 @@ export class EMSClient {
272
272
return i18nObject [ this . _language ] ? i18nObject [ this . _language ] : i18nObject [ DEFAULT_LANGUAGE ] ;
273
273
}
274
274
275
- private _getEmsVersion ( version : string | undefined ) : string {
276
- const userVersion = semver . valid ( semver . coerce ( version ) ) ;
277
- const semverVersion = userVersion ? userVersion : semver . coerce ( DEFAULT_EMS_VERSION ) ;
278
- if ( semverVersion ) {
279
- return `v${ semver . major ( semverVersion ) } .${ semver . minor ( semverVersion ) } ` ;
280
- } else {
281
- throw new Error ( `Invalid version: ${ version } ` ) ;
282
- }
283
- }
284
-
285
275
/**
286
276
* this internal method is overridden by the tests to simulate custom manifest.
287
277
*/
@@ -301,6 +291,96 @@ export class EMSClient {
301
291
}
302
292
}
303
293
294
+ /**
295
+ * Add optional query-parameters to all requests
296
+ *
297
+ * @param additionalQueryParams
298
+ */
299
+ addQueryParams ( additionalQueryParams : { [ key : string ] : string } ) : void {
300
+ for ( const key in additionalQueryParams ) {
301
+ if ( additionalQueryParams . hasOwnProperty ( key ) ) {
302
+ if ( additionalQueryParams [ key ] !== this . _queryParams [ key ] ) {
303
+ //changes detected.
304
+ this . _queryParams = _ . assign ( { } , this . _queryParams , additionalQueryParams ) ;
305
+ this . _invalidateSettings ( ) ;
306
+ break ;
307
+ }
308
+ }
309
+ }
310
+ }
311
+
312
+ async getMainManifest ( ) : Promise < EmsCatalogManifest > {
313
+ return await this . _getMainCatalog ( ) ;
314
+ }
315
+
316
+ async getDefaultFileManifest ( ) : Promise < EmsFileCatalog > {
317
+ return await this . _getDefaultFileCatalog ( ) ;
318
+ }
319
+
320
+ async getDefaultTMSManifest ( ) : Promise < EmsTmsCatalog > {
321
+ return await this . _getDefaultTMSCatalog ( ) ;
322
+ }
323
+
324
+ async getFileLayers ( ) : Promise < FileLayer [ ] > {
325
+ return await this . _loadFileLayers ( ) ;
326
+ }
327
+
328
+ async getTMSServices ( ) : Promise < TMSService [ ] > {
329
+ return await this . _loadTMSServices ( ) ;
330
+ }
331
+
332
+ getTileApiUrl ( ) : string {
333
+ return this . _tileApiUrl ;
334
+ }
335
+
336
+ getFileApiUrl ( ) : string {
337
+ return this . _fileApiUrl ;
338
+ }
339
+
340
+ getLandingPageUrl ( ) : string {
341
+ return this . _emsLandingPageUrl ;
342
+ }
343
+
344
+ sanitizeHtml ( html : string ) : string {
345
+ return this . _sanitizer ( html ) ;
346
+ }
347
+
348
+ extendUrlWithParams ( url : string ) : string {
349
+ return unescapeTemplateVars (
350
+ extendUrl ( url , {
351
+ query : this . _queryParams ,
352
+ } )
353
+ ) ;
354
+ }
355
+
356
+ async findFileLayerById ( id : string ) : Promise < FileLayer | undefined > {
357
+ const fileLayers = await this . getFileLayers ( ) ;
358
+ for ( let i = 0 ; i < fileLayers . length ; i ++ ) {
359
+ if ( fileLayers [ i ] . hasId ( id ) ) {
360
+ return fileLayers [ i ] ;
361
+ }
362
+ }
363
+ }
364
+
365
+ async findTMSServiceById ( id : string ) : Promise < TMSService | undefined > {
366
+ const tmsServices = await this . getTMSServices ( ) ;
367
+ for ( let i = 0 ; i < tmsServices . length ; i ++ ) {
368
+ if ( tmsServices [ i ] . hasId ( id ) ) {
369
+ return tmsServices [ i ] ;
370
+ }
371
+ }
372
+ }
373
+
374
+ private _getEmsVersion ( version : string | undefined ) : string {
375
+ const userVersion = semver . valid ( semver . coerce ( version ) ) ;
376
+ const semverVersion = userVersion ? userVersion : semver . coerce ( DEFAULT_EMS_VERSION ) ;
377
+ if ( semverVersion ) {
378
+ return `v${ semver . major ( semverVersion ) } .${ semver . minor ( semverVersion ) } ` ;
379
+ } else {
380
+ throw new Error ( `Invalid version: ${ version } ` ) ;
381
+ }
382
+ }
383
+
304
384
private _fetchWithTimeout ( url : string ) : Promise < Body > {
305
385
return new Promise < Body > ( ( resolve , reject ) => {
306
386
const timer = setTimeout (
@@ -320,24 +400,6 @@ export class EMSClient {
320
400
} ) ;
321
401
}
322
402
323
- /**
324
- * Add optional query-parameters to all requests
325
- *
326
- * @param additionalQueryParams
327
- */
328
- addQueryParams ( additionalQueryParams : { [ key : string ] : string } ) : void {
329
- for ( const key in additionalQueryParams ) {
330
- if ( additionalQueryParams . hasOwnProperty ( key ) ) {
331
- if ( additionalQueryParams [ key ] !== this . _queryParams [ key ] ) {
332
- //changes detected.
333
- this . _queryParams = _ . assign ( { } , this . _queryParams , additionalQueryParams ) ;
334
- this . _invalidateSettings ( ) ;
335
- break ;
336
- }
337
- }
338
- }
339
- }
340
-
341
403
private async _getManifestWithParams < T > ( url : string ) : Promise < T > {
342
404
const extendedUrl = this . extendUrlWithParams ( url ) ;
343
405
return await this . getManifest ( extendedUrl ) ;
@@ -417,66 +479,4 @@ export class EMSClient {
417
479
}
418
480
) ;
419
481
}
420
-
421
- async getMainManifest ( ) : Promise < EmsCatalogManifest > {
422
- return await this . _getMainCatalog ( ) ;
423
- }
424
-
425
- async getDefaultFileManifest ( ) : Promise < EmsFileCatalog > {
426
- return await this . _getDefaultFileCatalog ( ) ;
427
- }
428
-
429
- async getDefaultTMSManifest ( ) : Promise < EmsTmsCatalog > {
430
- return await this . _getDefaultTMSCatalog ( ) ;
431
- }
432
-
433
- async getFileLayers ( ) : Promise < FileLayer [ ] > {
434
- return await this . _loadFileLayers ( ) ;
435
- }
436
-
437
- async getTMSServices ( ) : Promise < TMSService [ ] > {
438
- return await this . _loadTMSServices ( ) ;
439
- }
440
-
441
- getTileApiUrl ( ) : string {
442
- return this . _tileApiUrl ;
443
- }
444
-
445
- getFileApiUrl ( ) : string {
446
- return this . _fileApiUrl ;
447
- }
448
-
449
- getLandingPageUrl ( ) : string {
450
- return this . _emsLandingPageUrl ;
451
- }
452
-
453
- sanitizeHtml ( html : string ) : string {
454
- return this . _sanitizer ( html ) ;
455
- }
456
-
457
- extendUrlWithParams ( url : string ) : string {
458
- return unescapeTemplateVars (
459
- extendUrl ( url , {
460
- query : this . _queryParams ,
461
- } )
462
- ) ;
463
- }
464
-
465
- async findFileLayerById ( id : string ) : Promise < FileLayer | undefined > {
466
- const fileLayers = await this . getFileLayers ( ) ;
467
- for ( let i = 0 ; i < fileLayers . length ; i ++ ) {
468
- if ( fileLayers [ i ] . hasId ( id ) ) {
469
- return fileLayers [ i ] ;
470
- }
471
- }
472
- }
473
-
474
- async findTMSServiceById ( id : string ) : Promise < TMSService | undefined > {
475
- const tmsServices = await this . getTMSServices ( ) ;
476
- for ( let i = 0 ; i < tmsServices . length ; i ++ ) {
477
- if ( tmsServices [ i ] . hasId ( id ) ) {
478
- return tmsServices [ i ] ;
479
- }
480
- }
481
- }
482
482
}
0 commit comments