From bbf26a3f382529a7e81b2c9ca7993934d37f9877 Mon Sep 17 00:00:00 2001 From: jirik Date: Thu, 2 Feb 2017 13:19:52 +0100 Subject: [PATCH] Update fontstacks URL according to https://github.com/klokantech/tileserver-gl/pull/104#issuecomment-274444087 --- src/libs/metadata.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/libs/metadata.js b/src/libs/metadata.js index e44798f..deac199 100644 --- a/src/libs/metadata.js +++ b/src/libs/metadata.js @@ -1,4 +1,5 @@ import request from 'request' +import npmurl from 'url' function loadJSON(url, defaultValue, cb) { request({ @@ -23,9 +24,15 @@ export function downloadGlyphsMetadata(urlTemplate, cb) { if(!urlTemplate) return cb([]) // Special handling because Tileserver GL serves the fontstacks metadata differently - // https://github.com/klokantech/tileserver-gl/pull/104 - let url = urlTemplate.replace('/fonts/{fontstack}/{range}.pbf', '/fontstacks.json') - url = url.replace('{fontstack}/{range}.pbf', 'fontstacks.json') + // https://github.com/klokantech/tileserver-gl/pull/104#issuecomment-274444087 + let urlObj = npmurl.parse(urlTemplate); + const normPathPart = '/%7Bfontstack%7D/%7Brange%7D.pbf'; + if(urlObj.pathname === normPathPart) { + urlObj.pathname = '/fontstacks.json'; + } else { + urlObj.pathname = urlObj.pathname.replace(normPathPart, '.json'); + } + let url = npmurl.format(urlObj); loadJSON(url, [], cb) }