mirror of
https://github.com/tenrok/OverlayScrollbars.git
synced 2026-05-26 04:04:07 +03:00
21 lines
733 B
TypeScript
21 lines
733 B
TypeScript
import { each, isArray, keys } from 'support';
|
|
import { OverlayScrollbars, OverlayScrollbarsStatic } from 'overlayscrollbars';
|
|
|
|
export type PluginInstance =
|
|
| Record<string, unknown>
|
|
| ((staticObj: OverlayScrollbarsStatic, instanceObj: OverlayScrollbars) => void);
|
|
export type Plugin<T extends PluginInstance = PluginInstance> = {
|
|
[pluginName: string]: T;
|
|
};
|
|
|
|
const pluginRegistry: Record<string, PluginInstance> = {};
|
|
|
|
export const getPlugins = () => pluginRegistry;
|
|
|
|
export const addPlugin = (addedPlugin: Plugin | Plugin[]): void => {
|
|
each((isArray(addedPlugin) ? addedPlugin : [addedPlugin]) as Plugin[], (plugin) => {
|
|
const pluginName = keys(plugin)[0];
|
|
pluginRegistry[pluginName] = plugin[pluginName];
|
|
});
|
|
};
|