@chartshq/datamodel
Version:
An environment with `node`, `rustup` and `wasm-pack` set up.
39 lines (38 loc) • 1.63 kB
TypeScript
import { ContextType } from '../constants/context';
import { DataMeta, ResultData, Schema } from './data';
import { SortOrder } from '../constants/sort';
import { AggregationType } from '../constants/aggregations';
import { FilteringModesType } from '../constants/filtering-modes';
import { AbstractWasmField } from '../contexts/wasm/fields/field';
import Invalid from '../data/invalid/invalid';
export interface ContextContract {
_contextName: ContextType;
getData(startIndex?: number, endIndex?: number): ResultData;
getField(name: string): AbstractWasmField | undefined;
getSchema(): Array<Schema>;
sort(sortingDetails: [[string, SortOrder]]): ContextContract;
groupBy(fields: string[], reducers: {
field: string;
aggn: AggregationType;
}[], options?: any): ContextContract;
select(query: any, options?: {
mode: FilteringModesType;
}): ContextContract | ContextContract[];
splitByRow(fields: string[]): ContextContract[];
project(fields: string[], options?: {
mode: FilteringModesType;
}): ContextContract | ContextContract[];
clone(dataMeta: DataMeta): ContextContract;
dispose(removeFields: {
disposeFields: boolean;
disposePartialFields: {
dispose: boolean;
values: string[];
};
}): void;
getDataMeta(): DataMeta;
addIdField(ids: number[]): ContextContract;
getMatchingIds(dm: ContextContract): number[];
calculateVariable(fieldInfo: Schema, fields: string[], fn: (...params: (string | number | Invalid)[]) => string | number): ContextContract;
context(): any;
}