Urara-Blog/node_modules/.pnpm-store/v3/files/70/71d3f239c7b97c289db53d6dc56801157dd6b1ca7444ff24af1b3215eee8c97a709f90d0e67cf1c5d3740d87d7022dea91dd79b12485340e06beee7b34faf4
2022-08-14 01:14:53 +08:00

38 lines
1 KiB
Text

import { iconDefaults, fullIcon } from '../icon/index.mjs';
import { mergeIconData } from '../icon/merge.mjs';
function getIconData(data, name, full = false) {
function getIcon(name2, iteration) {
if (data.icons[name2] !== void 0) {
return Object.assign({}, data.icons[name2]);
}
if (iteration > 5) {
return null;
}
const aliases = data.aliases;
if (aliases && aliases[name2] !== void 0) {
const item = aliases[name2];
const result2 = getIcon(item.parent, iteration + 1);
if (result2) {
return mergeIconData(result2, item);
}
return result2;
}
const chars = data.chars;
if (!iteration && chars && chars[name2] !== void 0) {
return getIcon(chars[name2], iteration + 1);
}
return null;
}
const result = getIcon(name, 0);
if (result) {
for (const key in iconDefaults) {
if (result[key] === void 0 && data[key] !== void 0) {
result[key] = data[key];
}
}
}
return result && full ? fullIcon(result) : result;
}
export { getIconData };