querier-ts 2.1.0 → 2.1.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.
Files changed (79) hide show
  1. package/README.md +17 -2
  2. package/lib/__tests__/query.spec.d.ts +1 -0
  3. package/lib/__tests__/query.spec.d.ts.map +1 -0
  4. package/lib/__tests__/query.spec.js +193 -87
  5. package/lib/__tests__/query.spec.js.map +1 -0
  6. package/lib/core/errors/__tests__/invalid-argument-error.spec.d.ts +1 -0
  7. package/lib/core/errors/__tests__/invalid-argument-error.spec.d.ts.map +1 -0
  8. package/lib/core/errors/__tests__/invalid-argument-error.spec.js +7 -45
  9. package/lib/core/errors/__tests__/invalid-argument-error.spec.js.map +1 -0
  10. package/lib/core/errors/invalid-argument-error.d.ts +1 -12
  11. package/lib/core/errors/invalid-argument-error.d.ts.map +1 -1
  12. package/lib/core/errors/invalid-argument-error.js +2 -8
  13. package/lib/core/errors/invalid-argument-error.js.map +1 -1
  14. package/lib/core/types/nullable-condition.d.ts +2 -0
  15. package/lib/core/types/nullable-condition.d.ts.map +1 -0
  16. package/lib/core/types/nullable-condition.js +2 -0
  17. package/lib/core/types/nullable-condition.js.map +1 -0
  18. package/lib/core/types/query-conditions-group-nullable.d.ts +2 -1
  19. package/lib/core/types/query-conditions-group-nullable.d.ts.map +1 -1
  20. package/lib/core/types/validation-options.d.ts +4 -0
  21. package/lib/core/types/validation-options.d.ts.map +1 -0
  22. package/lib/core/types/validation-options.js +2 -0
  23. package/lib/core/types/validation-options.js.map +1 -0
  24. package/lib/core/validation/__tests__/query-row-validator.spec.d.ts +1 -0
  25. package/lib/core/validation/__tests__/query-row-validator.spec.d.ts.map +1 -0
  26. package/lib/core/validation/__tests__/query-row-validator.spec.js +48 -87
  27. package/lib/core/validation/__tests__/query-row-validator.spec.js.map +1 -0
  28. package/lib/core/validation/decorators/__tests__/number-validation.spec.d.ts +2 -1
  29. package/lib/core/validation/decorators/__tests__/number-validation.spec.d.ts.map +1 -0
  30. package/lib/core/validation/decorators/__tests__/number-validation.spec.js +40 -24
  31. package/lib/core/validation/decorators/__tests__/number-validation.spec.js.map +1 -0
  32. package/lib/core/validation/decorators/number-validaton.d.ts.map +1 -1
  33. package/lib/core/validation/decorators/number-validaton.js +6 -18
  34. package/lib/core/validation/decorators/number-validaton.js.map +1 -1
  35. package/lib/core/validation/query-row-validator.d.ts +6 -40
  36. package/lib/core/validation/query-row-validator.d.ts.map +1 -1
  37. package/lib/core/validation/query-row-validator.js +22 -44
  38. package/lib/core/validation/query-row-validator.js.map +1 -1
  39. package/lib/query.d.ts +18 -17
  40. package/lib/query.d.ts.map +1 -1
  41. package/lib/query.js +57 -59
  42. package/lib/query.js.map +1 -1
  43. package/lib/utils/functions/generic/__tests__/compare-arrays.spec.d.ts +1 -0
  44. package/lib/utils/functions/generic/__tests__/compare-arrays.spec.d.ts.map +1 -0
  45. package/lib/utils/functions/generic/__tests__/compare-arrays.spec.js +6 -7
  46. package/lib/utils/functions/generic/__tests__/compare-arrays.spec.js.map +1 -0
  47. package/lib/utils/functions/generic/__tests__/deep-equal.spec.d.ts +1 -0
  48. package/lib/utils/functions/generic/__tests__/deep-equal.spec.d.ts.map +1 -0
  49. package/lib/utils/functions/generic/__tests__/deep-equal.spec.js +25 -26
  50. package/lib/utils/functions/generic/__tests__/deep-equal.spec.js.map +1 -0
  51. package/lib/utils/functions/generic/__tests__/get-entries.spec.d.ts +1 -0
  52. package/lib/utils/functions/generic/__tests__/get-entries.spec.d.ts.map +1 -0
  53. package/lib/utils/functions/generic/__tests__/get-entries.spec.js +7 -8
  54. package/lib/utils/functions/generic/__tests__/get-entries.spec.js.map +1 -0
  55. package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.d.ts +2 -0
  56. package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.d.ts.map +1 -0
  57. package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.js +82 -0
  58. package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.js.map +1 -0
  59. package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.d.ts +1 -0
  60. package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.d.ts.map +1 -0
  61. package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.js +10 -11
  62. package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.js.map +1 -0
  63. package/lib/utils/functions/sort/__tests__/sort-by-property.spec.d.ts +1 -0
  64. package/lib/utils/functions/sort/__tests__/sort-by-property.spec.d.ts.map +1 -0
  65. package/lib/utils/functions/sort/__tests__/sort-by-property.spec.js +24 -12
  66. package/lib/utils/functions/sort/__tests__/sort-by-property.spec.js.map +1 -0
  67. package/lib/utils/functions/type-guards/__tests__/is-function.spec.d.ts +1 -0
  68. package/lib/utils/functions/type-guards/__tests__/is-function.spec.d.ts.map +1 -0
  69. package/lib/utils/functions/type-guards/__tests__/is-function.spec.js +14 -15
  70. package/lib/utils/functions/type-guards/__tests__/is-function.spec.js.map +1 -0
  71. package/lib/utils/functions/type-guards/__tests__/is-number.spec.d.ts +1 -0
  72. package/lib/utils/functions/type-guards/__tests__/is-number.spec.d.ts.map +1 -0
  73. package/lib/utils/functions/type-guards/__tests__/is-number.spec.js +19 -20
  74. package/lib/utils/functions/type-guards/__tests__/is-number.spec.js.map +1 -0
  75. package/lib/utils/functions/type-guards/__tests__/is-object.spec.d.ts +1 -0
  76. package/lib/utils/functions/type-guards/__tests__/is-object.spec.d.ts.map +1 -0
  77. package/lib/utils/functions/type-guards/__tests__/is-object.spec.js +19 -20
  78. package/lib/utils/functions/type-guards/__tests__/is-object.spec.js.map +1 -0
  79. package/package.json +15 -13
package/lib/query.d.ts CHANGED
@@ -49,11 +49,6 @@ import type { PropOf } from './utils/types';
49
49
  */
50
50
  export declare class Query<T extends object> {
51
51
  #private;
52
- /**
53
- * Indicates whether conditions with `null` and `undefined` values should be
54
- * skipped.
55
- */
56
- private ignoreNullValues;
57
52
  /**
58
53
  * Initializes the query.
59
54
  *
@@ -78,6 +73,13 @@ export declare class Query<T extends object> {
78
73
  select<TColumns extends PropOf<T>[]>(...columns: TColumns): Query<{
79
74
  [P in TColumns[number]]: T[P];
80
75
  }>;
76
+ /**
77
+ * Maps each row to a new object and returns a new query.
78
+ *
79
+ * @param callback Function to be called for each row.
80
+ * @returns New query with the mapped rows.
81
+ */
82
+ map<TReturn extends object>(callback: (obj: T) => TReturn): Query<TReturn>;
81
83
  /**
82
84
  * Applies conditions to the query.
83
85
  *
@@ -176,6 +178,8 @@ export declare class Query<T extends object> {
176
178
  /**
177
179
  * Returns the values of the first (selected) column of all rows.
178
180
  *
181
+ * @param column (Optional) The column to get the values from.
182
+ *
179
183
  * @returns Values from the first (selected) column.
180
184
  */
181
185
  column(): T[PropOf<T>][];
@@ -209,11 +213,11 @@ export declare class Query<T extends object> {
209
213
  */
210
214
  limit(limit: number): this;
211
215
  /**
212
- * Returns the rows that should be used in the final results.
216
+ * Filters the rows according to the given conditions.
213
217
  *
214
- * @returns Rows within the specified limit.
218
+ * @param condition Object or callback function.
215
219
  */
216
- private getLimitedRows;
220
+ private filterRows;
217
221
  /**
218
222
  * Returns the first selected column or the first key of some row.
219
223
  *
@@ -221,19 +225,16 @@ export declare class Query<T extends object> {
221
225
  */
222
226
  private getFirstColumn;
223
227
  /**
224
- * Filters the rows according to the given conditions.
228
+ * Returns the rows that should be used in the final results.
225
229
  *
226
- * @param condition Object or callback function.
230
+ * @returns Rows within the specified limit.
227
231
  */
228
- private filterRows;
232
+ private getLimitedRows;
229
233
  /**
230
- * Validates a row based on the given conditions object.
231
- *
232
- * @param row Row to validate.
233
- * @param condition Conditions object.
234
+ * Copies the state of the current query into the given query.
234
235
  *
235
- * @returns {boolean} Validation result.
236
+ * @param query Query to copy the state into.
236
237
  */
237
- private validateRow;
238
+ private cloneStateInto;
238
239
  }
239
240
  //# sourceMappingURL=query.d.ts.map
@@ -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;AAMnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,KAAK,CAAC,CAAC,SAAS,MAAM;;IAqBjC;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAkB;IAE1C;;;;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;IAmD3C;;;;;;;;;;;;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;IAQ7D;;;;;;;;;;;;;;;;;;;;;;;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;;;;OAIG;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;IAM1B;;;;;;;;;OASG;IAEH,IAAI,CAAkB,YAAY,EAAE,MAAM,GAAG,IAAI;IAMjD;;;;;;;;OAQG;IAEH,KAAK,CAAkB,KAAK,EAAE,MAAM,GAAG,IAAI;IAM3C;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAgBtB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAUlB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;CASpB"}
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"}
package/lib/query.js CHANGED
@@ -18,7 +18,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
18
18
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
19
19
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
20
20
  };
