All files / src/plugins plugins.ts

66.67% Statements 4/6
0% Branches 0/2
33.33% Functions 1/3
60% Lines 3/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17                1x   1x   1x        
import { assignDeep, each, isArray } from 'support';
import { OverlayScrollbars, OverlayScrollbarsStatic } from 'overlayscrollbars';
 
export type OSPluginInstance =
  | Record<string, unknown>
  | ((staticObj: OverlayScrollbarsStatic, instanceObj: OverlayScrollbars) => void);
export type OSPlugin<T extends OSPluginInstance = OSPluginInstance> = [string, T];
 
const pluginRegistry: Record<string, OSPluginInstance> = {};
 
export const getPlugins = () => assignDeep({}, pluginRegistry);
 
export const addPlugin = (addedPlugin: OSPlugin | OSPlugin[]) =>
  each((isArray(addedPlugin) ? addedPlugin : [addedPlugin]) as OSPlugin[], (plugin) => {
    pluginRegistry[plugin[0]] = plugin[1];
  });