Urara-Blog/node_modules/.pnpm-store/v3/files/6f/f35de9ed3945fc18aab48bfb13890fc6b7835f9a8facf41825c6c888bc01c5755f1592abbadd8f019c7ee581e031c0d292d9468885802749f3967174254721
2022-08-14 01:14:53 +08:00

54 lines
1.5 KiB
Text

import { iconDefaults, matchName } from '../icon/index.mjs';
const optionalProperties = {
provider: "string",
aliases: "object",
not_found: "object"
};
for (const prop in iconDefaults) {
optionalProperties[prop] = typeof iconDefaults[prop];
}
function quicklyValidateIconSet(obj) {
if (typeof obj !== "object" || obj === null) {
return null;
}
const data = obj;
if (typeof data.prefix !== "string" || !obj.icons || typeof obj.icons !== "object") {
return null;
}
for (const prop in optionalProperties) {
if (obj[prop] !== void 0 && typeof obj[prop] !== optionalProperties[prop]) {
return null;
}
}
const icons = data.icons;
for (const name in icons) {
const icon = icons[name];
if (!name.match(matchName) || typeof icon.body !== "string") {
return null;
}
for (const prop in iconDefaults) {
if (icon[prop] !== void 0 && typeof icon[prop] !== typeof iconDefaults[prop]) {
return null;
}
}
}
const aliases = data.aliases;
if (aliases) {
for (const name in aliases) {
const icon = aliases[name];
const parent = icon.parent;
if (!name.match(matchName) || typeof parent !== "string" || !icons[parent] && !aliases[parent]) {
return null;
}
for (const prop in iconDefaults) {
if (icon[prop] !== void 0 && typeof icon[prop] !== typeof iconDefaults[prop]) {
return null;
}
}
}
}
return data;
}
export { quicklyValidateIconSet };