import * as MapboxGL from 'mapbox-gl' import lightLayers from './styles/layers.json' import darkLayers from './styles/layers-dark.json' import baseStyle from './styles/style-min.json' import symbolLayers from './styles/layers-symbol-light.json' export function buildStyle(customSourceUrl?: string, customTheme?: string): MapboxGL.Style { let sourceUrl = 'https://api.nextbillion.io/tiles/v3-openmaptiles/tiles.json' let themeLayers = null if (typeof customSourceUrl === 'string' && customSourceUrl.length > 0) { sourceUrl = customSourceUrl } switch (customTheme) { case 'light': themeLayers = lightLayers break case 'dark': themeLayers = darkLayers break default: themeLayers = lightLayers } baseStyle['sources'] = { nextbillionai: { type: 'vector', url: sourceUrl, minzoom: 0, maxzoom: 24, }, } baseStyle['layers'] = themeLayers as any return baseStyle } export function getSymbolLayers(): Array { return symbolLayers as Array }