@taylordb/query-builder 0.9.16 → 0.10.0

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.
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AggregationQueryBuilder = void 0;
4
+ const lodash_1 = require("lodash");
4
5
  const where_query_builder_js_1 = require("./where-query-builder.js");
5
6
  /**
6
7
  * A query builder for performing aggregation queries.
@@ -11,9 +12,11 @@ const where_query_builder_js_1 = require("./where-query-builder.js");
11
12
  */
12
13
  class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBuilder {
13
14
  #node;
14
- constructor(node, executor) {
15
+ #metrics;
16
+ constructor(node, executor, metrics) {
15
17
  super(node, executor);
16
18
  this.#node = node;
19
+ this.#metrics = metrics;
17
20
  }
18
21
  /**
19
22
  * Groups the results by a specified field.
@@ -26,7 +29,7 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
26
29
  * const userCounts = await qb
27
30
  * .aggregateFrom('users')
28
31
  * .groupBy('role')
29
- * .withAggregates({ id: ['count'] })
32
+ * .metrics({ count: count('id') })
30
33
  * .execute();
31
34
  * ```
32
35
  */
@@ -38,33 +41,48 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
38
41
  return new AggregationQueryBuilder({
39
42
  ...this.#node,
40
43
  groupings: [...(this.#node.groupings || []), newGrouping],
41
- }, this._executor);
44
+ }, this._executor, this.#metrics);
42
45
  }
43
46
  /**
44
- * Specifies the aggregations to perform.
45
- * @param aggregates - An object where the keys are field names and the values are arrays of aggregation functions.
46
- * @returns A new `AggregationQueryBuilder` instance with the aggregations applied.
47
+ * Specifies the metrics to compute using helper functions.
48
+ * Returns a flat array of records with groupBy fields and metrics at the top level.
49
+ * @param metrics - An object where keys are metric names and values are aggregation helper functions.
50
+ * @returns A new `AggregationQueryBuilder` instance with the metrics applied.
47
51
  *
48
52
  * @example
49
53
  * ```typescript
50
54
  * const userStats = await qb
51
55
  * .aggregateFrom('users')
52
- * .withAggregates({
53
- * id: ['count'],
54
- * age: ['avg', 'sum'],
56
+ * .groupBy('role', 'asc')
57
+ * .groupBy('permission', 'desc')
58
+ * .metrics({
59
+ * idCount: count('id'),
60
+ * ageAvg: avg('age'),
61
+ * ageSum: sum('age')
55
62
  * })
56
63
  * .execute();
57
64
  * ```
58
65
  */
59
- withAggregates(aggregates) {
60
- const newAggregates = { ...this.#node.aggregations };
61
- for (const key in aggregates) {
62
- newAggregates[key] = aggregates[key].map(aggregate => aggregate);
66
+ metrics(metrics) {
67
+ // Convert metrics format to aggregations format for the backend
68
+ const newAggregates = {
69
+ ...this.#node.aggregations,
70
+ };
71
+ for (const metricName in metrics) {
72
+ const helper = metrics[metricName];
73
+ const field = helper.field;
74
+ const aggregation = helper.aggregation;
75
+ if (!newAggregates[field]) {
76
+ newAggregates[field] = [];
77
+ }
78
+ if (!newAggregates[field].includes(aggregation)) {
79
+ newAggregates[field].push(aggregation);
80
+ }
63
81
  }
64
82
  return new AggregationQueryBuilder({
65
83
  ...this.#node,
66
84
  aggregations: newAggregates,
67
- }, this._executor);
85
+ }, this._executor, metrics);
68
86
  }
69
87
  /**
70
88
  * Sets the maximum number of records to return.
@@ -75,7 +93,7 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
75
93
  return new AggregationQueryBuilder({
76
94
  ...this.#node,
77
95
  pagination: { ...this.#node.pagination, limit: count },
78
- }, this._executor);
96
+ }, this._executor, this.#metrics);
79
97
  }
80
98
  /**
81
99
  * Sets the number of records to skip.
@@ -86,7 +104,7 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
86
104
  return new AggregationQueryBuilder({
87
105
  ...this.#node,
88
106
  pagination: { ...this.#node.pagination, offset: count },
89
- }, this._executor);
107
+ }, this._executor, this.#metrics);
90
108
  }
91
109
  /**
92
110
  * Paginates the results.
@@ -111,25 +129,101 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
111
129
  return new AggregationQueryBuilder({
112
130
  ...this.#node,
113
131
  sorting: [...(this.#node.sorting || []), newSorting],
114
- }, this._executor);
132
+ }, this._executor, this.#metrics);
115
133
  }
116
134
  /**
117
135
  * Executes the aggregation query.
118
136
  * @returns A promise that resolves with an array of the aggregation results.
137
+ * If metrics were specified, returns a flat array. Otherwise, returns the nested structure.
119
138
  *
120
139
  * @example
121
140
  * ```typescript
122
141
  * const userCounts = await qb
123
142
  * .aggregateFrom('users')
124
143
  * .groupBy('role')
125
- * .withAggregates({ id: ['count'] })
144
+ * .metrics({ count: count('id') })
126
145
  * .execute();
127
146
  * ```
128
147
  */
129
148
  async execute() {
130
149
  const response = await this._executor.execute(this);
150
+ // If metrics are used, flatten the nested structure
151
+ if (this.#metrics) {
152
+ return this._flattenMetrics(response[0], this.#node.groupings
153
+ ?.filter((g) => 'field' in g && !('formula' in g))
154
+ .map(g => g.field) || [], this.#metrics);
155
+ }
131
156
  return response;
132
157
  }
158
+ /**
159
+ * Flattens the nested AggregateRecord structure into a flat array of metrics records.
160
+ */
161
+ _flattenMetrics(records, groupByFields, metrics) {
162
+ const result = [];
163
+ const flatten = (record, path) => {
164
+ if ('slug' in record && 'value' in record) {
165
+ const currentPath = {
166
+ ...path,
167
+ [record.slug]: record.value,
168
+ };
169
+ if ('children' in record &&
170
+ Array.isArray(record.children) &&
171
+ !(0, lodash_1.isEmpty)(record.children)) {
172
+ // Has children, recurse
173
+ for (const child of record.children) {
174
+ flatten(child, currentPath);
175
+ }
176
+ }
177
+ else {
178
+ // Leaf node, create flat record
179
+ const flatRecord = { ...currentPath };
180
+ // Add metrics
181
+ for (const metricName in metrics) {
182
+ const helper = metrics[metricName];
183
+ const field = helper.field;
184
+ const aggregation = helper.aggregation;
185
+ // Extract the metric value from aggregates
186
+ if (record.aggregates &&
187
+ field in record.aggregates &&
188
+ record.aggregates[field] &&
189
+ typeof record.aggregates[field] === 'object' &&
190
+ aggregation in record.aggregates[field]) {
191
+ flatRecord[metricName] = record.aggregates[field][aggregation];
192
+ }
193
+ else {
194
+ flatRecord[metricName] = null;
195
+ }
196
+ }
197
+ result.push(flatRecord);
198
+ }
199
+ }
200
+ else {
201
+ // No groupBy, just metrics
202
+ const flatRecord = {};
203
+ // Add metrics
204
+ for (const metricName in metrics) {
205
+ const helper = metrics[metricName];
206
+ const field = helper.field;
207
+ const aggregation = helper.aggregation;
208
+ if (record.aggregates &&
209
+ field in record.aggregates &&
210
+ record.aggregates[field] &&
211
+ typeof record.aggregates[field] === 'object' &&
212
+ aggregation in record.aggregates[field]) {
213
+ flatRecord[metricName] = record.aggregates[field][aggregation];
214
+ }
215
+ else {
216
+ flatRecord[metricName] = null;
217
+ }
218
+ }
219
+ result.push(flatRecord);
220
+ }
221
+ };
222
+ for (const record of records) {
223
+ flatten(record, {});
224
+ }
225
+ return result;
226
+ }
133
227
  /**
134
228
  * Subscribes to the results of the aggregation query.
135
229
  * @param callback - A callback function that will be called with the results of the aggregation query.
@@ -140,7 +234,7 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
140
234
  * const unsubscribe = qb
141
235
  * .aggregateFrom('users')
142
236
  * .groupBy('role')
143
- * .withAggregates({ id: ['count'] })
237
+ * .metrics({ count: count('id') })
144
238
  * .subscribe((userCounts) => {
145
239
  * console.log('User counts by role:', userCounts);
146
240
  * });
@@ -150,7 +244,17 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
150
244
  * ```
151
245
  */
152
246
  subscribe(callback) {
153
- return this._executor.subscribe([this], callback);
247
+ return this._executor.subscribe([this], (rawResult) => {
248
+ if (this.#metrics) {
249
+ const flattened = this._flattenMetrics(rawResult, this.#node.groupings
250
+ ?.filter((g) => 'field' in g && !('formula' in g))
251
+ .map(g => g.field) || [], this.#metrics);
252
+ callback(flattened);
253
+ }
254
+ else {
255
+ callback(rawResult);
256
+ }
257
+ });
154
258
  }
155
259
  compile() {
156
260
  const query = 'mutation ($metadata: JSON) { execute(metadata: $metadata) }';
@@ -1 +1 @@
1
- {"version":3,"file":"aggregation-query-builder.js","sourceRoot":"","sources":["../../src/aggregation-query-builder.ts"],"names":[],"mappings":";;;AAOA,qEAAkE;AAElE;;;;;;GAMG;AACH,MAAa,uBAQX,SAAQ,+CAAqC;IAC7C,KAAK,CAAgB;IAErB,YAAY,IAAmB,EAAE,QAAkB;QACjD,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,OAAO,CACL,KAAa,EACb,YAA4B,KAAK;QAOjC,MAAM,WAAW,GAAkC;YACjD,KAAK;YACL,SAAS;SACV,CAAC;QAEF,OAAO,IAAI,uBAAuB,CAChC;YACE,GAAG,IAAI,CAAC,KAAK;YACb,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,WAAW,CAAC;SAC1D,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAMZ,UAAa;QAEb,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,aAAa,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAE,CAAC,GAAG,CACvC,SAAS,CAAC,EAAE,CAAC,SAAmB,CACjC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,uBAAuB,CAChC;YACE,GAAG,IAAI,CAAC,KAAK;YACb,YAAY,EAAE,aAAa;SAC5B,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CACH,KAAa;QAEb,OAAO,IAAI,uBAAuB,CAChC;YACE,GAAG,IAAI,CAAC,KAAK;YACb,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;SACvD,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,MAAM,CACJ,KAAa;QAEb,OAAO,IAAI,uBAAuB,CAChC;YACE,GAAG,IAAI,CAAC,KAAK;YACb,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE;SACxD,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CACN,IAAY,EACZ,KAAa;QAEb,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,OAAO,CACL,KAA0B,EAC1B,YAA4B,KAAK;QAEjC,MAAM,UAAU,GAA+B;YAC7C,KAAK,EAAE,KAAe;YACtB,SAAS;SACV,CAAC;QAEF,OAAO,IAAI,uBAAuB,CAChC;YACE,GAAG,IAAI,CAAC,KAAK;YACb,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC;SACrD,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,OAAO;QAGX,MAAM,QAAQ,GACZ,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAE1B,IAAI,CAAC,CAAC;QACV,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CACP,QAES;QAET,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,OAAO;QACL,MAAM,KAAK,GAAG,6DAA6D,CAAC;QAC5E,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC3C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;IAC5C,CAAC;IAED,gBAAgB;QACd,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;YACrC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBAC7C,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC;IACJ,CAAC;CACF;AA1OD,0DA0OC"}
1
+ {"version":3,"file":"aggregation-query-builder.js","sourceRoot":"","sources":["../../src/aggregation-query-builder.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ export declare class BatchQueryBuilder<const TBuilders extends readonly AnyQuery
42
42
  * ```typescript
43
43
  * const unsubscribe = qb.batch([
44
44
  * qb.selectFrom('users').select(['id', 'name']),
45
- * qb.aggregateFrom('users').groupBy('role').withAggregates({ id: ['count'] }),
45
+ * qb.aggregateFrom('users').groupBy('role').metrics({ count: count('id') }),
46
46
  * ]).subscribe(([users, userAggregates]) => {
47
47
  * console.log('Users:', users);
48
48
  * console.log('User Aggregates:', userAggregates);
@@ -39,7 +39,7 @@ class BatchQueryBuilder {
39
39
  * ```typescript
40
40
  * const unsubscribe = qb.batch([
41
41
  * qb.selectFrom('users').select(['id', 'name']),
42
- * qb.aggregateFrom('users').groupBy('role').withAggregates({ id: ['count'] }),
42
+ * qb.aggregateFrom('users').groupBy('role').metrics({ count: count('id') }),
43
43
  * ]).subscribe(([users, userAggregates]) => {
44
44
  * console.log('Users:', users);
45
45
  * console.log('User Aggregates:', userAggregates);
@@ -1 +1,3 @@
1
+ export { avg, count, max, median, min, range, stdDev, sum, unique, } from './aggregation-helpers.js';
2
+ export type { AggregationHelper } from './aggregation-helpers.js';
1
3
  export { createQueryBuilder } from './query-builder.js';
package/dist/cjs/index.js CHANGED
@@ -1,6 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createQueryBuilder = void 0;
3
+ exports.createQueryBuilder = exports.unique = exports.sum = exports.stdDev = exports.range = exports.min = exports.median = exports.max = exports.count = exports.avg = void 0;
4
+ var aggregation_helpers_js_1 = require("./aggregation-helpers.js");
5
+ Object.defineProperty(exports, "avg", { enumerable: true, get: function () { return aggregation_helpers_js_1.avg; } });
6
+ Object.defineProperty(exports, "count", { enumerable: true, get: function () { return aggregation_helpers_js_1.count; } });
7
+ Object.defineProperty(exports, "max", { enumerable: true, get: function () { return aggregation_helpers_js_1.max; } });
8
+ Object.defineProperty(exports, "median", { enumerable: true, get: function () { return aggregation_helpers_js_1.median; } });
9
+ Object.defineProperty(exports, "min", { enumerable: true, get: function () { return aggregation_helpers_js_1.min; } });
10
+ Object.defineProperty(exports, "range", { enumerable: true, get: function () { return aggregation_helpers_js_1.range; } });
11
+ Object.defineProperty(exports, "stdDev", { enumerable: true, get: function () { return aggregation_helpers_js_1.stdDev; } });
12
+ Object.defineProperty(exports, "sum", { enumerable: true, get: function () { return aggregation_helpers_js_1.sum; } });
13
+ Object.defineProperty(exports, "unique", { enumerable: true, get: function () { return aggregation_helpers_js_1.unique; } });
4
14
  var query_builder_js_1 = require("./query-builder.js");
5
15
  Object.defineProperty(exports, "createQueryBuilder", { enumerable: true, get: function () { return query_builder_js_1.createQueryBuilder; } });
6
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAAwD;AAA/C,sHAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,mEAUkC;AAThC,6GAAA,GAAG,OAAA;AACH,+GAAA,KAAK,OAAA;AACL,6GAAA,GAAG,OAAA;AACH,gHAAA,MAAM,OAAA;AACN,6GAAA,GAAG,OAAA;AACH,+GAAA,KAAK,OAAA;AACL,gHAAA,MAAM,OAAA;AACN,6GAAA,GAAG,OAAA;AACH,gHAAA,MAAM,OAAA;AAGR,uDAAwD;AAA/C,sHAAA,kBAAkB,OAAA"}
@@ -17,7 +17,7 @@ export type AggregateRecord<DB extends AnyDB, TName extends keyof DB, TGroupBy e
17
17
  count: number;
18
18
  aggregates: Aggregates<DB, TName, TAggregations>;
19
19
  } : {
20
- field: Head<TGroupBy>;
20
+ slug: Head<TGroupBy>;
21
21
  value: InferDataType<DB[TName][Head<TGroupBy>]>;
22
22
  count: number;
23
23
  aggregates: Aggregates<DB, TName, TAggregations>;
@@ -25,4 +25,19 @@ export type AggregateRecord<DB extends AnyDB, TName extends keyof DB, TGroupBy e
25
25
  children: AggregateRecord<DB, TName, Tail<TGroupBy>, TAggregations>[];
26
26
  });
27
27
  export type AggregateNode = Omit<MetadataWithTableName<AggregationQueryMetaData>, 'fields'>;
28
+ /**
29
+ * Flat metrics response type.
30
+ * This represents a single row in the flattened aggregation results.
31
+ */
32
+ export type MetricsRecord<DB extends AnyDB, TName extends keyof DB, TGroupBy extends readonly (keyof DB[TName] & string)[], TMetrics extends Record<string, {
33
+ field: string;
34
+ aggregation: string;
35
+ }>> = {
36
+ [K in TGroupBy[number]]: InferDataType<DB[TName][K]>;
37
+ } & {
38
+ [K in keyof TMetrics]: TMetrics[K] extends {
39
+ field: infer F;
40
+ aggregation: infer A;
41
+ } ? F extends keyof DB[TName] & string ? A extends keyof DB[TName][F]['aggregations'] ? DB[TName][F]['aggregations'][A] : A extends 'count' ? number : number : number : number;
42
+ };
28
43
  export {};
@@ -1,5 +1,5 @@
1
1
  import { Attachment, } from '@taylordb/shared';
2
- import { createQueryBuilder } from '../index.js';
2
+ import { createQueryBuilder, sum } from '../index.js';
3
3
  import { SocketConnection } from '../socket-connection.js';
4
4
  export const CustomersStatusOptions = ['Pending', 'Active'];
5
5
  jest.mock('socket.io-client', () => {
@@ -223,8 +223,8 @@ describe('QueryBuilder', () => {
223
223
  await qb
224
224
  .aggregateFrom('customers')
225
225
  .groupBy('firstName', 'asc')
226
- .withAggregates({
227
- id: ['sum'],
226
+ .metrics({
227
+ idSum: sum('id'),
228
228
  })
229
229
  .execute();
230
230
  expect(mockRawRequest).toHaveBeenCalledTimes(1);
@@ -238,6 +238,96 @@ describe('QueryBuilder', () => {
238
238
  },
239
239
  });
240
240
  });
241
+ it('should compile a metrics query and flatten results', async () => {
242
+ // Mock response with nested structure (rawRequest extracts execute key, so return array directly)
243
+ const mockNestedResponse = [
244
+ [
245
+ {
246
+ slug: 'firstName',
247
+ value: 'John',
248
+ count: 2,
249
+ aggregates: {
250
+ id: { sum: 100 },
251
+ },
252
+ children: [
253
+ {
254
+ slug: 'lastName',
255
+ value: 'Doe',
256
+ count: 1,
257
+ aggregates: {
258
+ id: { sum: 50 },
259
+ },
260
+ },
261
+ ],
262
+ },
263
+ ],
264
+ ];
265
+ // Mock to return the array directly (as rawRequest would after extracting from { execute: [...] })
266
+ mockRawRequest.mockResolvedValueOnce(mockNestedResponse);
267
+ const result = await qb
268
+ .aggregateFrom('customers')
269
+ .groupBy('firstName', 'asc')
270
+ .groupBy('lastName', 'desc')
271
+ .metrics({
272
+ idSum: sum('id'),
273
+ })
274
+ .execute();
275
+ expect(mockRawRequest).toHaveBeenCalledTimes(1);
276
+ const variables = mockRawRequest.mock.calls[0][1];
277
+ expect(variables.metadata[0]).toMatchObject({
278
+ type: 'aggregation',
279
+ tableName: 'customers',
280
+ groupings: [
281
+ { field: 'firstName', direction: 'asc' },
282
+ { field: 'lastName', direction: 'desc' },
283
+ ],
284
+ aggregations: {
285
+ id: ['sum'],
286
+ },
287
+ });
288
+ // Verify flattened result
289
+ expect(result).toEqual([
290
+ {
291
+ firstName: 'John',
292
+ lastName: 'Doe',
293
+ idSum: 50,
294
+ },
295
+ ]);
296
+ });
297
+ it('should flatten metrics results without groupBy', async () => {
298
+ // Mock response with no groupBy (flat structure)
299
+ // rawRequest extracts execute key, so return array directly
300
+ const mockFlatResponse = [
301
+ {
302
+ count: 10,
303
+ aggregates: {
304
+ id: { sum: 500 },
305
+ },
306
+ },
307
+ ];
308
+ mockRawRequest.mockResolvedValueOnce(mockFlatResponse);
309
+ const result = await qb
310
+ .aggregateFrom('customers')
311
+ .metrics({
312
+ idSum: sum('id'),
313
+ })
314
+ .execute();
315
+ expect(mockRawRequest).toHaveBeenCalledTimes(1);
316
+ const variables = mockRawRequest.mock.calls[0][1];
317
+ expect(variables.metadata[0]).toMatchObject({
318
+ type: 'aggregation',
319
+ tableName: 'customers',
320
+ aggregations: {
321
+ id: ['sum'],
322
+ },
323
+ });
324
+ // Verify flattened result (no groupBy fields)
325
+ expect(result).toEqual([
326
+ {
327
+ idSum: 500,
328
+ },
329
+ ]);
330
+ });
241
331
  it('should compile a cross-table query and execute', async () => {
242
332
  await qb
243
333
  .selectFrom('customers')
@@ -1 +1 @@
1
- {"version":3,"file":"query-builder.spec.js","sourceRoot":"","sources":["../../../src/__tests__/query-builder.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-builder.spec.js","sourceRoot":"","sources":["../../../src/__tests__/query-builder.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Helper functions for creating aggregation metrics.
3
+ * These functions return objects that describe the aggregation to perform.
4
+ */
5
+ export type AggregationHelper<TField extends string = string, TAggregation extends string = string> = {
6
+ field: TField;
7
+ aggregation: TAggregation;
8
+ };
9
+ /**
10
+ * Creates a count aggregation for the specified field.
11
+ * @param field - The field name to count.
12
+ * @returns An aggregation helper object.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * count('id')
17
+ * ```
18
+ */
19
+ export declare function count<TField extends string>(field: TField): AggregationHelper<TField, 'count'>;
20
+ /**
21
+ * Creates an average aggregation for the specified field.
22
+ * @param field - The field name to average.
23
+ * @returns An aggregation helper object.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * avg('age')
28
+ * ```
29
+ */
30
+ export declare function avg<TField extends string>(field: TField): AggregationHelper<TField, 'average'>;
31
+ /**
32
+ * Creates a sum aggregation for the specified field.
33
+ * @param field - The field name to sum.
34
+ * @returns An aggregation helper object.
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * sum('age')
39
+ * ```
40
+ */
41
+ export declare function sum<TField extends string>(field: TField): AggregationHelper<TField, 'sum'>;
42
+ /**
43
+ * Creates a median aggregation for the specified field.
44
+ * @param field - The field name to calculate median for.
45
+ * @returns An aggregation helper object.
46
+ */
47
+ export declare function median<TField extends string>(field: TField): AggregationHelper<TField, 'median'>;
48
+ /**
49
+ * Creates a min aggregation for the specified field.
50
+ * @param field - The field name to find minimum for.
51
+ * @returns An aggregation helper object.
52
+ */
53
+ export declare function min<TField extends string>(field: TField): AggregationHelper<TField, 'min'>;
54
+ /**
55
+ * Creates a max aggregation for the specified field.
56
+ * @param field - The field name to find maximum for.
57
+ * @returns An aggregation helper object.
58
+ */
59
+ export declare function max<TField extends string>(field: TField): AggregationHelper<TField, 'max'>;
60
+ /**
61
+ * Creates a range aggregation for the specified field.
62
+ * @param field - The field name to calculate range for.
63
+ * @returns An aggregation helper object.
64
+ */
65
+ export declare function range<TField extends string>(field: TField): AggregationHelper<TField, 'range'>;
66
+ /**
67
+ * Creates a standard deviation aggregation for the specified field.
68
+ * @param field - The field name to calculate standard deviation for.
69
+ * @returns An aggregation helper object.
70
+ */
71
+ export declare function stdDev<TField extends string>(field: TField): AggregationHelper<TField, 'standardDeviation'>;
72
+ /**
73
+ * Creates a unique count aggregation for the specified field.
74
+ * @param field - The field name to count unique values for.
75
+ * @returns An aggregation helper object.
76
+ */
77
+ export declare function unique<TField extends string>(field: TField): AggregationHelper<TField, 'unique'>;