Merge branch 'dev'

This commit is contained in:
vcoppe
2026-04-17 22:10:40 +02:00

View File

@@ -162,24 +162,31 @@ function getLayerValidator(allowed: Record<string, any>, fallback: string) {
function filterLayerTree(t: LayerTreeType, allowed: LayerTreeType | undefined): LayerTreeType { function filterLayerTree(t: LayerTreeType, allowed: LayerTreeType | undefined): LayerTreeType {
const filtered: LayerTreeType = {}; const filtered: LayerTreeType = {};
if (!allowed) return filtered; if (allowed) {
Object.keys(allowed).forEach((key) => { Object.entries(allowed).forEach(([key, value]) => {
const allowedVal = allowed[key]; if (Object.hasOwn(t, key)) {
if (typeof allowedVal === 'boolean') { if (typeof value === 'boolean') {
filtered[key] = typeof t?.[key] === 'boolean' ? t[key] : allowedVal; filtered[key] = t[key];
} else { } else if (typeof value === 'object') {
filtered[key] = filterLayerTree( filtered[key] = filterLayerTree(
typeof t?.[key] === 'object' ? (t[key] as LayerTreeType) : {}, typeof t[key] === 'object' ? t[key] : {},
allowedVal value
); );
} }
}); } else {
Object.entries(t ?? {}).forEach(([key, value]) => { filtered[key] = value;
if ( }
!Object.hasOwn(filtered, key) && });
(key.startsWith('custom-') || key.startsWith('extension-')) }
) { Object.entries(t).forEach(([key, value]) => {
filtered[key] = value; if (!Object.hasOwn(filtered, key)) {
if (typeof value === 'boolean') {
if (key.startsWith('custom-') || key.startsWith('extension-')) {
filtered[key] = value;
}
} else if (typeof value === 'object') {
filtered[key] = filterLayerTree(value, undefined);
}
} }
}); });
return filtered; return filtered;