cheetah-grid
Version:
Cheetah Grid is a high performance grid engine that works on canvas
38 lines (34 loc) • 971 B
text/typescript
import type { IconDefine } from "./ts-types";
import type { Theme } from "./themes/theme";
import { icons as iconPlugins } from "./plugins/icons";
import { themes as themePlugins } from "./plugins/themes";
function register<T>(obj: { [key: string]: T }, name: string, value: T): T {
const old = obj[name];
obj[name] = value;
return old;
}
function registers<T>(
obj: { [key: string]: T },
values: { [key: string]: T }
): void {
for (const k in values) {
obj[k] = values[k];
}
}
export function theme(name: string, theme?: Theme): Theme {
if (theme != null) {
return register(themePlugins, name, theme);
} else {
return themePlugins[name];
}
}
export function icon(name: string, icon?: IconDefine): IconDefine {
if (icon != null) {
return register(iconPlugins, name, icon);
} else {
return iconPlugins[name];
}
}
export function icons(icons: { [key: string]: IconDefine }): void {
return registers(iconPlugins, icons);
}