commit f24faef5fc0ae6f94133b498d929bc9a62d40ba2
parent 1c9c6d5fcf06bb14d685607646074d586822e94e
Author: Jacob R. Edwards <jacob@jacobedwards.org>
Date: Sun, 13 Oct 2024 18:05:40 -0700
Fix backend updatedObject again
Fields validated with the type parameter were not set in the new
object.
Diffstat:
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/files/floorplans/floorplan/backend.js b/files/floorplans/floorplan/backend.js
@@ -622,7 +622,7 @@ export class FloorplanBackend {
for (let k in vd) {
let vdk = vd[k]
if (params[k] === undefined) {
- if (obj[k] !== undefined || vdk.default === undefined) {
+ if (obj[k] !== undefined || vdk.default == undefined) {
continue
}
params[k] = vdk.default
@@ -639,6 +639,7 @@ export class FloorplanBackend {
if (typeof params[k] !== vdk.type) {
throw new Error(`Invalid value for "${k}" parameter (type was ${typeof params[k]} when expecting ${vdk.type}`)
}
+ obj[k] = params[k]
}
if (typeof vdk.parse === "function") {
obj[k] = vdk.parse(params[k])
@@ -646,14 +647,15 @@ export class FloorplanBackend {
if (!vdk.validate(params[k])) {
throw new Error(`Invalid value for "${k}" parameter ("${params[k]}")`)
}
- obj[k] = params[k]
+ obj[k] = params[k]
} else if (typeof vdk.type !== "string") {
throw new Error(`"${k}" parameter missing type constraint, or validate or parse function`)
}
}
for (let k in vd) {
- if (vd[k].required && obj[k] == null) {
+ if (vd[k].required && obj[k] === undefined) {
+ console.warn(params, obj)
throw new Error(`Cannot omit required parameter ("${k}")`)
}
}