lovelacejs/lib/types/noduleTypes.d.ts
2022-06-19 18:41:21 -05:00

37 lines
1.3 KiB
TypeScript

import Table from "../entities/Table";
import { tableRow } from "./tableTypes";
declare type noduleConstructorProps = {
id: string;
label: string;
type?: 'Nodule';
tables?: Table[];
};
declare type filterType = 'EQUAL' | 'GREATER' | 'GREATEREQUAL' | 'LESSER' | 'LESSEREQUAL';
declare type filterParams = Record<string, string | number>;
declare type filterNoduleConstructionProps = noduleConstructorProps & {
filterType: filterType;
} & {
filterParams: filterParams;
};
declare type joinParam = {
foreignTable: string;
primaryTableKey: string;
matchingKey: string;
};
declare type joinBy = {
baseTableLabel: string;
joinParams: joinParam[];
};
declare type joinNoduleConstructionProps = noduleConstructorProps & {
joinBy: joinBy;
};
declare type transformStruct = Record<string, string>;
declare type transformNoduleConstructionProps = noduleConstructorProps & {
structure: transformStruct;
};
declare type groupByNoduleConstructorProps = noduleConstructorProps & {
groupByValue: string;
};
declare type groupedByRows = Record<string, tableRow[]>;
export { noduleConstructorProps, filterNoduleConstructionProps, filterType, filterParams, joinParam, joinBy, joinNoduleConstructionProps, transformStruct, transformNoduleConstructionProps, groupByNoduleConstructorProps, groupedByRows };