mirror of
https://github.com/maputnik/editor.git
synced 2025-12-27 00:20:00 +00:00
- Use the browsers fetch rather than the request module - base64-loader -> raw-loader - Remove ol3 because it's been broken for a while - Removed old GitHub gist support as it's no longer functional - Removed Mousetrap as we were only using a small part of the functionality - Moved to single js file to make things simplier
42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
import npmurl from 'url'
|
|
|
|
function loadJSON(url, defaultValue, cb) {
|
|
fetch(url, {
|
|
mode: 'cors',
|
|
credentials: "same-origin"
|
|
})
|
|
.then(function(response) {
|
|
return response.json();
|
|
})
|
|
.then(function(body) {
|
|
cb(body)
|
|
})
|
|
.catch(function() {
|
|
console.warn('Can not metadata for ' + url)
|
|
cb(defaultValue)
|
|
})
|
|
}
|
|
|
|
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#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)
|
|
}
|
|
|
|
export function downloadSpriteMetadata(baseUrl, cb) {
|
|
if(!baseUrl) return cb([])
|
|
const url = baseUrl + '.json'
|
|
loadJSON(url, {}, glyphs => cb(Object.keys(glyphs)))
|
|
}
|