Support fallback tokens and replace key

This commit is contained in:
Lukas Martinelli
2017-01-13 15:31:28 +01:00
parent ca9424e23d
commit fc8665ed93
5 changed files with 51 additions and 16 deletions
+24
View File
@@ -1,6 +1,7 @@
import React from 'react';
import spec from 'mapbox-gl-style-spec/reference/latest.min.js'
import derefLayers from 'mapbox-gl-style-spec/lib/deref'
import tokens from '../config/tokens.json'
// Empty style is always used if no style could be restored or fetched
const emptyStyle = ensureStyleValidity({
@@ -54,9 +55,32 @@ function indexOfLayer(layers, layerId) {
return null
}
function replaceAccessToken(mapStyle) {
const omtSource = mapStyle.sources.openmaptiles
if(!omtSource) return mapStyle
const metadata = mapStyle.metadata || {}
const accessToken = metadata['maputnik:openmaptiles_access_token'] || tokens.openmaptiles
const changedSources = {
...mapStyle.sources,
openmaptiles: {
...omtSource,
url: omtSource.url.replace('{key}', accessToken)
}
}
const changedStyle = {
...mapStyle,
glyphs: mapStyle.glyphs.replace('{key}', accessToken),
sources: changedSources
}
return changedStyle
}
export default {
ensureStyleValidity,
emptyStyle,
indexOfLayer,
generateId,
replaceAccessToken,
}