forked from MapComplete/MapComplete
Fix: enable external data sources from the ELI
This commit is contained in:
parent
394bad545d
commit
5ea08040d7
1 changed files with 26 additions and 2 deletions
|
@ -10,10 +10,11 @@ import ScriptUtils from "./ScriptUtils"
|
|||
import { Utils } from "../src/Utils"
|
||||
import SpecialVisualizations from "../src/UI/SpecialVisualizations"
|
||||
import Constants from "../src/Models/Constants"
|
||||
import { AvailableRasterLayers, RasterLayerPolygon } from "../src/Models/RasterLayers"
|
||||
import { AvailableRasterLayers, EditorLayerIndexProperties, RasterLayerPolygon } from "../src/Models/RasterLayers";
|
||||
import { ImmutableStore } from "../src/Logic/UIEventSource"
|
||||
import * as crypto from "crypto"
|
||||
|
||||
import * as eli from "../src/assets/editor-layer-index.json"
|
||||
import dom from "svelte/types/compiler/compile/render_dom";
|
||||
const sharp = require("sharp")
|
||||
const template = readFileSync("theme.html", "utf8")
|
||||
const codeTemplate = readFileSync("src/index_theme.ts.template", "utf8")
|
||||
|
@ -207,6 +208,28 @@ function asLangSpan(t: Translation, tag = "span"): string {
|
|||
|
||||
let previousSrc: Set<string> = new Set<string>()
|
||||
|
||||
let eliUrlsCached : string[]
|
||||
function eliUrls(): string[]{
|
||||
if(eliUrlsCached){
|
||||
return eliUrlsCached
|
||||
}
|
||||
const urls: string[] = []
|
||||
const regex =/{switch:([^}]+)}/
|
||||
for (const feature of eli.features) {
|
||||
const url = (<RasterLayerPolygon> feature).properties.url
|
||||
const match = url.match(regex)
|
||||
if(match){
|
||||
const domains = match[1].split(",")
|
||||
const subpart = match[0]
|
||||
urls.push(...domains.map(d => url.replace(subpart, d)))
|
||||
}else{
|
||||
urls.push(url)
|
||||
}
|
||||
}
|
||||
eliUrlsCached = urls
|
||||
return urls
|
||||
}
|
||||
|
||||
function generateCsp(
|
||||
layout: LayoutConfig,
|
||||
options: {
|
||||
|
@ -221,6 +244,7 @@ function generateCsp(
|
|||
"https://api.openstreetmap.org",
|
||||
"https://pietervdvn.goatcounter.com",
|
||||
].concat(...SpecialVisualizations.specialVisualizations.map((sv) => sv.needsUrls))
|
||||
.concat(...eliUrls())
|
||||
|
||||
const geojsonSources: string[] = layout.layers.map((l) => l.source?.geojsonSource)
|
||||
const hosts = new Set<string>()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue