import { registry, DatasetControllerChartComponent, ChartComponent } from 'chart.js'; export default function patchController<T, TYPE>( type: TYPE, config: T, controller: DatasetControllerChartComponent, elements: ChartComponent | ChartComponent[] = [], scales: ChartComponent | ChartComponent[] = [] ): T & { type: TYPE } { registry.addControllers(controller); if (Array.isArray(elements)) { registry.addElements(...elements); } else { registry.addElements(elements); } if (Array.isArray(scales)) { registry.addScales(...scales); } else { registry.addScales(scales); } const c = config as any; c.type = type; return c; }