querier-ts 2.1.1 → 2.3.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.
Files changed (63) hide show
  1. package/README.md +27 -4
  2. package/lib/core/validation/query-row-validator.js.map +1 -1
  3. package/lib/query.d.ts +54 -29
  4. package/lib/query.d.ts.map +1 -1
  5. package/lib/query.js +41 -46
  6. package/lib/query.js.map +1 -1
  7. package/lib/utils/functions/type-guards/is-function.d.ts +2 -1
  8. package/lib/utils/functions/type-guards/is-function.d.ts.map +1 -1
  9. package/lib/utils/functions/type-guards/is-function.js +2 -0
  10. package/lib/utils/functions/type-guards/is-function.js.map +1 -1
  11. package/package.json +2 -2
  12. package/lib/__tests__/query.spec.d.ts +0 -2
  13. package/lib/__tests__/query.spec.d.ts.map +0 -1
  14. package/lib/__tests__/query.spec.js +0 -271
  15. package/lib/__tests__/query.spec.js.map +0 -1
  16. package/lib/core/errors/__tests__/invalid-argument-error.spec.d.ts +0 -2
  17. package/lib/core/errors/__tests__/invalid-argument-error.spec.d.ts.map +0 -1
  18. package/lib/core/errors/__tests__/invalid-argument-error.spec.js +0 -16
  19. package/lib/core/errors/__tests__/invalid-argument-error.spec.js.map +0 -1
  20. package/lib/core/validation/__tests__/query-row-validator.spec.d.ts +0 -2
  21. package/lib/core/validation/__tests__/query-row-validator.spec.d.ts.map +0 -1
  22. package/lib/core/validation/__tests__/query-row-validator.spec.js +0 -156
  23. package/lib/core/validation/__tests__/query-row-validator.spec.js.map +0 -1
  24. package/lib/core/validation/decorators/__tests__/number-validation.spec.d.ts +0 -2
  25. package/lib/core/validation/decorators/__tests__/number-validation.spec.d.ts.map +0 -1
  26. package/lib/core/validation/decorators/__tests__/number-validation.spec.js +0 -130
  27. package/lib/core/validation/decorators/__tests__/number-validation.spec.js.map +0 -1
  28. package/lib/utils/functions/generic/__tests__/compare-arrays.spec.d.ts +0 -2
  29. package/lib/utils/functions/generic/__tests__/compare-arrays.spec.d.ts.map +0 -1
  30. package/lib/utils/functions/generic/__tests__/compare-arrays.spec.js +0 -20
  31. package/lib/utils/functions/generic/__tests__/compare-arrays.spec.js.map +0 -1
  32. package/lib/utils/functions/generic/__tests__/deep-equal.spec.d.ts +0 -2
  33. package/lib/utils/functions/generic/__tests__/deep-equal.spec.d.ts.map +0 -1
  34. package/lib/utils/functions/generic/__tests__/deep-equal.spec.js +0 -81
  35. package/lib/utils/functions/generic/__tests__/deep-equal.spec.js.map +0 -1
  36. package/lib/utils/functions/generic/__tests__/get-entries.spec.d.ts +0 -2
  37. package/lib/utils/functions/generic/__tests__/get-entries.spec.d.ts.map +0 -1
  38. package/lib/utils/functions/generic/__tests__/get-entries.spec.js +0 -54
  39. package/lib/utils/functions/generic/__tests__/get-entries.spec.js.map +0 -1
  40. package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.d.ts +0 -2
  41. package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.d.ts.map +0 -1
  42. package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.js +0 -82
  43. package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.js.map +0 -1
  44. package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.d.ts +0 -2
  45. package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.d.ts.map +0 -1
  46. package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.js +0 -68
  47. package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.js.map +0 -1
  48. package/lib/utils/functions/sort/__tests__/sort-by-property.spec.d.ts +0 -2
  49. package/lib/utils/functions/sort/__tests__/sort-by-property.spec.d.ts.map +0 -1
  50. package/lib/utils/functions/sort/__tests__/sort-by-property.spec.js +0 -75
  51. package/lib/utils/functions/sort/__tests__/sort-by-property.spec.js.map +0 -1
  52. package/lib/utils/functions/type-guards/__tests__/is-function.spec.d.ts +0 -2
  53. package/lib/utils/functions/type-guards/__tests__/is-function.spec.d.ts.map +0 -1
  54. package/lib/utils/functions/type-guards/__tests__/is-function.spec.js +0 -37
  55. package/lib/utils/functions/type-guards/__tests__/is-function.spec.js.map +0 -1
  56. package/lib/utils/functions/type-guards/__tests__/is-number.spec.d.ts +0 -2
  57. package/lib/utils/functions/type-guards/__tests__/is-number.spec.d.ts.map +0 -1
  58. package/lib/utils/functions/type-guards/__tests__/is-number.spec.js +0 -34
  59. package/lib/utils/functions/type-guards/__tests__/is-number.spec.js.map +0 -1
  60. package/lib/utils/functions/type-guards/__tests__/is-object.spec.d.ts +0 -2
  61. package/lib/utils/functions/type-guards/__tests__/is-object.spec.d.ts.map +0 -1
  62. package/lib/utils/functions/type-guards/__tests__/is-object.spec.js +0 -37
  63. package/lib/utils/functions/type-guards/__tests__/is-object.spec.js.map +0 -1
package/README.md CHANGED
@@ -280,15 +280,38 @@ Example output:
280
280
 
281
281
  ---
282
282
 
283
- #### `groupBy(key)`
283
+ #### `groupBy(key | callback, mapFn?)`
284
284
 
285
- Groups the items by the specified property and returns the result as a `Map`.
285
+ Groups the items by a specified property or a custom callback and returns the result as a `Map`.
286
286
 
287
287
  - `key`: The property name to group by.
288
+ - `callback`: A function that returns the value to group each item by.
289
+ - `mapFn` *(optional)*: A function to transform each item before adding it to the grouped result.
288
290
 
289
- The returned `Map` uses the property values as keys and arrays of matching items as values.
291
+ The returned `Map` uses the resolved grouping values as keys and arrays of matching (or mapped) items as values.
290
292
 
291
293
  ```ts
292
- const usersByActiveStatus = Query.from(users).groupBy('active');
294
+ // Grouping by property
295
+ const usersByActiveStatus = Query.from(users).groupBy('isActive');
293
296
  // Map<boolean, User[]>
297
+
298
+ // Grouping by property with mapping
299
+ const idsByActiveStatus = Query.from(users).groupBy(
300
+ 'isActive',
301
+ (user) => user.id
302
+ );
303
+ // Map<boolean, number[]>
304
+
305
+ // Grouping by callback
306
+ const usersByActiveStatus = Query.from(users).groupBy(
307
+ (user) => user.isActive
308
+ );
309
+ // Map<boolean, User[]>
310
+
311
+ // Grouping by callback with mapping
312
+ const idsByNotificationPreference = Query.from(users).groupBy(
313
+ (user) => user.permissions.sendNotifications,
314
+ (user) => user.id
315
+ );
316
+ // Map<boolean, number[]>
294
317
  ```
