import { Configurator, FluentAccumulator, ITableColumn } from "./p-table-types"; export interface ITableColumnApi { add: ( id: string | number, options?: Partial> ) => ITableColumnApi; } export const colDefinition: FluentAccumulator = ( config ) => { const api: ITableColumnApi = { add: (id, options) => { config.push({ id, ...(options ? options : {}), name: options && options.name ? options.name : String(id), } as ITableColumn); return api; }, }; return api; }; export const ColumnDefinition: Configurator = ( config ) => { const columns: ITableColumn[] = []; config(colDefinition(columns)); return columns; };