@antv/adjust
Version:
The adjust module for G2, F2.
34 lines (27 loc) • 761 B
text/typescript
import Adjust, { AdjustConstructor } from './adjusts/adjust';
interface AdjustMapType {
[type: string]: AdjustConstructor;
}
const ADJUST_MAP: AdjustMapType = {};
/**
* 根据类型获取 Adjust 类
* @param type
*/
const getAdjust = (type: string): AdjustConstructor => {
return ADJUST_MAP[type.toLowerCase()];
};
/**
* 注册自定义 Adjust
* @param type
* @param ctor
*/
const registerAdjust = (type: string, ctor: AdjustConstructor): void => {
// 注册的时候,需要校验 type 重名,不区分大小写
if (getAdjust(type)) {
throw new Error(`Adjust type '${type}' existed.`);
}
// 存储到 map 中
ADJUST_MAP[type.toLowerCase()] = ctor;
};
export { getAdjust, registerAdjust, Adjust };
export * from './interface';