@@ -1 +1 @@
1
- {"version":3,"file":"query-row-validator.js","sourceRoot":"","sources":["../../../src/core/validation/query-row-validator.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAQzE;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAK5B;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CACb,GAAM,EACN,SAA0C,EAC1C,OAA2B;QAE3B,KAAK,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAC5C,GAAG,EACH,MAAM,EACN,eAAe,EACf,OAAO,IAAI,uBAAA,IAAI,6CAAgB,CAChC,CAAC;YAEF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,uBAAuB,CAIpC,GAAM,EACN,MAAe,EACf,SAAsC,EACtC,OAA0B;QAE1B,IACE,OAAO,CAAC,gBAAgB;YACxB,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,CAAC,EAC/C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QAE9B,IAAI,UAAU,CAA0C,SAAS,CAAC,EAAE,CAAC;YACnE,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC7B,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;gBACrC,CAAC,CAAC,KAAK,CAAC;QACZ,CAAC;QAED,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3E,CAAC;QAED,OAAO,SAAS,KAAK,SAAS,CAAC;IACjC,CAAC;;;AAvEM,6CAAqC;QAC1C,gBAAgB,EAAE,KAAK;KACxB,EAFqB,CAEpB"}
1
+ {"version":3,"file":"query-row-validator.js","sourceRoot":"","sources":["../../../src/core/validation/query-row-validator.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAQzE;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAK5B;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CACb,GAAM,EACN,SAA0C,EAC1C,OAA2B;QAE3B,KAAK,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAC5C,GAAG,EACH,MAAM,EACN,eAAe,EACf,OAAO,IAAI,uBAAA,IAAI,6CAAgB,CAChC,CAAC;YAEF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,uBAAuB,CAIpC,GAAM,EACN,MAAe,EACf,SAAsC,EACtC,OAA0B;QAE1B,IACE,OAAO,CAAC,gBAAgB;YACxB,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,CAAC,EAC/C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QAE9B,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAQ,SAAqD,CAAC,SAAS,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;gBAC7B,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;gBACrC,CAAC,CAAC,KAAK,CAAC;QACZ,CAAC;QAED,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3E,CAAC;QAED,OAAO,SAAS,KAAK,SAAS,CAAC;IACjC,CAAC;;;AAvEM,6CAAqC;QAC1C,gBAAgB,EAAE,KAAK;KACxB,EAFqB,CAEpB"}
package/lib/query.d.ts CHANGED
@@ -131,26 +131,66 @@ export declare class Query<T extends object> {
131
131
  * @returns Current query.
132
132
  */
133
133
  orderBy(...columns: OrderingColumn<T>[]): this;
134
+ /**
135
+ * Defines the number of rows to skip.
136
+ *
137
+ * @param numberOfRows Numbers of rows to skip. Only non negative integer numbers
138
+ * are allowed.
139
+ *
140
+ * @returns Current query.
141
+ *
142
+ * @throws {InvalidArgumentError} If the given number is less than 0.
143
+ */
144
+ skip(numberOfRows: number): this;
145
+ /**
146
+ * Defines a limit for the number of results.
147
+ *
148
+ * @param limit Limit of results. Only non negative integer numbers are allowed.
149
+ *
150
+ * @returns Current query.
151
+ *
152
+ * @throws {InvalidArgumentError} If the given limit is less than 0.
153
+ */
154
+ limit(limit: number): this;
134
155
  /**
135
156
  * Groups the results by a specific key.
136
157
  *
137
- * @param key The key to group the results by.
158
+ * @param key Key to group by.
138
159
  *
139
- * @returns A map with the grouped results.
160
+ * @returns Grouped results.
140
161
  */
141
162
  groupBy<K extends keyof T>(key: K): Map<T[K], T[]>;
142
163
  /**
143
- * Returns the current number of rows.
164
+ * Groups the results by a specific key.
144
165
  *
145
- * @return Filtered rows count.
166
+ * @param key Key to group by.
167
+ * @param mapFn Callback to map each row to a new value.
168
+ *
169
+ * @returns Grouped results.
146
170
  */
147
- count(): number;
171
+ groupBy<K extends keyof T, TReturn>(key: K, mapFn: (row: T) => TReturn): Map<T[K], TReturn[]>;
148
172
  /**
149
- * Checks if there is at least one row compatible with the query.
173
+ * Groups the results by a callback.
150
174
  *
151
- * @returns Whether any row exists after filtering.
175
+ * @param groupFn Callback to group by.
176
+ *
177
+ * @returns Grouped results.
152
178
  */
153
- exists(): boolean;
179
+ groupBy<TGrouper>(groupFn: (row: T) => TGrouper): Map<TGrouper, T[]>;
180
+ /**
181
+ * Groups the results by a callback.
182
+ *
183
+ * @param groupFn Callback to group by.
184
+ *
185
+ * @returns Grouped results.
186
+ */
187
+ groupBy<TGrouper, TReturn>(groupFn: (row: T) => TGrouper, mapFn: (row: T) => TReturn): Map<TGrouper, TReturn[]>;
188
+ /**
189
+ * Returns all results.
190
+ *
191
+ * @returns All filtered rows.
192
+ */
193
+ all(): T[];
154
194
  /**
155
195
  * Returns the first result.
156
196
  *
@@ -163,12 +203,6 @@ export declare class Query<T extends object> {
163
203
  * @returns The last result.
164
204
  */
165
205
  last(): T | null;
166
- /**
167
- * Returns all results.
168
- *
169
- * @returns All filtered rows.
170
- */
171
- all(): T[];
172
206
  /**
173
207
  * Returns the value of the first (selected) column of the first row.
174
208
  *
@@ -192,26 +226,17 @@ export declare class Query<T extends object> {
192
226
  */
193
227
  values(): T[PropOf<T>][][];
194
228
  /**
195
- * Defines the number of rows to skip.
196
- *
197
- * @param numberOfRows Numbers of rows to skip. Only non negative integer numbers
198
- * are allowed.
199
- *
200
- * @returns Current query.
229
+ * Returns the current number of rows.
201
230
  *
202
- * @throws {InvalidArgumentError} If the given number is less than 0.
231
+ * @return Filtered rows count.
203
232
  */
204
- skip(numberOfRows: number): this;
233
+ count(): number;
205
234
  /**
206
- * Defines a limit for the number of results.
207
- *
208
- * @param limit Limit of results. Only non negative integer numbers are allowed.
209
- *
210
- * @returns Current query.
235
+ * Checks if there is at least one row compatible with the query.
211
236
  *
212
- * @throws {InvalidArgumentError} If the given limit is less than 0.
237
+ * @returns Whether any row exists after filtering.
213
238
  */
214
- limit(limit: number): this;
239
+ exists(): boolean;
215
240
  /**
216
241
  * Filters the rows according to the given conditions.
217
242
  *
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAOnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,KAAK,CAAC,CAAC,SAAS,MAAM;;IAgBjC;;;;OAIG;IACH,OAAO;IAIP;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;IAIlD;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,SAAS,MAAM,CAAC,CAAC,CAAC,EAAE,EACjC,GAAG,OAAO,EAAE,QAAQ,GACnB,KAAK,CAAC;SAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAAE,CAAC;IAuB3C;;;;;OAKG;IACH,GAAG,CAAC,OAAO,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAe1E;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,IAAI;IAMvE;;;;;;;;;;OAUG;IACH,WAAW,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC,CAAC,GAAG,IAAI;IAM7D;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,GAAG,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;IAM9C;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAiBlD;;;;OAIG;IACH,KAAK,IAAI,MAAM;IAIf;;;;OAIG;IACH,MAAM,IAAI,OAAO;IAIjB;;;;OAIG;IACH,KAAK,IAAI,CAAC,GAAG,IAAI;IAMjB;;;;OAIG;IACH,IAAI,IAAI,CAAC,GAAG,IAAI;IAMhB;;;;OAIG;IACH,GAAG,IAAI,CAAC,EAAE;IAIV;;;;OAIG;IACH,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;IAO9B;;;;;;OAMG;IACH,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;IACxB,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE;IAehE;;;;;OAKG;IACH,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IAY1B;;;;;;;;;OASG;IAEH,IAAI,CAAkB,YAAY,EAAE,MAAM,GAAG,IAAI;IAMjD;;;;;;;;OAQG;IAEH,KAAK,CAAkB,KAAK,EAAE,MAAM,GAAG,IAAI;IAM3C;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA4BlB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAgBtB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAStB;;;;OAIG;IACH,OAAO,CAAC,cAAc;CAIvB"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
package/lib/query.js CHANGED
@@ -201,41 +201,55 @@ export class Query {
201
201
  return this;
202
202
  }
203
203
  /**
204
- * Groups the results by a specific key.
204
+ * Defines the number of rows to skip.
205
205
  *
206
- * @param key The key to group the results by.
206
+ * @param numberOfRows Numbers of rows to skip. Only non negative integer numbers
207
+ * are allowed.
208
+ *
209
+ * @returns Current query.
207
210
  *
208
- * @returns A map with the grouped results.
211
+ * @throws {InvalidArgumentError} If the given number is less than 0.
212
+ */
213
+ skip(numberOfRows) {
214
+ __classPrivateFieldSet(this, _Query_startAt, numberOfRows, "f");
215
+ return this;
216
+ }
217
+ /**
218
+ * Defines a limit for the number of results.
219
+ *
220
+ * @param limit Limit of results. Only non negative integer numbers are allowed.
221
+ *
222
+ * @returns Current query.
223
+ *
224
+ * @throws {InvalidArgumentError} If the given limit is less than 0.
209
225
  */
210
- groupBy(key) {
226
+ limit(limit) {
227
+ __classPrivateFieldSet(this, _Query_limit, limit, "f");
228
+ return this;
229
+ }
230
+ groupBy(groupArg, mapArg) {
211
231
  const rows = this.getLimitedRows();
212
232
  const map = new Map();
233
+ const hasCallback = isFunction(groupArg);
213
234
  for (const row of rows) {
214
- const index = row[key];
235
+ const index = hasCallback ? groupArg(row) : row[groupArg];
236
+ const value = mapArg ? mapArg(row) : row;
215
237
  if (map.has(index)) {
216
- map.get(index).push(row);
238
+ map.get(index).push(value);
217
239
  }
218
240
  else {
219
- map.set(index, [row]);
241
+ map.set(index, [value]);
220
242
  }
221
243
  }
222
244
  return map;
223
245
  }
224
246
  /**
225
- * Returns the current number of rows.
226
- *
227
- * @return Filtered rows count.
228
- */
229
- count() {
230
- return this.getLimitedRows().length;
231
- }
232
- /**
233
- * Checks if there is at least one row compatible with the query.
247
+ * Returns all results.
234
248
  *
235
- * @returns Whether any row exists after filtering.
249
+ * @returns All filtered rows.
236
250
  */
237
- exists() {
238
- return this.count() > 0;
251
+ all() {
252
+ return this.getLimitedRows();
239
253
  }
240
254
  /**
241
255
  * Returns the first result.
@@ -255,14 +269,6 @@ export class Query {
255
269
  const rows = this.getLimitedRows();
256
270
  return rows[rows.length - 1] ?? null;
257
271
  }
258
- /**
259
- * Returns all results.
260
- *
261
- * @returns All filtered rows.
262
- */
263
- all() {
264
- return this.getLimitedRows();
265
- }
266
272
  /**
267
273
  * Returns the value of the first (selected) column of the first row.
268
274
  *
@@ -297,31 +303,20 @@ export class Query {
297
303
  return rows;
298
304
  }
299
305
  /**
300
- * Defines the number of rows to skip.
301
- *
302
- * @param numberOfRows Numbers of rows to skip. Only non negative integer numbers
303
- * are allowed.
304
- *
305
- * @returns Current query.
306
+ * Returns the current number of rows.
306
307
  *
307
- * @throws {InvalidArgumentError} If the given number is less than 0.
308
+ * @return Filtered rows count.
308
309
  */
309
- skip(numberOfRows) {
310
- __classPrivateFieldSet(this, _Query_startAt, numberOfRows, "f");
311
- return this;
310
+ count() {
311
+ return this.getLimitedRows().length;
312
312
  }
313
313
  /**
314
- * Defines a limit for the number of results.
315
- *
316
- * @param limit Limit of results. Only non negative integer numbers are allowed.
317
- *
318
- * @returns Current query.
314
+ * Checks if there is at least one row compatible with the query.
319
315
  *
320
- * @throws {InvalidArgumentError} If the given limit is less than 0.
316
+ * @returns Whether any row exists after filtering.
321
317
  */
322
- limit(limit) {
323
- __classPrivateFieldSet(this, _Query_limit, limit, "f");
324
- return this;
318
+ exists() {
319
+ return this.count() > 0;
325
320
  }
326
321
  /**
327
322
  * Filters the rows according to the given conditions.
package/lib/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,OAAO,KAAK;IAgBhB;;;;OAIG;IACH,YAAoB,IAAS;QApB7B;;WAEG;QACH,sBAAa,EAAE,EAAC;QAEhB;;WAEG;QACH,yBAAW,CAAC,EAAC;QAEb;;WAEG;QACH,uBAAwB,IAAI,EAAC;QAQ3B,uBAAA,IAAI,eAAS,CAAC,GAAG,IAAI,CAAC,MAAA,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAmB,IAAS;QACrC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CACJ,GAAG,OAAiB;QAIpB,2BAA2B;QAC3B,MAAM,IAAI,GAAW,EAAE,CAAC;QAExB,KAAK,MAAM,GAAG,IAAI,uBAAA,IAAI,mBAAM,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,EAAU,CAAC;YAE1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;QAED,mBAAmB;QACnB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAyB,QAA6B;QACvD,WAAW;QACX,MAAM,IAAI,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,GAAG,IAAI,uBAAA,IAAI,mBAAM,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,mBAAmB;QACnB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,SAA0D;QAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAE3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;OAUG;IACH,WAAW,CAAC,SAA0C;QACpD,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,GAAG,OAA4B;QACrC,uBAAA,IAAI,eAAS,uBAAA,IAAI,mBAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,CAAC,MAAA,CAAC;QAE3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;OASG;IAEH,IAAI,CAAkB,YAAoB;QACxC,uBAAA,IAAI,kBAAY,YAAY,MAAA,CAAC;QAE7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IAEH,KAAK,CAAkB,KAAa;QAClC,uBAAA,IAAI,gBAAU,KAAK,MAAA,CAAC;QAEpB,OAAO,IAAI,CAAC;IACd,CAAC;IAyCD,OAAO,CACL,QAAyC,EACzC,MAA4B;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAsB,CAAC;QAC1C,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAEzC,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,GAAG;QACD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEnC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAEnC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,OAAO,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACvE,CAAC;IAWD,MAAM,CAAC,MAAkB;QACvB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAE1C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,GAAG,WAAW,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACH,MAAM;QAGJ,MAAM,IAAI,GAAc,EAAE,CAAC;QAE3B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAY,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACK,UAAU,CAChB,SAAkE,EAClE,OAA2B;QAE3B,MAAM,IAAI,GAAG,uBAAA,IAAI,mBAAM,CAAC;QACxB,MAAM,MAAM,GAAQ,EAAE,CAAC;QAEvB,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;gBAErB,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;gBAErB,IAAI,iBAAiB,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;oBACxD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QAED,uBAAA,IAAI,eAAS,MAAM,MAAA,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACK,cAAc;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAE9B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAEjD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACK,cAAc;QACpB,MAAM,IAAI,GAAG,CAAC,GAAG,uBAAA,IAAI,mBAAM,CAAC,CAAC;QAE7B,OAAO,IAAI,CAAC,KAAK,CACf,uBAAA,IAAI,sBAAS,EACb,uBAAA,IAAI,sBAAS,GAAG,CAAC,uBAAA,IAAI,oBAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAmB,KAAe;QACtD,uBAAA,KAAK,kBAAY,uBAAA,IAAI,sBAAS,MAAA,CAAC;QAC/B,uBAAA,KAAK,gBAAU,uBAAA,IAAI,oBAAO,MAAA,CAAC;IAC7B,CAAC;CACF;;AAtQC;IADC,eAAe;IACV,WAAA,OAAO,CAAA;IAAE,WAAA,GAAG,CAAC,CAAC,CAAC,CAAA;iCAIpB;AAYD;IADC,eAAe;IACT,WAAA,OAAO,CAAA;IAAE,WAAA,GAAG,CAAC,CAAC,CAAC,CAAA;kCAIrB"}
@@ -4,6 +4,7 @@
4
4
  * @param value The value to check.
5
5
  *
6
6
  * @returns Validation result.
7
+ *
7
8
  */
8
- export declare const isFunction: <T>(value: unknown) => value is T;
9
+ export declare const isFunction: (value: unknown) => value is (...args: any[]) => unknown;
9
10
  //# sourceMappingURL=is-function.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-function.d.ts","sourceRoot":"","sources":["../../../../src/utils/functions/type-guards/is-function.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,OAAO,OAAO,KAAG,KAAK,IAAI,CAC3B,CAAC"}
1
+ {"version":3,"file":"is-function.d.ts","sourceRoot":"","sources":["../../../../src/utils/functions/type-guards/is-function.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,OAAO,KACb,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAsC,CAAC"}
@@ -1,9 +1,11 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1
2
  /**
2
3
  * Determines if the given value is a function.
3
4
  *
4
5
  * @param value The value to check.
5
6
  *
6
7
  * @returns Validation result.
8
+ *
7
9
  */
8
10
  export const isFunction = (value) => typeof value === 'function';
9
11
  //# sourceMappingURL=is-function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-function.js","sourceRoot":"","sources":["../../../../src/utils/functions/type-guards/is-function.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,KAAc,EAAc,EAAE,CAC1D,OAAO,KAAK,KAAK,UAAU,CAAC"}
1
+ {"version":3,"file":"is-function.js","sourceRoot":"","sources":["../../../../src/utils/functions/type-guards/is-function.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAAc,EACwB,EAAE,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "querier-ts",
3
- "version": "2.1.1",
3
+ "version": "2.3.0",
4
4
  "description": "Query tool for analysing arrays of objects",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -10,7 +10,7 @@
10
10
  "scripts": {
11
11
  "test": "vitest",
12
12
  "test:cov": "vitest --coverage",
13
- "build": "tsc",
13
+ "build": "tsc --project tsconfig.build.json",
14
14
  "type-check": "tsc --noEmit",
15
15
  "format": "prettier --write \"src/**/*.ts\"",
16
16
  "lint": "eslint \"src/**/*.ts\" --fix",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=query.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query.spec.d.ts","sourceRoot":"","sources":["../../src/__tests__/query.spec.ts"],"names":[],"mappings":""}