Skip to content
Snippets Groups Projects
Unverified Commit 166f3219 authored by Anton Kulyk's avatar Anton Kulyk Committed by GitHub
Browse files

Fixes for MLv2 types (#33200)

* Fix `filterClause` return type

* Add `FilterOperatorDisplayInfo`

* Make `ColumnWithOperators` a subset of `ColumnMetadata`

* Fix `ExternalOp` marked as opaque

* Use `ColumnMetadata` in `ExternalOp` `args`
parent 0f65cde6
No related branches found
No related tags found
No related merge requests found
......@@ -27,7 +27,7 @@ export function filterClause(
filterOperator: FilterOperator,
column: ColumnMetadata,
...args: ExpressionArg[]
): ExternalOp {
): FilterClause {
return ML.filter_clause(filterOperator, column, ...args);
}
......
......@@ -17,6 +17,8 @@ import type {
ColumnDisplayInfo,
ColumnGroup,
ColumnMetadata,
FilterOperator,
FilterOperatorDisplayInfo,
JoinStrategy,
JoinStrategyDisplayInfo,
MetadataProvider,
......@@ -90,6 +92,11 @@ declare function DisplayInfoFn(
stageIndex: number,
joinStrategy: JoinStrategy,
): JoinStrategyDisplayInfo;
declare function DisplayInfoFn(
query: Query,
stageIndex: number,
filterOperator: FilterOperator,
): FilterOperatorDisplayInfo;
// x can be any sort of opaque object, e.g. a clause or metadata map. Values returned depend on what you pass in, but it
// should always have display_name... see :metabase.lib.metadata.calculation/display-info schema
......
......@@ -57,7 +57,7 @@ declare const ColumnMetadata: unique symbol;
export type ColumnMetadata = unknown & { _opaque: typeof ColumnMetadata };
declare const ColumnWithOperators: unique symbol;
export type ColumnWithOperators = unknown & {
export type ColumnWithOperators = ColumnMetadata & {
_opaque: typeof ColumnWithOperators;
};
......@@ -136,6 +136,12 @@ export type OrderByClauseDisplayInfo = ClauseDisplayInfo & {
declare const FilterOperator: unique symbol;
export type FilterOperator = unknown & { _opaque: typeof FilterOperator };
export type FilterOperatorDisplayInfo = {
displayName: string;
shortName: string;
default?: boolean;
};
export type ExpressionArg =
| null
| boolean
......@@ -144,13 +150,10 @@ export type ExpressionArg =
| ColumnMetadata
| Clause;
// ExternalOp is a JS-friendly representation of a filter clause or aggregation clause.
declare const ExternalOp: unique symbol;
export type ExternalOp = {
_opaque: typeof ExternalOp;
operator: string;
options: Record<string, unknown>;
args: ExpressionArg[];
args: [ColumnMetadata, ...ExpressionArg[]];
};
declare const Join: unique symbol;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment