@taylordb/query-builder 0.9.16 → 0.10.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.
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.AggregationQueryBuilder = void 0;
7
+ const isEmpty_js_1 = __importDefault(require("lodash/isEmpty.js"));
4
8
  const where_query_builder_js_1 = require("./where-query-builder.js");
5
9
  /**
6
10
  * A query builder for performing aggregation queries.
@@ -11,9 +15,11 @@ const where_query_builder_js_1 = require("./where-query-builder.js");
11
15
  */
12
16
  class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBuilder {
13
17
  #node;
14
- constructor(node, executor) {
18
+ #metrics;
19
+ constructor(node, executor, metrics) {
15
20
  super(node, executor);
16
21
  this.#node = node;
22
+ this.#metrics = metrics;
17
23
  }
18
24
  /**
19
25
  * Groups the results by a specified field.
@@ -26,7 +32,7 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
26
32
  * const userCounts = await qb
27
33
  * .aggregateFrom('users')
28
34
  * .groupBy('role')
29
- * .withAggregates({ id: ['count'] })
35
+ * .metrics({ count: count('id') })
30
36
  * .execute();
31
37
  * ```
32
38
  */
@@ -38,33 +44,48 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
38
44
  return new AggregationQueryBuilder({
39
45
  ...this.#node,
40
46
  groupings: [...(this.#node.groupings || []), newGrouping],
41
- }, this._executor);
47
+ }, this._executor, this.#metrics);
42
48
  }
43
49
  /**
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.
50
+ * Specifies the metrics to compute using helper functions.
51
+ * Returns a flat array of records with groupBy fields and metrics at the top level.
52
+ * @param metrics - An object where keys are metric names and values are aggregation helper functions.
53
+ * @returns A new `AggregationQueryBuilder` instance with the metrics applied.
47
54
  *
48
55
  * @example
49
56
  * ```typescript
50
57
  * const userStats = await qb
51
58
  * .aggregateFrom('users')
52
- * .withAggregates({
53
- * id: ['count'],
54
- * age: ['avg', 'sum'],
59
+ * .groupBy('role', 'asc')
60
+ * .groupBy('permission', 'desc')
61
+ * .metrics({
62
+ * idCount: count('id'),
63
+ * ageAvg: avg('age'),
64
+ * ageSum: sum('age')
55
65
  * })
56
66
  * .execute();
57
67
  * ```
58
68
  */
59
- withAggregates(aggregates) {
60
- const newAggregates = { ...this.#node.aggregations };
61
- for (const key in aggregates) {
62
- newAggregates[key] = aggregates[key].map(aggregate => aggregate);
69
+ metrics(metrics) {
70
+ // Convert metrics format to aggregations format for the backend
71
+ const newAggregates = {
72
+ ...this.#node.aggregations,
73
+ };
74
+ for (const metricName in metrics) {
75
+ const helper = metrics[metricName];
76
+ const field = helper.field;
77
+ const aggregation = helper.aggregation;
78
+ if (!newAggregates[field]) {
79
+ newAggregates[field] = [];
80
+ }
81
+ if (!newAggregates[field].includes(aggregation)) {
82
+ newAggregates[field].push(aggregation);
83
+ }
63
84
  }
64
85
  return new AggregationQueryBuilder({
65
86
  ...this.#node,
66
87
  aggregations: newAggregates,
67
- }, this._executor);
88
+ }, this._executor, metrics);
68
89
  }
69
90
  /**
70
91
  * Sets the maximum number of records to return.
@@ -75,7 +96,7 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
75
96
  return new AggregationQueryBuilder({
76
97
  ...this.#node,
77
98
  pagination: { ...this.#node.pagination, limit: count },
78
- }, this._executor);
99
+ }, this._executor, this.#metrics);
79
100
  }
80
101
  /**
81
102
  * Sets the number of records to skip.
@@ -86,7 +107,7 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
86
107
  return new AggregationQueryBuilder({
87
108
  ...this.#node,
88
109
  pagination: { ...this.#node.pagination, offset: count },
89
- }, this._executor);
110
+ }, this._executor, this.#metrics);
90
111
  }
91
112
  /**
92
113
  * Paginates the results.
@@ -111,25 +132,101 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
111
132
  return new AggregationQueryBuilder({
112
133
  ...this.#node,
113
134
  sorting: [...(this.#node.sorting || []), newSorting],
114
- }, this._executor);
135
+ }, this._executor, this.#metrics);
115
136
  }
116
137
  /**
117
138
  * Executes the aggregation query.
118
139
  * @returns A promise that resolves with an array of the aggregation results.
140
+ * If metrics were specified, returns a flat array. Otherwise, returns the nested structure.
119
141
  *
120
142
  * @example
121
143
  * ```typescript
122
144
  * const userCounts = await qb
123
145
  * .aggregateFrom('users')
124
146
  * .groupBy('role')
125
- * .withAggregates({ id: ['count'] })
147
+ * .metrics({ count: count('id') })
126
148
  * .execute();
127
149
  * ```
128
150
  */
129
151
  async execute() {
130
152
  const response = await this._executor.execute(this);
153
+ // If metrics are used, flatten the nested structure
154
+ if (this.#metrics) {
155
+ return this._flattenMetrics(response[0], this.#node.groupings
156
+ ?.filter((g) => 'field' in g && !('formula' in g))
157
+ .map(g => g.field) || [], this.#metrics);
158
+ }
131
159
  return response;
132
160
  }
161
+ /**
162
+ * Flattens the nested AggregateRecord structure into a flat array of metrics records.
163
+ */
164
+ _flattenMetrics(records, groupByFields, metrics) {
165
+ const result = [];
166
+ const flatten = (record, path) => {
167
+ if ('slug' in record && 'value' in record) {
168
+ const currentPath = {
169
+ ...path,
170
+ [record.slug]: record.value,
171
+ };
172
+ if ('children' in record &&
173
+ Array.isArray(record.children) &&
174
+ !(0, isEmpty_js_1.default)(record.children)) {
175
+ // Has children, recurse
176
+ for (const child of record.children) {
177
+ flatten(child, currentPath);
178
+ }
179
+ }
180
+ else {
181
+ // Leaf node, create flat record
182
+ const flatRecord = { ...currentPath };
183
+ // Add metrics
184
+ for (const metricName in metrics) {
185
+ const helper = metrics[metricName];
186
+ const field = helper.field;
187
+ const aggregation = helper.aggregation;
188
+ // Extract the metric value from aggregates
189
+ if (record.aggregates &&
190
+ field in record.aggregates &&
191
+ record.aggregates[field] &&
192
+ typeof record.aggregates[field] === 'object' &&
193
+ aggregation in record.aggregates[field]) {
194
+ flatRecord[metricName] = record.aggregates[field][aggregation];
195
+ }
196
+ else {
197
+ flatRecord[metricName] = null;
198
+ }
199
+ }
200
+ result.push(flatRecord);
201
+ }
202
+ }
203
+ else {
204
+ // No groupBy, just metrics
205
+ const flatRecord = {};
206
+ // Add metrics
207
+ for (const metricName in metrics) {
208
+ const helper = metrics[metricName];
209
+ const field = helper.field;
210
+ const aggregation = helper.aggregation;
211
+ if (record.aggregates &&
212
+ field in record.aggregates &&
213
+ record.aggregates[field] &&
214
+ typeof record.aggregates[field] === 'object' &&
215
+ aggregation in record.aggregates[field]) {
216
+ flatRecord[metricName] = record.aggregates[field][aggregation];
217
+ }
218
+ else {
219
+ flatRecord[metricName] = null;
220
+ }
221
+ }
222
+ result.push(flatRecord);
223
+ }
224
+ };
225
+ for (const record of records) {
226
+ flatten(record, {});
227
+ }
228
+ return result;
229
+ }
133
230
  /**
134
231
  * Subscribes to the results of the aggregation query.
135
232
  * @param callback - A callback function that will be called with the results of the aggregation query.
@@ -140,7 +237,7 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
140
237
  * const unsubscribe = qb
141
238
  * .aggregateFrom('users')
142
239
  * .groupBy('role')
143
- * .withAggregates({ id: ['count'] })
240
+ * .metrics({ count: count('id') })
144
241
  * .subscribe((userCounts) => {
145
242
  * console.log('User counts by role:', userCounts);
146
243
  * });
@@ -150,7 +247,17 @@ class AggregationQueryBuilder extends where_query_builder_js_1.FilterableQueryBu
150
247
  * ```
151
248
  */
152
249
  subscribe(callback) {
153
- return this._executor.subscribe([this], callback);
250
+ return this._executor.subscribe([this], (rawResult) => {
251
+ if (this.#metrics) {
252
+ const flattened = this._flattenMetrics(rawResult, this.#node.groupings
253
+ ?.filter((g) => 'field' in g && !('formula' in g))
254
+ .map(g => g.field) || [], this.#metrics);
255
+ callback(flattened);
256
+ }
257
+ else {
258
+ callback(rawResult);
259
+ }
260
+ });
154
261
  }
155
262
  compile() {
156
263
  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":"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"}
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', () => {
@@ -219,12 +219,38 @@ describe('QueryBuilder', () => {
219
219
  tableName: 'customers',
220
220
  });
221
221
  });
222
- it('should compile an aggregate query and execute', async () => {
223
- await qb
222
+ it('should compile a metrics query and flatten results', async () => {
223
+ // Mock response with nested structure (rawRequest extracts execute key, so return array directly)
224
+ const mockNestedResponse = [
225
+ [
226
+ {
227
+ slug: 'firstName',
228
+ value: 'John',
229
+ count: 2,
230
+ aggregates: {
231
+ id: { sum: 100 },
232
+ },
233
+ children: [
234
+ {
235
+ slug: 'lastName',
236
+ value: 'Doe',
237
+ count: 1,
238
+ aggregates: {
239
+ id: { sum: 50 },
240
+ },
241
+ },
242
+ ],
243
+ },
244
+ ],
245
+ ];
246
+ // Mock to return the array directly (as rawRequest would after extracting from { execute: [...] })
247
+ mockRawRequest.mockResolvedValueOnce(mockNestedResponse);
248
+ const result = await qb
224
249
  .aggregateFrom('customers')
225
250
  .groupBy('firstName', 'asc')
226
- .withAggregates({
227
- id: ['sum'],
251
+ .groupBy('lastName', 'desc')
252
+ .metrics({
253
+ idSum: sum('id'),
228
254
  })
229
255
  .execute();
230
256
  expect(mockRawRequest).toHaveBeenCalledTimes(1);
@@ -232,11 +258,58 @@ describe('QueryBuilder', () => {
232
258
  expect(variables.metadata[0]).toMatchObject({
233
259
  type: 'aggregation',
234
260
  tableName: 'customers',
235
- groupings: [{ field: 'firstName', direction: 'asc' }],
261
+ groupings: [
262
+ { field: 'firstName', direction: 'asc' },
263
+ { field: 'lastName', direction: 'desc' },
264
+ ],
236
265
  aggregations: {
237
266
  id: ['sum'],
238
267
  },
239
268
  });
269
+ // Verify flattened result
270
+ expect(result).toEqual([
271
+ {
272
+ firstName: 'John',
273
+ lastName: 'Doe',
274
+ idSum: 50,
275
+ },
276
+ ]);
277
+ });
278
+ it('should flatten metrics results without groupBy', async () => {
279
+ // Mock response with no groupBy (flat structure)
280
+ // rawRequest extracts execute key, so return array directly
281
+ const mockFlatResponse = [
282
+ [
283
+ {
284
+ count: 10,
285
+ aggregates: {
286
+ id: { sum: 500 },
287
+ },
288
+ },
289
+ ],
290
+ ];
291
+ mockRawRequest.mockResolvedValueOnce(mockFlatResponse);
292
+ const result = await qb
293
+ .aggregateFrom('customers')
294
+ .metrics({
295
+ idSum: sum('id'),
296
+ })
297
+ .execute();
298
+ expect(mockRawRequest).toHaveBeenCalledTimes(1);
299
+ const variables = mockRawRequest.mock.calls[0][1];
300
+ expect(variables.metadata[0]).toMatchObject({
301
+ type: 'aggregation',
302
+ tableName: 'customers',
303
+ aggregations: {
304
+ id: ['sum'],
305
+ },
306
+ });
307
+ // Verify flattened result (no groupBy fields)
308
+ expect(result).toEqual([
309
+ {
310
+ idSum: 500,
311
+ },
312
+ ]);
240
313
  });
241
314
  it('should compile a cross-table query and execute', async () => {
242
315
  await qb
@@ -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'>;