123456789101112131415161718192021222324 |
- import { markRaw, reactive } from "vue";
- import { images } from "../board/useBoard";
- const componentLoads = import.meta.glob("./*.vue");
- export const components: { [key in string]: any } = reactive({});
- const map = {
- label: ["Circle", "Rectangle", "Wall"],
- image: images,
- };
- Object.entries(componentLoads).map(([name, fn]) => {
- name = name.substring(2, name.lastIndexOf(".vue"));
- fn().then((mudule) => {
- const component = (mudule as any).default;
- markRaw(component as any);
- const keys = [name, ...(map[name] ? map[name] : [])];
- keys.forEach((name) => {
- components[name] = component;
- components[name.slice(0, 1).toUpperCase() + name.slice(1)] = component;
- });
- });
- });
|