import { wrap } from "comlink"; import type { api } from "./sort_filter_worker"; type FilterDataType = api["filterData"]; type FilterDataParamTypes = Parameters; type SortDataType = api["sortData"]; type SortDataParamTypes = Parameters; let worker: any | undefined; export const filterData = async ( data: FilterDataParamTypes[0], columns: FilterDataParamTypes[1], filter: FilterDataParamTypes[2] ): Promise> => { if (!worker) { worker = wrap(new Worker("./sort_filter_worker", { type: "module" })); } return await worker.filterData(data, columns, filter); }; export const sortData = async ( data: SortDataParamTypes[0], columns: SortDataParamTypes[1], direction: SortDataParamTypes[2], sortColumn: SortDataParamTypes[3] ): Promise> => { if (!worker) { worker = wrap(new Worker("./sort_filter_worker", { type: "module" })); } return await worker.sortData(data, columns, direction, sortColumn); };