- web/: Vue 3 + Vite + UnoCSS + Pinia, dark tactical theme (amber/#0d1117) - AppNav, ListingCard, SearchView with filters/sort, composables (useSnipeMode, useKonamiCode, useMotion), Pinia search store - Steal shimmer, auction countdown, Snipe Mode easter egg all native in Vue - docker/web/: nginx + multi-stage Dockerfile (node build → nginx serve) - compose.yml: api (8510) + web (8509) services - Dockerfile CMD updated to uvicorn for upcoming FastAPI layer - Clean build: 0 TS errors, 380 modules
27 lines
No EOL
774 B
JavaScript
27 lines
No EOL
774 B
JavaScript
import { mergeIconData } from "../icon/merge.js";
|
|
import { getIconsTree } from "./tree.js";
|
|
|
|
/**
|
|
* Get icon data, using prepared aliases tree
|
|
*/
|
|
function internalGetIconData(data, name, tree) {
|
|
const icons = data.icons;
|
|
const aliases = data.aliases || Object.create(null);
|
|
let currentProps = {};
|
|
function parse(name$1) {
|
|
currentProps = mergeIconData(icons[name$1] || aliases[name$1], currentProps);
|
|
}
|
|
parse(name);
|
|
tree.forEach(parse);
|
|
return mergeIconData(data, currentProps);
|
|
}
|
|
/**
|
|
* Get data for icon
|
|
*/
|
|
function getIconData(data, name) {
|
|
if (data.icons[name]) return internalGetIconData(data, name, []);
|
|
const tree = getIconsTree(data, [name])[name];
|
|
return tree ? internalGetIconData(data, name, tree) : null;
|
|
}
|
|
|
|
export { getIconData, internalGetIconData }; |