import type { DataXY } from 'cheminfo-types'; import type { SGGOptions } from 'ml-savitzky-golay-generalized'; import { sgg } from 'ml-savitzky-golay-generalized'; export interface SavitzkyGolayFilter { name: 'savitzkyGolay'; options?: SavitzkyGolayOptions; } export type SavitzkyGolayOptions = SGGOptions; /** * Apply the Savitzky Golay Generalized Filter * @param data * @param options */ export function savitzkyGolay( data: DataXY, options: SavitzkyGolayOptions = {}, ): { data: DataXY } { const { x, y } = data; return { data: { x, y: sgg(y, x, options) } }; }