flowerbi 5.0.0 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/QueryColumn.d.ts +23 -7
- package/dist/QueryColumn.js +31 -14
- package/dist/QueryColumn.js.map +1 -1
- package/dist/executeQuery.test.js +6 -5
- package/dist/executeQuery.test.js.map +1 -1
- package/package.json +1 -1
- package/src/QueryColumn.ts +26 -7
- package/src/executeQuery.test.ts +8 -6
package/dist/QueryColumn.d.ts
CHANGED
|
@@ -3,12 +3,31 @@ import { FilterValue, AggregationType, FilterJson, AggregationJson, FilterOperat
|
|
|
3
3
|
* A column from the schema, with a name and a data type. A whole schema of
|
|
4
4
|
* such declared columns can be auto-generated using the CLI.
|
|
5
5
|
*/
|
|
6
|
+
export declare enum QueryColumnDataType {
|
|
7
|
+
None = "None",
|
|
8
|
+
Bool = "Bool",
|
|
9
|
+
Byte = "Byte",
|
|
10
|
+
Short = "Short",
|
|
11
|
+
Int = "Int",
|
|
12
|
+
Long = "Long",
|
|
13
|
+
Float = "Float",
|
|
14
|
+
Double = "Double",
|
|
15
|
+
Decimal = "Decimal",
|
|
16
|
+
String = "String",
|
|
17
|
+
DateTime = "DateTime"
|
|
18
|
+
}
|
|
19
|
+
export declare class QueryColumnRuntimeType {
|
|
20
|
+
readonly dataType: QueryColumnDataType;
|
|
21
|
+
readonly targetColumn: string;
|
|
22
|
+
constructor(dataType: QueryColumnDataType, targetColumn: string);
|
|
23
|
+
}
|
|
6
24
|
export declare class QueryColumn<T extends FilterValue> {
|
|
7
25
|
readonly name: string;
|
|
26
|
+
readonly type: QueryColumnRuntimeType;
|
|
8
27
|
/**
|
|
9
28
|
* @param name The name, of the form `table.column`.
|
|
10
29
|
*/
|
|
11
|
-
constructor(name: string);
|
|
30
|
+
constructor(name: string, type: QueryColumnRuntimeType);
|
|
12
31
|
protected aggregation(aggregationType: AggregationType, filters?: FilterJson[]): AggregationJson;
|
|
13
32
|
/**
|
|
14
33
|
* Aggregates the column by counting values.
|
|
@@ -78,11 +97,10 @@ export declare class QueryColumn<T extends FilterValue> {
|
|
|
78
97
|
notIn(value: T extends number | string ? T[] : never): FilterJson;
|
|
79
98
|
}
|
|
80
99
|
export declare class NumericQueryColumn<T extends number | null = number> extends QueryColumn<T> {
|
|
81
|
-
readonly name: string;
|
|
82
100
|
/**
|
|
83
101
|
* @param name The name, of the form `table.column`.
|
|
84
102
|
*/
|
|
85
|
-
constructor(name: string);
|
|
103
|
+
constructor(name: string, type: QueryColumnRuntimeType);
|
|
86
104
|
/**
|
|
87
105
|
* Aggregates the column by summing values.
|
|
88
106
|
* @param filters Optional filters to apply.
|
|
@@ -95,19 +113,17 @@ export declare class NumericQueryColumn<T extends number | null = number> extend
|
|
|
95
113
|
avg(filters?: FilterJson[]): AggregationJson;
|
|
96
114
|
}
|
|
97
115
|
export declare class IntegerQueryColumn<T extends number | null = number> extends NumericQueryColumn<T> {
|
|
98
|
-
readonly name: string;
|
|
99
116
|
/**
|
|
100
117
|
* @param name The name, of the form `table.column`.
|
|
101
118
|
*/
|
|
102
|
-
constructor(name: string);
|
|
119
|
+
constructor(name: string, type: QueryColumnRuntimeType);
|
|
103
120
|
bitsIn(mask: number, value: NonNullable<T>[]): FilterJson;
|
|
104
121
|
}
|
|
105
122
|
export declare class StringQueryColumn<T extends string | null = string> extends QueryColumn<T> {
|
|
106
|
-
readonly name: string;
|
|
107
123
|
/**
|
|
108
124
|
* @param name The name, of the form `table.column`.
|
|
109
125
|
*/
|
|
110
|
-
constructor(name: string);
|
|
126
|
+
constructor(name: string, type: QueryColumnRuntimeType);
|
|
111
127
|
/**
|
|
112
128
|
* Produces a filter that requires this column to match a LIKE expression.
|
|
113
129
|
*/
|
package/dist/QueryColumn.js
CHANGED
|
@@ -15,17 +15,40 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
15
15
|
};
|
|
16
16
|
})();
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.StringQueryColumn = exports.IntegerQueryColumn = exports.NumericQueryColumn = exports.QueryColumn = void 0;
|
|
18
|
+
exports.StringQueryColumn = exports.IntegerQueryColumn = exports.NumericQueryColumn = exports.QueryColumn = exports.QueryColumnRuntimeType = exports.QueryColumnDataType = void 0;
|
|
19
19
|
/**
|
|
20
20
|
* A column from the schema, with a name and a data type. A whole schema of
|
|
21
21
|
* such declared columns can be auto-generated using the CLI.
|
|
22
22
|
*/
|
|
23
|
+
var QueryColumnDataType;
|
|
24
|
+
(function (QueryColumnDataType) {
|
|
25
|
+
QueryColumnDataType["None"] = "None";
|
|
26
|
+
QueryColumnDataType["Bool"] = "Bool";
|
|
27
|
+
QueryColumnDataType["Byte"] = "Byte";
|
|
28
|
+
QueryColumnDataType["Short"] = "Short";
|
|
29
|
+
QueryColumnDataType["Int"] = "Int";
|
|
30
|
+
QueryColumnDataType["Long"] = "Long";
|
|
31
|
+
QueryColumnDataType["Float"] = "Float";
|
|
32
|
+
QueryColumnDataType["Double"] = "Double";
|
|
33
|
+
QueryColumnDataType["Decimal"] = "Decimal";
|
|
34
|
+
QueryColumnDataType["String"] = "String";
|
|
35
|
+
QueryColumnDataType["DateTime"] = "DateTime";
|
|
36
|
+
})(QueryColumnDataType = exports.QueryColumnDataType || (exports.QueryColumnDataType = {}));
|
|
37
|
+
var QueryColumnRuntimeType = /** @class */ (function () {
|
|
38
|
+
function QueryColumnRuntimeType(dataType, targetColumn) {
|
|
39
|
+
this.dataType = dataType;
|
|
40
|
+
this.targetColumn = targetColumn;
|
|
41
|
+
}
|
|
42
|
+
return QueryColumnRuntimeType;
|
|
43
|
+
}());
|
|
44
|
+
exports.QueryColumnRuntimeType = QueryColumnRuntimeType;
|
|
23
45
|
var QueryColumn = /** @class */ (function () {
|
|
24
46
|
/**
|
|
25
47
|
* @param name The name, of the form `table.column`.
|
|
26
48
|
*/
|
|
27
|
-
function QueryColumn(name) {
|
|
49
|
+
function QueryColumn(name, type) {
|
|
28
50
|
this.name = name;
|
|
51
|
+
this.type = type;
|
|
29
52
|
}
|
|
30
53
|
QueryColumn.prototype.aggregation = function (aggregationType, filters) {
|
|
31
54
|
return {
|
|
@@ -150,10 +173,8 @@ var NumericQueryColumn = /** @class */ (function (_super) {
|
|
|
150
173
|
/**
|
|
151
174
|
* @param name The name, of the form `table.column`.
|
|
152
175
|
*/
|
|
153
|
-
function NumericQueryColumn(name) {
|
|
154
|
-
|
|
155
|
-
_this.name = name;
|
|
156
|
-
return _this;
|
|
176
|
+
function NumericQueryColumn(name, type) {
|
|
177
|
+
return _super.call(this, name, type) || this;
|
|
157
178
|
}
|
|
158
179
|
/**
|
|
159
180
|
* Aggregates the column by summing values.
|
|
@@ -177,10 +198,8 @@ var IntegerQueryColumn = /** @class */ (function (_super) {
|
|
|
177
198
|
/**
|
|
178
199
|
* @param name The name, of the form `table.column`.
|
|
179
200
|
*/
|
|
180
|
-
function IntegerQueryColumn(name) {
|
|
181
|
-
|
|
182
|
-
_this.name = name;
|
|
183
|
-
return _this;
|
|
201
|
+
function IntegerQueryColumn(name, type) {
|
|
202
|
+
return _super.call(this, name, type) || this;
|
|
184
203
|
}
|
|
185
204
|
IntegerQueryColumn.prototype.bitsIn = function (mask, value) {
|
|
186
205
|
return {
|
|
@@ -198,10 +217,8 @@ var StringQueryColumn = /** @class */ (function (_super) {
|
|
|
198
217
|
/**
|
|
199
218
|
* @param name The name, of the form `table.column`.
|
|
200
219
|
*/
|
|
201
|
-
function StringQueryColumn(name) {
|
|
202
|
-
|
|
203
|
-
_this.name = name;
|
|
204
|
-
return _this;
|
|
220
|
+
function StringQueryColumn(name, type) {
|
|
221
|
+
return _super.call(this, name, type) || this;
|
|
205
222
|
}
|
|
206
223
|
/**
|
|
207
224
|
* Produces a filter that requires this column to match a LIKE expression.
|
package/dist/QueryColumn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryColumn.js","sourceRoot":"","sources":["../src/QueryColumn.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAEA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"QueryColumn.js","sourceRoot":"","sources":["../src/QueryColumn.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Bug = exports.Customer = void 0;
|
|
4
4
|
var executeQuery_1 = require("./executeQuery");
|
|
5
5
|
var QueryColumn_1 = require("./QueryColumn");
|
|
6
|
+
var fakeType = {};
|
|
6
7
|
exports.Customer = {
|
|
7
|
-
Id: new QueryColumn_1.IntegerQueryColumn("Customer.Id"),
|
|
8
|
-
CustomerName: new QueryColumn_1.QueryColumn("Customer.CustomerName"),
|
|
8
|
+
Id: new QueryColumn_1.IntegerQueryColumn("Customer.Id", fakeType),
|
|
9
|
+
CustomerName: new QueryColumn_1.QueryColumn("Customer.CustomerName", fakeType),
|
|
9
10
|
};
|
|
10
11
|
exports.Bug = {
|
|
11
|
-
Id: new QueryColumn_1.QueryColumn("Bug.Id"),
|
|
12
|
-
CustomerId: new QueryColumn_1.QueryColumn("Bug.CustomerId"),
|
|
13
|
-
Fixed: new QueryColumn_1.QueryColumn("Bug.Fixed"),
|
|
12
|
+
Id: new QueryColumn_1.QueryColumn("Bug.Id", fakeType),
|
|
13
|
+
CustomerId: new QueryColumn_1.QueryColumn("Bug.CustomerId", fakeType),
|
|
14
|
+
Fixed: new QueryColumn_1.QueryColumn("Bug.Fixed", fakeType),
|
|
14
15
|
};
|
|
15
16
|
test("jsonifies mixed columns", function () {
|
|
16
17
|
expect((0, executeQuery_1.jsonifyQuery)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executeQuery.test.js","sourceRoot":"","sources":["../src/executeQuery.test.ts"],"names":[],"mappings":";;;AAAA,+CAAkF;AAClF,
|
|
1
|
+
{"version":3,"file":"executeQuery.test.js","sourceRoot":"","sources":["../src/executeQuery.test.ts"],"names":[],"mappings":";;;AAAA,+CAAkF;AAClF,6CAAwF;AAGxF,IAAM,QAAQ,GAAG,EAA4B,CAAC;AAEjC,QAAA,QAAQ,GAAG;IACpB,EAAE,EAAE,IAAI,gCAAkB,CAAS,aAAa,EAAE,QAAQ,CAAC;IAC3D,YAAY,EAAE,IAAI,yBAAW,CAAS,uBAAuB,EAAE,QAAQ,CAAC;CAC3E,CAAC;AAEW,QAAA,GAAG,GAAG;IACf,EAAE,EAAE,IAAI,yBAAW,CAAS,QAAQ,EAAE,QAAQ,CAAC;IAC/C,UAAU,EAAE,IAAI,yBAAW,CAAS,gBAAgB,EAAE,QAAQ,CAAC;IAC/D,KAAK,EAAE,IAAI,yBAAW,CAAU,WAAW,EAAE,QAAQ,CAAC;CACzD,CAAC;AAEF,IAAI,CAAC,yBAAyB,EAAE;IAC5B,MAAM,CACF,IAAA,2BAAY,EAAC;QACT,MAAM,EAAE;YACJ,QAAQ,EAAE,gBAAQ,CAAC,YAAY;YAC/B,QAAQ,EAAE,WAAG,CAAC,EAAE,CAAC,KAAK,EAAE;SAC3B;KACJ,CAAC,CACL,CAAC,aAAa,CAAC;QACZ,MAAM,EAAE,CAAC,uBAAuB,CAAC;QACjC,YAAY,EAAE;YACV;gBACI,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,SAAS;aACrB;SACJ;QACD,YAAY,EAAE,SAAS;QACvB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,KAAK;QACb,eAAe,EAAE,SAAS;QAC1B,OAAO,EAAE,SAAS;KACrB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kBAAkB,EAAE;IACrB,MAAM,CACF,IAAA,2BAAY,EAAC;QACT,MAAM,EAAE;YACJ,QAAQ,EAAE,gBAAQ,CAAC,YAAY;SAClC;KACJ,CAAC,CACL,CAAC,aAAa,CAAC;QACZ,MAAM,EAAE,CAAC,uBAAuB,CAAC;QACjC,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,SAAS;QACvB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,KAAK;QACb,eAAe,EAAE,SAAS;QAC1B,OAAO,EAAE,SAAS;KACrB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kBAAkB,EAAE;IACrB,MAAM,CACF,IAAA,2BAAY,EAAC;QACT,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,IAAI;QACrB,OAAO,EAAE,WAAW;KACvB,CAAC,CACL,CAAC,aAAa,CAAC;QACZ,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,SAAS;QACvB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,IAAI;QACrB,OAAO,EAAE,WAAW;KACvB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mBAAmB,EAAE;IACtB,MAAM,CACF,IAAA,2BAAY,EAAC;QACT,MAAM,EAAE;YACJ,QAAQ,EAAE,WAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,gBAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;SAChE;QACD,OAAO,EAAE,CAAC,gBAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,gBAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KACvF,CAAC,CACL,CAAC,aAAa,CAAC;QACZ,MAAM,EAAE,EAAE;QACV,YAAY,EAAE;YACV;gBACI,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE;oBACL;wBACI,MAAM,EAAE,uBAAuB;wBAC/B,QAAQ,EAAE,GAAG;wBACb,KAAK,EAAE,GAAG;qBACb;iBACJ;aACJ;SACJ;QACD,YAAY,EAAE,SAAS;QACvB,OAAO,EAAE;YACL;gBACI,MAAM,EAAE,uBAAuB;gBAC/B,QAAQ,EAAE,GAAG;gBACb,KAAK,EAAE,GAAG;aACb;YACD;gBACI,MAAM,EAAE,aAAa;gBACrB,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE,EAAE;gBACZ,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aAChB;SACJ;QACD,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,KAAK;QACb,eAAe,EAAE,SAAS;QAC1B,OAAO,EAAE,SAAS;KACrB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mBAAmB,EAAE;IACtB,MAAM,CACF,IAAA,2BAAY,EAAC;QACT,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,gBAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;KAChD,CAAC,CACL,CAAC,aAAa,CAAC;QACZ,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,SAAS;QACvB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE;YACL;gBACI,MAAM,EAAE,uBAAuB;gBAC/B,UAAU,EAAE,IAAI;aACnB;SACJ;QACD,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,KAAK;QACb,eAAe,EAAE,SAAS;QAC1B,OAAO,EAAE,SAAS;KACrB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6CAA6C,EAAE;IAChD,MAAM,CACF,IAAA,2BAAY,EAAC;QACT,MAAM,EAAE;YACJ,QAAQ,EAAE,gBAAQ,CAAC,YAAY;YAC/B,QAAQ,EAAE,WAAG,CAAC,EAAE,CAAC,KAAK,EAAE;YACxB,SAAS,EAAE,WAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SACrD;QACD,YAAY,EAAE;YACV,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YACvD,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;SACtE;QACD,OAAO,EAAE;YACL,EAAE,MAAM,EAAE,UAAU,EAAE;YACtB,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE;YACzC,EAAE,WAAW,EAAE,aAAa,EAAE;YAC9B,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;SACnD;KACJ,CAAC,CACL,CAAC,aAAa,CAAC;QACZ,MAAM,EAAE,CAAC,uBAAuB,CAAC;QACjC,YAAY,EAAE;YACV;gBACI,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,SAAS;aACrB;YACD;gBACI,MAAM,EAAE,QAAQ;gBAChB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE;oBACL;wBACI,MAAM,EAAE,WAAW;wBACnB,QAAQ,EAAE,GAAG;wBACb,KAAK,EAAE,IAAI;qBACd;iBACJ;aACJ;SACJ;QACD,YAAY,EAAE;YACV;gBACI,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;gBACrB,QAAQ,EAAE,GAAG;gBACb,MAAM,EAAE;oBACJ,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;oBACzB,QAAQ,EAAE,GAAG;oBACb,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;iBAC7B;aACJ;YACD;gBACI,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;gBACrB,QAAQ,EAAE,GAAG;gBACb,MAAM,EAAE;oBACJ,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;oBACrB,QAAQ,EAAE,GAAG;oBACb,MAAM,EAAE;wBACJ,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;wBACzB,QAAQ,EAAE,GAAG;wBACb,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;qBAC7B;iBACJ;aACJ;SACJ;QACD,OAAO,EAAE,EAAE;QACX,OAAO,EAAE;YACL,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE;YACnD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;YAC7C,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE;YACxD,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;SACtD;QACD,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,KAAK;QACb,eAAe,EAAE,SAAS;QAC1B,OAAO,EAAE,SAAS;KACrB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6BAA6B,EAAE;IAChC,MAAM,CACF,IAAA,2BAAY,EAAC;QACT,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,gBAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;KAChD,CAAC,CACL,CAAC,aAAa,CAAC;QACZ,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,SAAS;QACvB,OAAO,EAAE,EAAE;QACX,OAAO,EAAE;YACL;gBACI,MAAM,EAAE,uBAAuB;gBAC/B,UAAU,EAAE,IAAI;aACnB;SACJ;QACD,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,KAAK;QACb,eAAe,EAAE,SAAS;QAC1B,OAAO,EAAE,SAAS;KACrB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,SAAS,sBAAsB,CAAwD,KAAkB,EAAE,MAAuB;IAC9H,OAAO,IAAA,gCAAiB,EAAO,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;AAC7E,CAAC;AAED,IAAI,CAAC,yBAAyB,EAAE;IAC5B,IAAM,MAAM,GAAG,sBAAsB,CACjC;QACI,MAAM,EAAE;YACJ,QAAQ,EAAE,gBAAQ,CAAC,YAAY;YAC/B,QAAQ,EAAE,WAAG,CAAC,EAAE,CAAC,KAAK,EAAE;YACxB,SAAS,EAAE,WAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SACrD;QACD,YAAY,EAAE;YACV,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YACvD,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;SACtE;QACD,OAAO,EAAE;YACL,EAAE,MAAM,EAAE,UAAU,EAAE;YACtB,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE;YACzC,EAAE,WAAW,EAAE,aAAa,EAAE;YAC9B,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;SACnD;KACJ,EACD;QACI,OAAO,EAAE;YACL;gBACI,QAAQ,EAAE,CAAC,YAAY,CAAC;gBACxB,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;aACnC;SACJ;KACJ,CACJ,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;QACzB,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QACxG,MAAM,EAAE,SAAS;KACpB,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qCAAqC,EAAE;IACxC,IAAM,MAAM,GAAG,sBAAsB,CACjC;QACI,MAAM,EAAE;YACJ,QAAQ,EAAE,gBAAQ,CAAC,YAAY;YAC/B,QAAQ,EAAE,WAAG,CAAC,EAAE,CAAC,KAAK,EAAE;YACxB,SAAS,EAAE,WAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,WAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SACrD;QACD,YAAY,EAAE;YACV,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;YACvD,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;SACtE;QACD,OAAO,EAAE;YACL,EAAE,MAAM,EAAE,UAAU,EAAE;YACtB,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE;YACzC,EAAE,WAAW,EAAE,aAAa,EAAE;YAC9B,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;SACnD;KACJ,EACD;QACI,OAAO,EAAE;YACL;gBACI,QAAQ,EAAE,CAAC,YAAY,CAAC;gBACxB,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;aACnC;SACJ;QACD,MAAM,EAAE;YACJ,QAAQ,EAAE,CAAC,EAAE,CAAC;YACd,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;SAC7B;KACJ,CACJ,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;QACzB,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QACxG,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;KAC1E,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
package/src/QueryColumn.ts
CHANGED
|
@@ -4,11 +4,30 @@ import { FilterValue, AggregationType, FilterJson, AggregationJson, FilterOperat
|
|
|
4
4
|
* A column from the schema, with a name and a data type. A whole schema of
|
|
5
5
|
* such declared columns can be auto-generated using the CLI.
|
|
6
6
|
*/
|
|
7
|
+
|
|
8
|
+
export enum QueryColumnDataType {
|
|
9
|
+
None = "None",
|
|
10
|
+
Bool = "Bool",
|
|
11
|
+
Byte = "Byte",
|
|
12
|
+
Short = "Short",
|
|
13
|
+
Int = "Int",
|
|
14
|
+
Long = "Long",
|
|
15
|
+
Float = "Float",
|
|
16
|
+
Double = "Double",
|
|
17
|
+
Decimal = "Decimal",
|
|
18
|
+
String = "String",
|
|
19
|
+
DateTime = "DateTime",
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export class QueryColumnRuntimeType {
|
|
23
|
+
constructor(public readonly dataType: QueryColumnDataType, public readonly targetColumn: string) {}
|
|
24
|
+
}
|
|
25
|
+
|
|
7
26
|
export class QueryColumn<T extends FilterValue> {
|
|
8
27
|
/**
|
|
9
28
|
* @param name The name, of the form `table.column`.
|
|
10
29
|
*/
|
|
11
|
-
constructor(public readonly name: string) {}
|
|
30
|
+
constructor(public readonly name: string, public readonly type: QueryColumnRuntimeType) {}
|
|
12
31
|
|
|
13
32
|
protected aggregation(aggregationType: AggregationType, filters?: FilterJson[]): AggregationJson {
|
|
14
33
|
return {
|
|
@@ -146,8 +165,8 @@ export class NumericQueryColumn<T extends number | null = number> extends QueryC
|
|
|
146
165
|
/**
|
|
147
166
|
* @param name The name, of the form `table.column`.
|
|
148
167
|
*/
|
|
149
|
-
constructor(
|
|
150
|
-
super(name);
|
|
168
|
+
constructor(name: string, type: QueryColumnRuntimeType) {
|
|
169
|
+
super(name, type);
|
|
151
170
|
}
|
|
152
171
|
|
|
153
172
|
/**
|
|
@@ -171,8 +190,8 @@ export class IntegerQueryColumn<T extends number | null = number> extends Numeri
|
|
|
171
190
|
/**
|
|
172
191
|
* @param name The name, of the form `table.column`.
|
|
173
192
|
*/
|
|
174
|
-
constructor(
|
|
175
|
-
super(name);
|
|
193
|
+
constructor(name: string, type: QueryColumnRuntimeType) {
|
|
194
|
+
super(name, type);
|
|
176
195
|
}
|
|
177
196
|
|
|
178
197
|
bitsIn(mask: number, value: NonNullable<T>[]): FilterJson {
|
|
@@ -189,8 +208,8 @@ export class StringQueryColumn<T extends string | null = string> extends QueryCo
|
|
|
189
208
|
/**
|
|
190
209
|
* @param name The name, of the form `table.column`.
|
|
191
210
|
*/
|
|
192
|
-
constructor(
|
|
193
|
-
super(name);
|
|
211
|
+
constructor(name: string, type: QueryColumnRuntimeType) {
|
|
212
|
+
super(name, type);
|
|
194
213
|
}
|
|
195
214
|
|
|
196
215
|
/**
|
package/src/executeQuery.test.ts
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { expandQueryResult, jsonifyQuery, QueryResultJson } from "./executeQuery";
|
|
2
|
-
import { IntegerQueryColumn, QueryColumn } from "./QueryColumn";
|
|
2
|
+
import { IntegerQueryColumn, QueryColumn, QueryColumnRuntimeType } from "./QueryColumn";
|
|
3
3
|
import { Query, QueryCalculations, QuerySelect } from "./queryModel";
|
|
4
4
|
|
|
5
|
+
const fakeType = {} as QueryColumnRuntimeType;
|
|
6
|
+
|
|
5
7
|
export const Customer = {
|
|
6
|
-
Id: new IntegerQueryColumn<number>("Customer.Id"),
|
|
7
|
-
CustomerName: new QueryColumn<string>("Customer.CustomerName"),
|
|
8
|
+
Id: new IntegerQueryColumn<number>("Customer.Id", fakeType),
|
|
9
|
+
CustomerName: new QueryColumn<string>("Customer.CustomerName", fakeType),
|
|
8
10
|
};
|
|
9
11
|
|
|
10
12
|
export const Bug = {
|
|
11
|
-
Id: new QueryColumn<number>("Bug.Id"),
|
|
12
|
-
CustomerId: new QueryColumn<number>("Bug.CustomerId"),
|
|
13
|
-
Fixed: new QueryColumn<boolean>("Bug.Fixed"),
|
|
13
|
+
Id: new QueryColumn<number>("Bug.Id", fakeType),
|
|
14
|
+
CustomerId: new QueryColumn<number>("Bug.CustomerId", fakeType),
|
|
15
|
+
Fixed: new QueryColumn<boolean>("Bug.Fixed", fakeType),
|
|
14
16
|
};
|
|
15
17
|
|
|
16
18
|
test("jsonifies mixed columns", () => {
|