Merge branch 'master' into develop

This commit is contained in:
Pieter Vander Vennet 2023-11-13 12:15:37 +01:00
commit d2a813b009
231 changed files with 7858 additions and 8096 deletions

View file

@ -110,7 +110,7 @@ export class Each<X, Y> extends Conversion<X[], Y[]> {
values[i]?.["id"] !== undefined ? values[i]?.["id"] : ""
)
}
const context_ = c.enter(i - 1)
const context_ = c.enter(i)
const r = step.convert(values[i], context_)
result.push(r)
}

View file

@ -25,7 +25,14 @@ export class ConversionContext {
if (this.path.some((p) => typeof p === "object" || p === "[object Object]")) {
throw "ConversionMessage: got an object as path entry:" + JSON.stringify(path)
}
if (this.path.some((p) => typeof p === "number" && p < 0)) {
if (!ConversionContext.reported) {
ConversionContext.reported = true
console.trace("ConversionContext: got a path containing a negative number")
}
}
}
private static reported = false
public static construct(path: (string | number)[], operation: string[]) {
return new ConversionContext([], [...path], [...operation])
@ -71,6 +78,10 @@ export class ConversionContext {
public enter(key: string | number | (string | number)[]) {
if (!Array.isArray(key)) {
if (typeof key === "number" && key < 0) {
console.trace("Invalid key")
throw "Invalid key: <0"
}
return new ConversionContext(this.messages, [...this.path, key], this.operation)
}
return new ConversionContext(this.messages, [...this.path, ...key], this.operation)

View file

@ -1061,10 +1061,20 @@ export class PrevalidateLayer extends DesugaringStep<LayerConfigJson> {
"'"
)
}
if (json["pointRenderings"]?.length > 0) {
context
.enter("pointRenderings")
.err("Detected a 'pointRenderingS', it is written singular")
}
if (!(json.pointRendering?.length > 0)) {
context.enter("pointRendering").err("There are no pointRenderings at all...")
}
if (json["mapRendering"]) {
context.enter("mapRendering").err("This layer has a legacy 'mapRendering'")
}
if (json.presets?.length > 0) {
if (!(json.pointRendering?.length > 0)) {
context.enter("presets").warn("A preset is defined, but there is no pointRendering")