21
- var _Query_rows, _Query_startAt, _Query_orderBy, _Query_limit;
21
+ var _Query_rows, _Query_startAt, _Query_limit;
22
22
  import { QueryRowValidator } from './core/validation';
23
23
  import { integer, min, validateNumbers } from './core/validation/decorators';
24
24
  import { getObjectPropertyNames } from './utils/functions/generic/get-object-property-names';
@@ -85,19 +85,10 @@ export class Query {
85
85
  * Number of results to skip.
86
86
  */
87
87
  _Query_startAt.set(this, 0);
88
- /**
89
- * Columns to order the results by.
90
- */
91
- _Query_orderBy.set(this, []);
92
88
  /**
93
89
  * Limit of results.
94
90
  */
95
91
  _Query_limit.set(this, null);
96
- /**
97
- * Indicates whether conditions with `null` and `undefined` values should be
98
- * skipped.
99
- */
100
- this.ignoreNullValues = false;
101
92
  __classPrivateFieldSet(this, _Query_rows, [...rows], "f");
102
93
  }
103
94
  /**
@@ -129,27 +120,24 @@ export class Query {
129
120
  }
130
121
  // create new query
131
122
  const query = new Query(rows);
132
- // copy ordering columns that are part of the selected columns
133
- if (__classPrivateFieldGet(this, _Query_orderBy, "f").length > 0) {
134
- const orderBy = [];
135
- for (const orderingColumn of __classPrivateFieldGet(this, _Query_orderBy, "f")) {
136
- if (columns.includes(orderingColumn)) {
137
- orderBy.push(orderingColumn);
138
- continue;
139
- }
140
- let normalizedColumn = orderingColumn.toString();
141
- if (normalizedColumn.startsWith('-')) {
142
- normalizedColumn = normalizedColumn.slice(1);
143
- }
144
- if (columns.includes(normalizedColumn)) {
145
- orderBy.push(orderingColumn);
146
- }
147
- }
148
- __classPrivateFieldSet(query, _Query_orderBy, orderBy, "f");
123
+ this.cloneStateInto(query);
124
+ return query;
125
+ }
126
+ /**
127
+ * Maps each row to a new object and returns a new query.
128
+ *
129
+ * @param callback Function to be called for each row.
130
+ * @returns New query with the mapped rows.
131
+ */
132
+ map(callback) {
133
+ // map rows
134
+ const rows = [];
135
+ for (const row of __classPrivateFieldGet(this, _Query_rows, "f")) {
136
+ rows.push(callback(row));
149
137
  }
150
- // copy the remaining query properties
151
- __classPrivateFieldSet(query, _Query_startAt, __classPrivateFieldGet(this, _Query_startAt, "f"), "f");
152
- __classPrivateFieldSet(query, _Query_limit, __classPrivateFieldGet(this, _Query_limit, "f"), "f");
138
+ // create new query
139
+ const query = new Query(rows);
140
+ this.cloneStateInto(query);
153
141
  return query;
154
142
  }
155
143
  /**
@@ -181,9 +169,7 @@ export class Query {
181
169
  * @returns Current query.
182
170
  */
183
171
  filterWhere(condition) {
184
- this.ignoreNullValues = true;
185
- this.filterRows(condition);
186
- this.ignoreNullValues = false;
172
+ this.filterRows(condition, { ignoreNullValues: true });
187
173
  return this;
188
174
  }
