mirror of
https://github.com/DI0IK/homepage-plus.git
synced 2025-07-10 23:38:46 +00:00
Further widget validation cleanup
This commit is contained in:
parent
a83d105764
commit
dacb038126
1 changed files with 3 additions and 2 deletions
|
@ -5,6 +5,7 @@ export default function validateWidgetData(widget, endpoint, data) {
|
||||||
let valid = true;
|
let valid = true;
|
||||||
let dataParsed = data;
|
let dataParsed = data;
|
||||||
let error;
|
let error;
|
||||||
|
let mapping;
|
||||||
if (Buffer.isBuffer(data)) {
|
if (Buffer.isBuffer(data)) {
|
||||||
try {
|
try {
|
||||||
dataParsed = JSON.parse(data);
|
dataParsed = JSON.parse(data);
|
||||||
|
@ -17,7 +18,7 @@ export default function validateWidgetData(widget, endpoint, data) {
|
||||||
if (dataParsed && Object.entries(dataParsed).length) {
|
if (dataParsed && Object.entries(dataParsed).length) {
|
||||||
const mappings = widgets[widget.type]?.mappings;
|
const mappings = widgets[widget.type]?.mappings;
|
||||||
if (mappings) {
|
if (mappings) {
|
||||||
const mapping = Object.values(mappings).find(m => m.endpoint === endpoint);
|
mapping = Object.values(mappings).find(m => m.endpoint === endpoint);
|
||||||
mapping?.validate?.forEach(key => {
|
mapping?.validate?.forEach(key => {
|
||||||
if (dataParsed[key] === undefined) {
|
if (dataParsed[key] === undefined) {
|
||||||
valid = false;
|
valid = false;
|
||||||
|
@ -27,7 +28,7 @@ export default function validateWidgetData(widget, endpoint, data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!valid) {
|
if (!valid) {
|
||||||
console.warn(`Invalid data for widget '${widget.type}' endpoint '${endpoint}':\nParse error: ${error ?? "none"}\nData: ${JSON.stringify(data, null, " ")}`);
|
console.warn(`Invalid data for widget '${widget.type}' endpoint '${endpoint}':\nExpected:${mapping?.validate}\nParse error: ${error ?? "none"}\nData: ${JSON.stringify(data)}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
return valid;
|
return valid;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue