UNPKG

@antv/attr

Version:

The Attribute module for G2, F2.

29 lines (23 loc) 732 B
import Attribute, { AttributeConstructor } from './attributes/base'; interface AttributeMapType { [key: string]: any; } // 所有的 attribute map const ATTRIBUTE_MAP: AttributeMapType = {}; /** * 通过类型获得 Attribute 类 * @param type */ const getAttribute = (type: string) => { return ATTRIBUTE_MAP[type.toLowerCase()]; }; const registerAttribute = (type: string, ctor: AttributeConstructor) => { // 注册的时候,需要校验 type 重名,不区分大小写 if (getAttribute(type)) { throw new Error(`Attribute type '${type}' existed.`); } // 存储到 map 中 ATTRIBUTE_MAP[type.toLowerCase()] = ctor; }; export { getAttribute, registerAttribute, Attribute }; export * from './interface';