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.
- package/README.md +17 -2
- package/lib/__tests__/query.spec.d.ts +1 -0
- package/lib/__tests__/query.spec.d.ts.map +1 -0
- package/lib/__tests__/query.spec.js +193 -87
- package/lib/__tests__/query.spec.js.map +1 -0
- package/lib/core/errors/__tests__/invalid-argument-error.spec.d.ts +1 -0
- package/lib/core/errors/__tests__/invalid-argument-error.spec.d.ts.map +1 -0
- package/lib/core/errors/__tests__/invalid-argument-error.spec.js +7 -45
- package/lib/core/errors/__tests__/invalid-argument-error.spec.js.map +1 -0
- package/lib/core/errors/invalid-argument-error.d.ts +1 -12
- package/lib/core/errors/invalid-argument-error.d.ts.map +1 -1
- package/lib/core/errors/invalid-argument-error.js +2 -8
- package/lib/core/errors/invalid-argument-error.js.map +1 -1
- package/lib/core/types/nullable-condition.d.ts +2 -0
- package/lib/core/types/nullable-condition.d.ts.map +1 -0
- package/lib/core/types/nullable-condition.js +2 -0
- package/lib/core/types/nullable-condition.js.map +1 -0
- package/lib/core/types/query-conditions-group-nullable.d.ts +2 -1
- package/lib/core/types/query-conditions-group-nullable.d.ts.map +1 -1
- package/lib/core/types/validation-options.d.ts +4 -0
- package/lib/core/types/validation-options.d.ts.map +1 -0
- package/lib/core/types/validation-options.js +2 -0
- package/lib/core/types/validation-options.js.map +1 -0
- package/lib/core/validation/__tests__/query-row-validator.spec.d.ts +1 -0
- package/lib/core/validation/__tests__/query-row-validator.spec.d.ts.map +1 -0
- package/lib/core/validation/__tests__/query-row-validator.spec.js +48 -87
- package/lib/core/validation/__tests__/query-row-validator.spec.js.map +1 -0
- package/lib/core/validation/decorators/__tests__/number-validation.spec.d.ts +2 -1
- package/lib/core/validation/decorators/__tests__/number-validation.spec.d.ts.map +1 -0
- package/lib/core/validation/decorators/__tests__/number-validation.spec.js +40 -24
- package/lib/core/validation/decorators/__tests__/number-validation.spec.js.map +1 -0
- package/lib/core/validation/decorators/number-validaton.d.ts.map +1 -1
- package/lib/core/validation/decorators/number-validaton.js +6 -18
- package/lib/core/validation/decorators/number-validaton.js.map +1 -1
- package/lib/core/validation/query-row-validator.d.ts +6 -40
- package/lib/core/validation/query-row-validator.d.ts.map +1 -1
- package/lib/core/validation/query-row-validator.js +22 -44
- package/lib/core/validation/query-row-validator.js.map +1 -1
- package/lib/query.d.ts +18 -17
- package/lib/query.d.ts.map +1 -1
- package/lib/query.js +57 -59
- package/lib/query.js.map +1 -1
- package/lib/utils/functions/generic/__tests__/compare-arrays.spec.d.ts +1 -0
- package/lib/utils/functions/generic/__tests__/compare-arrays.spec.d.ts.map +1 -0
- package/lib/utils/functions/generic/__tests__/compare-arrays.spec.js +6 -7
- package/lib/utils/functions/generic/__tests__/compare-arrays.spec.js.map +1 -0
- package/lib/utils/functions/generic/__tests__/deep-equal.spec.d.ts +1 -0
- package/lib/utils/functions/generic/__tests__/deep-equal.spec.d.ts.map +1 -0
- package/lib/utils/functions/generic/__tests__/deep-equal.spec.js +25 -26
- package/lib/utils/functions/generic/__tests__/deep-equal.spec.js.map +1 -0
- package/lib/utils/functions/generic/__tests__/get-entries.spec.d.ts +1 -0
- package/lib/utils/functions/generic/__tests__/get-entries.spec.d.ts.map +1 -0
- package/lib/utils/functions/generic/__tests__/get-entries.spec.js +7 -8
- package/lib/utils/functions/generic/__tests__/get-entries.spec.js.map +1 -0
- package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.d.ts +2 -0
- package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.d.ts.map +1 -0
- package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.js +82 -0
- package/lib/utils/functions/generic/__tests__/get-object-property-names.spec.js.map +1 -0
- package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.d.ts +1 -0
- package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.d.ts.map +1 -0
- package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.js +10 -11
- package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.js.map +1 -0
- package/lib/utils/functions/sort/__tests__/sort-by-property.spec.d.ts +1 -0
- package/lib/utils/functions/sort/__tests__/sort-by-property.spec.d.ts.map +1 -0
- package/lib/utils/functions/sort/__tests__/sort-by-property.spec.js +24 -12
- package/lib/utils/functions/sort/__tests__/sort-by-property.spec.js.map +1 -0
- package/lib/utils/functions/type-guards/__tests__/is-function.spec.d.ts +1 -0
- package/lib/utils/functions/type-guards/__tests__/is-function.spec.d.ts.map +1 -0
- package/lib/utils/functions/type-guards/__tests__/is-function.spec.js +14 -15
- package/lib/utils/functions/type-guards/__tests__/is-function.spec.js.map +1 -0
- package/lib/utils/functions/type-guards/__tests__/is-number.spec.d.ts +1 -0
- package/lib/utils/functions/type-guards/__tests__/is-number.spec.d.ts.map +1 -0
- package/lib/utils/functions/type-guards/__tests__/is-number.spec.js +19 -20
- package/lib/utils/functions/type-guards/__tests__/is-number.spec.js.map +1 -0
- package/lib/utils/functions/type-guards/__tests__/is-object.spec.d.ts +1 -0
- package/lib/utils/functions/type-guards/__tests__/is-object.spec.d.ts.map +1 -0
- package/lib/utils/functions/type-guards/__tests__/is-object.spec.js +19 -20
- package/lib/utils/functions/type-guards/__tests__/is-object.spec.js.map +1 -0
- 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
|
-
*
|
|
216
|
+
* Filters the rows according to the given conditions.
|
|
213
217
|
*
|
|
214
|
-
* @
|
|
218
|
+
* @param condition Object or callback function.
|
|
215
219
|
*/
|
|
216
|
-
private
|
|
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
|
-
*
|
|
228
|
+
* Returns the rows that should be used in the final results.
|
|
225
229
|
*
|
|
226
|
-
* @
|
|
230
|
+
* @returns Rows within the specified limit.
|
|
227
231
|
*/
|
|
228
|
-
private
|
|
232
|
+
private getLimitedRows;
|
|
229
233
|
/**
|
|
230
|
-
*
|
|
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
|
-
* @
|
|
236
|
+
* @param query Query to copy the state into.
|
|
236
237
|
*/
|
|
237
|
-
private
|
|
238
|
+
private cloneStateInto;
|
|
238
239
|
}
|
|
239
240
|
//# sourceMappingURL=query.d.ts.map
|
package/lib/query.d.ts.map
CHANGED
|
@@ -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;
|
|
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,
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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
|
-
//
|
|
151
|
-
|
|
152
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
-
*
|
|
327
|
+
* Filters the rows according to the given conditions.
|
|
338
328
|
*
|
|
339
|
-
* @
|
|
329
|
+
* @param condition Object or callback function.
|
|
340
330
|
*/
|
|
341
|
-
|
|
342
|
-
const rows =
|
|
343
|
-
|
|
344
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
369
|
+
* Returns the rows that should be used in the final results.
|
|
366
370
|
*
|
|
367
|
-
* @
|
|
371
|
+
* @returns Rows within the specified limit.
|
|
368
372
|
*/
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
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
|
-
*
|
|
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
|
-
* @
|
|
380
|
+
* @param query Query to copy the state into.
|
|
381
381
|
*/
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
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(),
|
|
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":";;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
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(
|
|
6
|
+
expect(compareArrays(a, b)).toBe(true);
|
|
9
7
|
});
|
|
10
8
|
it('returns false for ly different arrays', () => {
|
|
11
|
-
expect(
|
|
9
|
+
expect(compareArrays([{ x: 1 }], [{ x: 2 }])).toBe(false);
|
|
12
10
|
});
|
|
13
11
|
it('returns false when order differs', () => {
|
|
14
|
-
expect(
|
|
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(
|
|
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"}
|
|
@@ -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
|
-
|
|
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(
|
|
8
|
-
expect(
|
|
9
|
-
expect(
|
|
10
|
-
expect(
|
|
11
|
-
expect(
|
|
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(
|
|
15
|
-
expect(
|
|
16
|
-
expect(
|
|
17
|
-
expect(
|
|
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(
|
|
22
|
+
expect(deepEqual(a, b)).toBe(true);
|
|
25
23
|
});
|
|
26
24
|
it('returns false for objects with different keys', () => {
|
|
27
|
-
expect(
|
|
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(
|
|
28
|
+
expect(deepEqual({ x: 1 }, { x: 2 })).toBe(false);
|
|
31
29
|
});
|
|
32
30
|
it('returns false when one object has extra keys', () => {
|
|
33
|
-
expect(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
56
|
+
expect(deepEqual(a, b)).toBe(true);
|
|
59
57
|
});
|
|
60
58
|
it('returns false for arrays with different lengths', () => {
|
|
61
|
-
expect(
|
|
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(
|
|
64
|
+
expect(deepEqual([], {})).toBe(false);
|
|
67
65
|
});
|
|
68
66
|
it('returns false when one value is object and the other is primitive', () => {
|
|
69
|
-
expect(
|
|
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(
|
|
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(
|
|
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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"}
|
|
@@ -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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 @@
|
|
|
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
|