Files
Bug, Ltd. 17380c173f Bootstrap (#1)
bootstrap repo with files from local
2025-01-14 16:15:47 +01:00

78 lines
2.9 KiB
JavaScript

import { $el } from '../../../../scripts/ui.js';
import { log } from '../shared/common.js';
import { showErrorDialog } from '../shared/utils.js';
export async function displaySingleError(nodeTitle, errorDisplay, token1, token2 = '', displayTitle = true, displayCategory = true) {
let message = '';
switch (errorDisplay) {
case 'browser':
message = token2 ? `${token1}: ${token2}` : token1;
if (displayTitle)
log.warn(`${nodeTitle}: ${message}`);
else if (displayCategory)
log.warn(message);
else
console.warn(message);
break;
case 'dialog':
message = token2 ? `${token1}: ${token2}` : token1;
if (displayTitle)
await showErrorDialog({
title: nodeTitle,
subtitle: '⚠️ ' + message,
centerSubtitle: true,
});
else
await showErrorDialog({
subtitle: '⚠️ ' + message,
centerSubtitle: true,
});
break;
default:
}
}
export async function displayErrorDict(nodeTitle, errorDisplay, errorDict, message = '') {
switch (errorDisplay) {
case 'browser':
if (message) {
await displaySingleError(nodeTitle, errorDisplay, message + ':');
}
for (const [key, err] of Object.entries(errorDict)) {
const errors = Array.isArray(err) ? err : [err];
for (const error of errors) {
if (message)
await displaySingleError(nodeTitle, errorDisplay, ` - '${key}'`, String(error), false, false);
else
await displaySingleError(nodeTitle, errorDisplay, `Error in '${key}'`, String(error));
}
}
break;
case 'dialog': {
const allErrors = [];
for (const [key, errors] of Object.entries(errorDict)) {
if (Array.isArray(errors)) {
const keyErrors = [];
for (const error of errors) {
keyErrors.push($el('li', String(error)));
}
allErrors.push($el('li', [
key + ':',
$el('ul', { style: { paddingLeft: '20px' } }, keyErrors),
]));
}
else {
allErrors.push($el('li', [`'${key}': ${String(errors)}`]));
}
}
await showErrorDialog({
title: nodeTitle,
subtitle: '⚠️ ' + message,
centerSubtitle: true,
content: $el('ul', { style: { margin: '0px', paddingLeft: '0px' } }, allErrors),
centerContent: true,
});
break;
}
default:
}
}