From 8ca5a997979e0c08639610d6bbeca21f399777f1 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Mon, 17 May 2021 17:10:54 +0200 Subject: [PATCH] Robuster handling, add helpful error messages for wrong themes --- Customizations/AllKnownLayers.ts | 4 ++++ Customizations/JSON/TagRenderingConfig.ts | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/Customizations/AllKnownLayers.ts b/Customizations/AllKnownLayers.ts index 87fe98b176..b740ded355 100644 --- a/Customizations/AllKnownLayers.ts +++ b/Customizations/AllKnownLayers.ts @@ -28,6 +28,10 @@ export default class AllKnownLayers { if (typeof layer === "string") { continue; } + if(layer.builtin !== undefined){ + // This is a builtin layer of which stuff is overridden - skip + continue; + } try { const parsed = new LayerConfig(layer, "shared_layer_in_theme") sharedLayers.set(layer.id, parsed); diff --git a/Customizations/JSON/TagRenderingConfig.ts b/Customizations/JSON/TagRenderingConfig.ts index d5d237a145..157bc2d1bf 100644 --- a/Customizations/JSON/TagRenderingConfig.ts +++ b/Customizations/JSON/TagRenderingConfig.ts @@ -104,6 +104,15 @@ export default class TagRenderingConfig { if (mapping.ifnot !== undefined && !this.multiAnswer) { throw `${context}.mapping[${i}]: Invalid mapping: ifnot defined, but the tagrendering is not a multianswer` } + + if(mapping.if === undefined){ + throw `${context}.mapping[${i}]: Invalid mapping: "if" is not defined, but the tagrendering is not a multianswer` + } + if(typeof mapping.if !== "string" && mapping.if["length"] !== undefined){ + throw `${context}.mapping[${i}]: Invalid mapping: "if" is defined as an array. Use {"and": } or {"or": } instead` + } + + let hideInAnswer: boolean | TagsFilter = false; if (typeof mapping.hideInAnswer === "boolean") { hideInAnswer = mapping.hideInAnswer;