189
175
  /**
@@ -211,7 +197,7 @@ export class Query {
211
197
  * @returns Current query.
212
198
  */
213
199
  orderBy(...columns) {
214
- __classPrivateFieldSet(this, _Query_orderBy, columns, "f");
200
+ __classPrivateFieldSet(this, _Query_rows, __classPrivateFieldGet(this, _Query_rows, "f").sort(sortByProperties(...columns)), "f");
215
201
  return this;
216
202
  }
217
203
  /**
@@ -304,7 +290,11 @@ export class Query {
304
290
  * @returns Array with the values of all rows.
305
291
  */
306
292
  values() {
307
- return this.getLimitedRows().map((row) => Object.values(row));
293
+ const rows = [];
294
+ for (const row of this.getLimitedRows()) {
295
+ rows.push(Object.values(row));
296
+ }
297
+ return rows;
308
298
  }
309
299
  /**
310
300
  * Defines the number of rows to skip.
@@ -334,16 +324,30 @@ export class Query {
334
324
  return this;
335
325
  }
336
326
  /**
337
- * Returns the rows that should be used in the final results.
327
+ * Filters the rows according to the given conditions.
338
328
  *
339
- * @returns Rows within the specified limit.
329
+ * @param condition Object or callback function.
340
330
  */
341
- getLimitedRows() {
342
- const rows = [...__classPrivateFieldGet(this, _Query_rows, "f")];
343
- if (__classPrivateFieldGet(this, _Query_orderBy, "f").length > 0) {
344
- rows.sort(sortByProperties(...__classPrivateFieldGet(this, _Query_orderBy, "f")));
331
+ filterRows(condition, options) {
332
+ const rows = __classPrivateFieldGet(this, _Query_rows, "f");
333
+ const result = [];
334
+ if (isFunction(condition)) {
335
+ for (let i = 0; i < rows.length; i++) {
336
+ const row = rows[i];
337
+ if (condition(row)) {
338
+ result.push(row);
339
+ }
340
+ }
345
341
  }
346
- return rows.slice(__classPrivateFieldGet(this, _Query_startAt, "f")).slice(0, __classPrivateFieldGet(this, _Query_limit, "f") ?? undefined);
342
+ else {
343
+ for (let i = 0; i < rows.length; i++) {
344
+ const row = rows[i];
345
+ if (QueryRowValidator.validate(row, condition, options)) {
346
+ result.push(row);
347
+ }
348
+ }
349
+ }
350
+ __classPrivateFieldSet(this, _Query_rows, result, "f");
347
351
  }
348
352
  /**
349
353
  * Returns the first selected column or the first key of some row.
@@ -362,31 +366,25 @@ export class Query {
362
366
  return null;
363
367
  }
364
368
  /**
365
- * Filters the rows according to the given conditions.
369
+ * Returns the rows that should be used in the final results.
366
370
  *
367
- * @param condition Object or callback function.
371
+ * @returns Rows within the specified limit.
368
372
  */
369
- filterRows(condition) {
370
- __classPrivateFieldSet(this, _Query_rows, __classPrivateFieldGet(this, _Query_rows, "f").filter((row) => isFunction(condition)
371
- ? condition(row)
372
- : this.validateRow(row, condition)), "f");
373
+ getLimitedRows() {
374
+ const rows = [...__classPrivateFieldGet(this, _Query_rows, "f")];
375
+ return rows.slice(__classPrivateFieldGet(this, _Query_startAt, "f"), __classPrivateFieldGet(this, _Query_startAt, "f") + (__classPrivateFieldGet(this, _Query_limit, "f") ?? rows.length));
373
376
  }
374
377
  /**
375
- * Validates a row based on the given conditions object.
376
- *
377
- * @param row Row to validate.
378
- * @param condition Conditions object.
378
+ * Copies the state of the current query into the given query.
379
379
  *
380
- * @returns {boolean} Validation result.
380
+ * @param query Query to copy the state into.
381
381
  */
382
- validateRow(row, condition) {
383
- return QueryRowValidator.validate(row, {
384
- conditionsObject: condition,
385
- ignoreNullValues: this.ignoreNullValues,
386
- });
382
+ cloneStateInto(query) {
383
+ __classPrivateFieldSet(query, _Query_startAt, __classPrivateFieldGet(this, _Query_startAt, "f"), "f");
384
+ __classPrivateFieldSet(query, _Query_limit, __classPrivateFieldGet(this, _Query_limit, "f"), "f");
387
385
  }
388
386
  }
389
- _Query_rows = new WeakMap(), _Query_startAt = new WeakMap(), _Query_orderBy = new WeakMap(), _Query_limit = new WeakMap();
387
+ _Query_rows = new WeakMap(), _Query_startAt = new WeakMap(), _Query_limit = new WeakMap();
390
388
  __decorate([
391
389
  validateNumbers,
392
390
  __param(0, integer),
package/lib/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAKA,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;IA2BhB;;;;OAIG;IACH,YAAoB,IAAS;QA/B7B;;WAEG;QACH,sBAAa,EAAE,EAAC;QAEhB;;WAEG;QACH,yBAAW,CAAC,EAAC;QAEb;;WAEG;QACH,yBAAgC,EAAE,EAAC;QAEnC;;WAEG;QACH,uBAAwB,IAAI,EAAC;QAE7B;;;WAGG;QACK,qBAAgB,GAAY,KAAK,CAAC;QAQxC,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;QAKpB,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;QAE9B,8DAA8D;QAC9D,IAAI,uBAAA,IAAI,sBAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAA2B,EAAE,CAAC;YAE3C,KAAK,MAAM,cAAc,IAAI,uBAAA,IAAI,sBAAS,EAAE,CAAC;gBAC3C,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC,cAAsC,CAAC,CAAC;oBACrD,SAAS;gBACX,CAAC;gBAED,IAAI,gBAAgB,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAEjD,IAAI,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrC,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC/C,CAAC;gBAED,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAA2B,CAAC,EAAE,CAAC;oBAClD,OAAO,CAAC,IAAI,CAAC,cAAsC,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YAED,uBAAA,KAAK,kBAAY,OAAO,MAAA,CAAC;QAC3B,CAAC;QAED,sCAAsC;QACtC,uBAAA,KAAK,kBAAY,uBAAA,IAAI,sBAAS,MAAA,CAAC;QAC/B,uBAAA,KAAK,gBAAU,uBAAA,IAAI,oBAAO,MAAA,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,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAE9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,GAAG,OAA4B;QACrC,uBAAA,IAAI,kBAAY,OAAO,MAAA,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAoB,GAAM;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAa,CAAC;QAEjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YAEvB,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,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;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,GAAG;QACD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC/B,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;IASD,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;QACJ,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAC9B,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAmB,CAC9C,CAAC;IACJ,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;IAED;;;;OAIG;IACK,cAAc;QACpB,MAAM,IAAI,GAAG,CAAC,GAAG,uBAAA,IAAI,mBAAM,CAAC,CAAC;QAE7B,IAAI,uBAAA,IAAI,sBAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,uBAAA,IAAI,sBAAS,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,uBAAA,IAAI,sBAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAA,IAAI,oBAAO,IAAI,SAAS,CAAC,CAAC;IACtE,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,UAAU,CAChB,SAAkE;QAElE,uBAAA,IAAI,eAAS,uBAAA,IAAI,mBAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACrC,UAAU,CAAsB,SAAS,CAAC;YACxC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;YAChB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,CACrC,MAAA,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,WAAW,CACjB,GAAM,EACN,SAA0C;QAE1C,OAAO,iBAAiB,CAAC,QAAQ,CAAC,GAAG,EAAE;YACrC,gBAAgB,EAAE,SAAS;YAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAC,CAAC;IACL,CAAC;CACF;;AA1FC;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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=compare-arrays.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare-arrays.spec.d.ts","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/compare-arrays.spec.ts"],"names":[],"mappings":""}
@@ -1,21 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const compare_arrays_1 = require("../compare-arrays");
1
+ import { compareArrays } from '../compare-arrays';
4
2
  describe('compareArrays', () => {
5
3
  it('returns true for ly equal arrays', () => {
6
4
  const a = [{ x: 1 }, { y: 2 }];
7
5
  const b = [{ x: 1 }, { y: 2 }];
8
- expect((0, compare_arrays_1.compareArrays)(a, b)).toBe(true);
6
+ expect(compareArrays(a, b)).toBe(true);
9
7
  });
10
8
  it('returns false for ly different arrays', () => {
11
- expect((0, compare_arrays_1.compareArrays)([{ x: 1 }], [{ x: 2 }])).toBe(false);
9
+ expect(compareArrays([{ x: 1 }], [{ x: 2 }])).toBe(false);
12
10
  });
13
11
  it('returns false when order differs', () => {
14
- expect((0, compare_arrays_1.compareArrays)([{ a: 1 }, { b: 2 }], [{ b: 2 }, { a: 1 }])).toBe(false);
12
+ expect(compareArrays([{ a: 1 }, { b: 2 }], [{ b: 2 }, { a: 1 }])).toBe(false);
15
13
  });
16
14
  it('works with nested objects', () => {
17
15
  const a = [{ x: { y: 1 } }];
18
16
  const b = [{ x: { y: 1 } }];
19
- expect((0, compare_arrays_1.compareArrays)(a, b)).toBe(true);
17
+ expect(compareArrays(a, b)).toBe(true);
20
18
  });
21
19
  });
20
+ //# sourceMappingURL=compare-arrays.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare-arrays.spec.js","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/compare-arrays.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAE/B,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CACpE,KAAK,CACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAE5B,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=deep-equal.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-equal.spec.d.ts","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/deep-equal.spec.ts"],"names":[],"mappings":""}
@@ -1,82 +1,81 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const deep_equal_1 = require("../deep-equal");
1
+ import { deepEqual } from '../deep-equal';
4
2
  describe('deepEqual', () => {
5
3
  describe('primitive values', () => {
6
4
  it('returns true for strictly equal primitives', () => {
7
- expect((0, deep_equal_1.deepEqual)(1, 1)).toBe(true);
8
- expect((0, deep_equal_1.deepEqual)('a', 'a')).toBe(true);
9
- expect((0, deep_equal_1.deepEqual)(true, true)).toBe(true);
10
- expect((0, deep_equal_1.deepEqual)(null, null)).toBe(true);
11
- expect((0, deep_equal_1.deepEqual)(undefined, undefined)).toBe(true);
5
+ expect(deepEqual(1, 1)).toBe(true);
6
+ expect(deepEqual('a', 'a')).toBe(true);
7
+ expect(deepEqual(true, true)).toBe(true);
8
+ expect(deepEqual(null, null)).toBe(true);
9
+ expect(deepEqual(undefined, undefined)).toBe(true);
12
10
  });
13
11
  it('returns false for different primitive values', () => {
14
- expect((0, deep_equal_1.deepEqual)(1, 2)).toBe(false);
15
- expect((0, deep_equal_1.deepEqual)('a', 'b')).toBe(false);
16
- expect((0, deep_equal_1.deepEqual)(true, false)).toBe(false);
17
- expect((0, deep_equal_1.deepEqual)(null, undefined)).toBe(false);
12
+ expect(deepEqual(1, 2)).toBe(false);
13
+ expect(deepEqual('a', 'b')).toBe(false);
14
+ expect(deepEqual(true, false)).toBe(false);
15
+ expect(deepEqual(null, undefined)).toBe(false);
18
16
  });
19
17
  });
20
18
  describe('objects', () => {
21
19
  it('returns true for deeply equal plain objects', () => {
22
20
  const a = { x: 1, y: 2 };
23
21
  const b = { x: 1, y: 2 };
24
- expect((0, deep_equal_1.deepEqual)(a, b)).toBe(true);
22
+ expect(deepEqual(a, b)).toBe(true);
25
23
  });
26
24
  it('returns false for objects with different keys', () => {
27
- expect((0, deep_equal_1.deepEqual)({ x: 1 }, { y: 1 })).toBe(false);
25
+ expect(deepEqual({ x: 1 }, { y: 1 })).toBe(false);
28
26
  });
29
27
  it('returns false for objects with same keys but different values', () => {
30
- expect((0, deep_equal_1.deepEqual)({ x: 1 }, { x: 2 })).toBe(false);
28
+ expect(deepEqual({ x: 1 }, { x: 2 })).toBe(false);
31
29
  });
32
30
  it('returns false when one object has extra keys', () => {
33
- expect((0, deep_equal_1.deepEqual)({ x: 1 }, { x: 1, y: 2 })).toBe(false);
31
+ expect(deepEqual({ x: 1 }, { x: 1, y: 2 })).toBe(false);
34
32
  });
35
33
  });
36
34
  describe('nested structures', () => {
37
35
  it('returns true for deeply nested objects', () => {
38
36
  const a = { x: { y: { z: 1 } } };
39
37
  const b = { x: { y: { z: 1 } } };
40
- expect((0, deep_equal_1.deepEqual)(a, b)).toBe(true);
38
+ expect(deepEqual(a, b)).toBe(true);
41
39
  });
42
40
  it('returns false for deeply nested differences', () => {
43
41
  const a = { x: { y: { z: 1 } } };
44
42
  const b = { x: { y: { z: 2 } } };
45
- expect((0, deep_equal_1.deepEqual)(a, b)).toBe(false);
43
+ expect(deepEqual(a, b)).toBe(false);
46
44
  });
47
45
  });
48
46
  describe('arrays', () => {
49
47
  it('returns true for deeply equal arrays', () => {
50
- expect((0, deep_equal_1.deepEqual)([1, 2, 3], [1, 2, 3])).toBe(true);
48
+ expect(deepEqual([1, 2, 3], [1, 2, 3])).toBe(true);
51
49
  });
52
50
  it('returns false for arrays with different order', () => {
53
- expect((0, deep_equal_1.deepEqual)([1, 2, 3], [3, 2, 1])).toBe(false);
51
+ expect(deepEqual([1, 2, 3], [3, 2, 1])).toBe(false);
54
52
  });
55
53
  it('returns true for arrays with nested objects', () => {
56
54
  const a = [{ x: 1 }, { y: 2 }];
57
55
  const b = [{ x: 1 }, { y: 2 }];
58
- expect((0, deep_equal_1.deepEqual)(a, b)).toBe(true);
56
+ expect(deepEqual(a, b)).toBe(true);
59
57
  });
60
58
  it('returns false for arrays with different lengths', () => {
61
- expect((0, deep_equal_1.deepEqual)([1, 2], [1, 2, 3])).toBe(false);
59
+ expect(deepEqual([1, 2], [1, 2, 3])).toBe(false);
62
60
  });
63
61
  });
64
62
  describe('mixed and edge cases', () => {
65
63
  it('returns false when comparing array and object', () => {
66
- expect((0, deep_equal_1.deepEqual)([], {})).toBe(false);
64
+ expect(deepEqual([], {})).toBe(false);
67
65
  });
68
66
  it('returns false when one value is object and the other is primitive', () => {
69
- expect((0, deep_equal_1.deepEqual)({ x: 1 }, 1)).toBe(false);
67
+ expect(deepEqual({ x: 1 }, 1)).toBe(false);
70
68
  });
71
69
  it('returns true for same object reference', () => {
72
70
  const obj = { x: 1 };
73
- expect((0, deep_equal_1.deepEqual)(obj, obj)).toBe(true);
71
+ expect(deepEqual(obj, obj)).toBe(true);
74
72
  });
75
73
  it('returns false for Date objects with same value (by design)', () => {
76
74
  const a = new Date(2020, 1, 1);
77
75
  const b = new Date(2020, 1, 1);
78
76
  // Date has no enumerable keys, so this documents the limitation
79
- expect((0, deep_equal_1.deepEqual)(a, b)).toBe(true);
77
+ expect(deepEqual(a, b)).toBe(true);
80
78
  });
81
79
  });
82
80
  });
81
+ //# sourceMappingURL=deep-equal.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-equal.spec.js","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/deep-equal.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=get-entries.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-entries.spec.d.ts","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/get-entries.spec.ts"],"names":[],"mappings":""}
@@ -1,13 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const get_entries_1 = require("../get-entries");
1
+ import { getEntries } from '../get-entries';
4
2
  describe('getEntries', () => {
5
3
  it('should return entries for a simple object', () => {
6
4
  const obj = {
7
5
  a: 1,
8
6
  b: 2,
9
7
  };
10
- const entries = (0, get_entries_1.getEntries)(obj);
8
+ const entries = getEntries(obj);
11
9
  expect(entries).toEqual([
12
10
  ['a', 1],
13
11
  ['b', 2],
@@ -15,7 +13,7 @@ describe('getEntries', () => {
15
13
  });
16
14
  it('should return an empty array for an empty object', () => {
17
15
  const obj = {};
18
- const entries = (0, get_entries_1.getEntries)(obj);
16
+ const entries = getEntries(obj);
19
17
  expect(entries).toEqual([]);
20
18
  });
21
19
  it('should work with different value types', () => {
@@ -24,7 +22,7 @@ describe('getEntries', () => {
24
22
  age: 30,
25
23
  active: true,
26
24
  };
27
- const entries = (0, get_entries_1.getEntries)(obj);
25
+ const entries = getEntries(obj);
28
26
  expect(entries).toEqual([
29
27
  ['name', 'Alice'],
30
28
  ['age', 30],
@@ -36,7 +34,7 @@ describe('getEntries', () => {
36
34
  x: 10,
37
35
  y: 20,
38
36
  };
39
- const entries = (0, get_entries_1.getEntries)(obj);
37
+ const entries = getEntries(obj);
40
38
  for (const [key, value] of entries) {
41
39
  expect(obj[key]).toBe(value);
42
40
  }
@@ -46,10 +44,11 @@ describe('getEntries', () => {
46
44
  id: 1,
47
45
  title: 'Post',
48
46
  };
49
- const entries = (0, get_entries_1.getEntries)(obj);
47
+ const entries = getEntries(obj);
50
48
  const key = 'id';
51
49
  const value = obj[key];
52
50
  expect(key).toBe('id');
53
51
  expect(value).toBe(1);
54
52
  });
55
53
  });
54
+ //# sourceMappingURL=get-entries.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-entries.spec.js","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/get-entries.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,GAAG,GAAG;YACV,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACL,CAAC;QAEF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACtB,CAAC,GAAG,EAAE,CAAC,CAAC;YACR,CAAC,GAAG,EAAE,CAAC,CAAC;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,GAAG,GAAG,EAAE,CAAC;QAEf,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,EAAE;YACP,MAAM,EAAE,IAAI;SACb,CAAC;QAEF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAEhC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACtB,CAAC,MAAM,EAAE,OAAO,CAAC;YACjB,CAAC,KAAK,EAAE,EAAE,CAAC;YACX,CAAC,QAAQ,EAAE,IAAI,CAAC;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,GAAG,GAAG;YACV,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,EAAE;SACN,CAAC;QAEF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAEhC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,GAAG,GAAG;YACV,EAAE,EAAE,CAAC;YACL,KAAK,EAAE,MAAM;SACd,CAAC;QAEF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAKhC,MAAM,GAAG,GAAa,IAAI,CAAC;QAC3B,MAAM,KAAK,GAAa,GAAG,CAAC,GAAG,CAAC,CAAC;QAEjC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=get-object-property-names.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-object-property-names.spec.d.ts","sourceRoot":"","sources":["../../../../../src/utils/functions/generic/__tests__/get-object-property-names.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,82 @@
1
+ import { getObjectPropertyNames } from '../get-object-property-names';
2
+ class User {
3
+ constructor(id, name, active) {
4
+ this.id = id;
5
+ this.name = name;
6
+ this.active = active;
7
+ }
8
+ isAdmin() {
9
+ return this.id === 1;
10
+ }
11
+ }
12
+ describe('getObjectPropertyNames', () => {
13
+ it('should return only data properties from a plain object', () => {
14
+ const obj = {
15
+ id: 1,
16
+ name: 'John',
17
+ active: true,
18
+ };
19
+ const result = getObjectPropertyNames(obj);
20
+ expect(result).toEqual(['id', 'name', 'active']);
21
+ });
22
+ it('should exclude function properties', () => {
23
+ const obj = {
24
+ id: 1,
25
+ name: 'John',
26
+ greet: () => 'hello',
27
+ };
28
+ const result = getObjectPropertyNames(obj);
29
+ expect(result).toEqual(['id', 'name']);
30
+ });
31
+ it('should not include class prototype methods', () => {
32
+ const user = new User(1, 'John', true);
33
+ const result = getObjectPropertyNames(user);
34
+ expect(result).toEqual(['id', 'name', 'active']);
35
+ expect(result.includes('isAdmin')).toBe(false);
36
+ });
37
+ it('should return empty array for object with only methods', () => {
38
+ const obj = {
39
+ fn1: () => 1,
40
+ fn2: () => 2,
41
+ };
42
+ const result = getObjectPropertyNames(obj);
43
+ expect(result).toEqual([]);
44
+ });
45
+ it('should return empty array for empty object', () => {
46
+ const obj = {};
47
+ const result = getObjectPropertyNames(obj);
48
+ expect(result).toEqual([]);
49
+ });
50
+ it('should handle mixed value types correctly', () => {
51
+ const obj = {
52
+ str: 'text',
53
+ num: 123,
54
+ bool: true,
55
+ nil: null,
56
+ undef: undefined,
57
+ obj: { nested: true },
58
+ arr: [1, 2, 3],
59
+ fn: () => { },
60
+ };
61
+ const result = getObjectPropertyNames(obj);
62
+ expect(result).toEqual([
63
+ 'str',
64
+ 'num',
65
+ 'bool',
66
+ 'nil',
67
+ 'undef',
68
+ 'obj',
69
+ 'arr',
70
+ ]);
71
+ });
72
+ it('should preserve key order', () => {
73
+ const obj = {
74
+ a: 1,
75
+ b: 2,
76
+ c: 3,
77
+ };
78
+ const result = getObjectPropertyNames(obj);
79
+ expect(result).toEqual(['a', 'b', 'c']);
80
+ });
81
+ });
82
+ //# sourceMappingURL=get-object-property-names.spec.js.map