template/packages-user/client-base/src/elements/index.ts
unanmed 0b93426d47 refactor(04-11): 渲染端结构性移植——通用渲染资产下沉 @user/client-base(D-58..D-68)
- MOVE:39 个文件由 client-modules/src/render/ 移入 client-base/src/{components,elements,map,layout}/,删除原件
- D-58:新建 client-base/src/shared/(10 常量纯摘取)+ 被移 map 文件 shared 说明符改指 4 处
- D-63:client-base/src/index.ts 新增 5 条桶导出;14 个实现层消费者改指 @user/client-base
- D-66:client-base/package.json 新增 5 条 workspace:* 依赖 + 根 pnpm i(lockfile importer 同步)
- D-59 / D-60 / D-68:10 处架构耦合以带原因 // @ts-expect-error 暂记,不反向引用、不解耦
- D-62:命名一律不变;D-64 ?raw 不处理;D-65 legacy 一律不管
2026-09-24 17:14:43 +08:00

49 lines
1.6 KiB
TypeScript

import { logger } from '@motajs/common';
import { MapRenderItem } from '../map';
// @ts-expect-error render/renderer 按 D-54 留在实现层,本文件已移入系统层,按 D-67 暂以标注记录标签注册耦合,不反向引用、不解耦
import { mainRenderer, tagManager } from '../renderer';
import { createCache } from './cache';
import { Icon, Winskin } from './misc';
export function createElements() {
createCache();
// ----- 注册标签
mainRenderer.registerElement('icon', Icon);
mainRenderer.registerElement('winskin', Winskin);
mainRenderer.registerElement('map-render', MapRenderItem);
tagManager.registerTag(
'icon',
tagManager.createStandardElement(false, Icon)
);
tagManager.registerTag(
'winskin',
tagManager.createStandardElement(false, Winskin)
);
tagManager.registerTag('map-render', props => {
if (!props) {
logger.error(42, 'layerState');
throw new Error(`Lack of map-render property.`);
}
const { layerState, renderer, extension } = props;
if (!layerState) {
logger.error(42, 'layerState');
throw new Error(`Lack of map-render property.`);
}
if (!renderer) {
logger.error(42, 'renderer');
throw new Error(`Lack of map-render property.`);
}
if (!extension) {
logger.error(42, 'extension');
throw new Error(`Lack of map-render property.`);
}
return new MapRenderItem(layerState, renderer, extension);
});
}
export * from './cache';
export * from './misc';
export * from './props';