querier-ts 2.1.0 → 2.2.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.
- package/README.md +17 -2
- 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/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 +29 -20
- package/lib/query.d.ts.map +1 -1
- package/lib/query.js +60 -68
- package/lib/query.js.map +1 -1
- package/lib/utils/functions/type-guards/is-function.d.ts +2 -1
- package/lib/utils/functions/type-guards/is-function.d.ts.map +1 -1
- package/lib/utils/functions/type-guards/is-function.js +2 -0
- package/lib/utils/functions/type-guards/is-function.js.map +1 -1
- package/package.json +15 -13
- package/lib/__tests__/query.spec.d.ts +0 -1
- package/lib/__tests__/query.spec.js +0 -165
- package/lib/core/errors/__tests__/invalid-argument-error.spec.d.ts +0 -1
- package/lib/core/errors/__tests__/invalid-argument-error.spec.js +0 -54
- package/lib/core/validation/__tests__/query-row-validator.spec.d.ts +0 -1
- package/lib/core/validation/__tests__/query-row-validator.spec.js +0 -195
- package/lib/core/validation/decorators/__tests__/number-validation.spec.d.ts +0 -1
- package/lib/core/validation/decorators/__tests__/number-validation.spec.js +0 -114
- package/lib/utils/functions/generic/__tests__/compare-arrays.spec.d.ts +0 -1
- package/lib/utils/functions/generic/__tests__/compare-arrays.spec.js +0 -21
- package/lib/utils/functions/generic/__tests__/deep-equal.spec.d.ts +0 -1
- package/lib/utils/functions/generic/__tests__/deep-equal.spec.js +0 -82
- package/lib/utils/functions/generic/__tests__/get-entries.spec.d.ts +0 -1
- package/lib/utils/functions/generic/__tests__/get-entries.spec.js +0 -55
- package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.d.ts +0 -1
- package/lib/utils/functions/sort/__tests__/sort-by-properties.spec.js +0 -69
- package/lib/utils/functions/sort/__tests__/sort-by-property.spec.d.ts +0 -1
- package/lib/utils/functions/sort/__tests__/sort-by-property.spec.js +0 -63
- package/lib/utils/functions/type-guards/__tests__/is-function.spec.d.ts +0 -1
- package/lib/utils/functions/type-guards/__tests__/is-function.spec.js +0 -38
- package/lib/utils/functions/type-guards/__tests__/is-number.spec.d.ts +0 -1
- package/lib/utils/functions/type-guards/__tests__/is-number.spec.js +0 -35
- package/lib/utils/functions/type-guards/__tests__/is-object.spec.d.ts +0 -1
- package/lib/utils/functions/type-guards/__tests__/is-object.spec.js +0 -38
package/README.md
CHANGED
|
@@ -108,7 +108,7 @@ const authorsWithFirstPostQuery = Query.from(authors)
|
|
|
108
108
|
}));
|
|
109
109
|
```
|
|
110
110
|
|
|
111
|
-
When dealing with
|
|
111
|
+
When dealing with simple scenarios, prefer `select()`:
|
|
112
112
|
|
|
113
113
|
```ts
|
|
114
114
|
// ⚠️ More verbose than necessary
|
|
@@ -276,4 +276,19 @@ Example output:
|
|
|
276
276
|
[1, 'john@icloud.com'],
|
|
277
277
|
[2, 'mary@gmail.com']
|
|
278
278
|
]
|
|
279
|
-
```
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
#### `groupBy(key)`
|
|
284
|
+
|
|
285
|
+
Groups the items by the specified property and returns the result as a `Map`.
|
|
286
|
+
|
|
287
|
+
- `key`: The property name to group by.
|
|
288
|
+
|
|
289
|
+
The returned `Map` uses the property values as keys and arrays of matching items as values.
|
|
290
|
+
|
|
291
|
+
```ts
|
|
292
|
+
const usersByActiveStatus = Query.from(users).groupBy('active');
|
|
293
|
+
// Map<boolean, User[]>
|
|
294
|
+
```
|
|
@@ -1,15 +1,4 @@
|
|
|
1
|
-
interface InvalidArgumentErrorConfig {
|
|
2
|
-
method: string;
|
|
3
|
-
param: string | number;
|
|
4
|
-
argument: unknown;
|
|
5
|
-
expected: string;
|
|
6
|
-
}
|
|
7
1
|
export declare class InvalidArgumentError extends Error {
|
|
8
|
-
|
|
9
|
-
readonly param: string | number;
|
|
10
|
-
readonly argument: unknown;
|
|
11
|
-
readonly expected: string;
|
|
12
|
-
constructor({ method, param, argument, expected, }: InvalidArgumentErrorConfig);
|
|
2
|
+
constructor(message: string);
|
|
13
3
|
}
|
|
14
|
-
export {};
|
|
15
4
|
//# sourceMappingURL=invalid-argument-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invalid-argument-error.d.ts","sourceRoot":"","sources":["../../../src/core/errors/invalid-argument-error.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"invalid-argument-error.d.ts","sourceRoot":"","sources":["../../../src/core/errors/invalid-argument-error.ts"],"names":[],"mappings":"AAAA,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
export class InvalidArgumentError extends Error {
|
|
2
|
-
constructor(
|
|
3
|
-
super(
|
|
4
|
-
`It should be ${expected}.`);
|
|
2
|
+
constructor(message) {
|
|
3
|
+
super(message);
|
|
5
4
|
this.name = 'InvalidArgumentError';
|
|
6
|
-
this.method = method;
|
|
7
|
-
this.param = param;
|
|
8
|
-
this.argument = argument;
|
|
9
|
-
this.expected = expected;
|
|
10
|
-
Object.setPrototypeOf(this, new.target.prototype);
|
|
11
5
|
}
|
|
12
6
|
}
|
|
13
7
|
//# sourceMappingURL=invalid-argument-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invalid-argument-error.js","sourceRoot":"","sources":["../../../src/core/errors/invalid-argument-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"invalid-argument-error.js","sourceRoot":"","sources":["../../../src/core/errors/invalid-argument-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nullable-condition.d.ts","sourceRoot":"","sources":["../../../src/core/types/nullable-condition.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAC3B,CAAC,GACD,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,GACvB,IAAI,GACJ,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nullable-condition.js","sourceRoot":"","sources":["../../../src/core/types/nullable-condition.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PropertyOnly } from '../../utils/types';
|
|
2
|
+
import type { NullableCondition } from './nullable-condition';
|
|
2
3
|
export type QueryConditionsGroupNullable<T extends object> = {
|
|
3
|
-
[P in keyof PropertyOnly<T>]?: T[P] extends object ? QueryConditionsGroupNullable<T[P]> : T[P]
|
|
4
|
+
[P in keyof PropertyOnly<T>]?: T[P] extends object ? QueryConditionsGroupNullable<T[P]> : NullableCondition<T[P]>;
|
|
4
5
|
};
|
|
5
6
|
//# sourceMappingURL=query-conditions-group-nullable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-conditions-group-nullable.d.ts","sourceRoot":"","sources":["../../../src/core/types/query-conditions-group-nullable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"query-conditions-group-nullable.d.ts","sourceRoot":"","sources":["../../../src/core/types/query-conditions-group-nullable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,MAAM,IAAI;KAC1D,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAC9C,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAClC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-options.d.ts","sourceRoot":"","sources":["../../../src/core/types/validation-options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,OAAO,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-options.js","sourceRoot":"","sources":["../../../src/core/types/validation-options.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-validaton.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/decorators/number-validaton.ts"],"names":[],"mappings":"AAiCA,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,IAE7B,QAAQ,MAAM,EACd,aAAa,MAAM,GAAG,MAAM,EAC5B,OAAO,MAAM,KACZ,IAAI,CAWR;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,IAE7B,QAAQ,MAAM,EACd,aAAa,MAAM,GAAG,MAAM,EAC5B,OAAO,MAAM,KACZ,IAAI,CAWR;AAED,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,KAAK,EAAE,MAAM,GACZ,IAAI,CAUN;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EAEnB,UAAU,EAAE,uBAAuB,CAAC,GAAG,CAAC,GACvC,IAAI,
|
|
1
|
+
{"version":3,"file":"number-validaton.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/decorators/number-validaton.ts"],"names":[],"mappings":"AAiCA,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,IAE7B,QAAQ,MAAM,EACd,aAAa,MAAM,GAAG,MAAM,EAC5B,OAAO,MAAM,KACZ,IAAI,CAWR;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,IAE7B,QAAQ,MAAM,EACd,aAAa,MAAM,GAAG,MAAM,EAC5B,OAAO,MAAM,KACZ,IAAI,CAWR;AAED,wBAAgB,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,KAAK,EAAE,MAAM,GACZ,IAAI,CAUN;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EAEnB,UAAU,EAAE,uBAAuB,CAAC,GAAG,CAAC,GACvC,IAAI,CA0CN"}
|
|
@@ -59,34 +59,22 @@ descriptor) {
|
|
|
59
59
|
// MIN
|
|
60
60
|
if (rule.min !== undefined) {
|
|
61
61
|
if (!isNumber(value) || value < rule.min) {
|
|
62
|
-
throw new InvalidArgumentError({
|
|
63
|
-
|
|
64
|
-
param: rule.index,
|
|
65
|
-
argument: value,
|
|
66
|
-
expected: `equal or greater than ${rule.min}`,
|
|
67
|
-
});
|
|
62
|
+
throw new InvalidArgumentError(`${String(value)} is not a valid argument to param ${rule.index} on ${propertyKey}(). ` +
|
|
63
|
+
`Expected value to be equal or greater than ${rule.min}.`);
|
|
68
64
|
}
|
|
69
65
|
}
|
|
70
66
|
// MAX
|
|
71
67
|
if (rule.max !== undefined) {
|
|
72
68
|
if (!isNumber(value) || value > rule.max) {
|
|
73
|
-
throw new InvalidArgumentError({
|
|
74
|
-
|
|
75
|
-
param: rule.index,
|
|
76
|
-
argument: value,
|
|
77
|
-
expected: `equal or less than ${rule.max}`,
|
|
78
|
-
});
|
|
69
|
+
throw new InvalidArgumentError(`${String(value)} is not a valid argument to param ${rule.index} on ${propertyKey}(). ` +
|
|
70
|
+
`Expected value to be equal or less than ${rule.max}.`);
|
|
79
71
|
}
|
|
80
72
|
}
|
|
81
73
|
// INTEGER
|
|
82
74
|
if (rule.integer) {
|
|
83
75
|
if (!Number.isSafeInteger(value)) {
|
|
84
|
-
throw new InvalidArgumentError({
|
|
85
|
-
|
|
86
|
-
param: rule.index,
|
|
87
|
-
argument: value,
|
|
88
|
-
expected: 'an integer',
|
|
89
|
-
});
|
|
76
|
+
throw new InvalidArgumentError(`${String(value)} is not a valid argument to param ${rule.index} on ${propertyKey}(). ` +
|
|
77
|
+
`Expected value to be an integer.`);
|
|
90
78
|
}
|
|
91
79
|
}
|
|
92
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-validaton.js","sourceRoot":"","sources":["../../../../src/core/validation/decorators/number-validaton.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"number-validaton.js","sourceRoot":"","sources":["../../../../src/core/validation/decorators/number-validaton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AASpD,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAmD,CAAC;AAEhF,SAAS,SAAS,CAChB,MAAc,EACd,WAA4B;IAE5B,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACpB,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAa;IAC/B,OAAO,UACL,MAAc,EACd,WAA4B,EAC5B,KAAa;QAEb,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QAEvD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAa;IAC/B,OAAO,UACL,MAAc,EACd,WAA4B,EAC5B,KAAa;QAEb,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QAEvD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,MAAc,EACd,WAA4B,EAC5B,KAAa;IAEb,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAEvD,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,WAAmB;AACnB,8DAA8D;AAC9D,UAAwC;IAExC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAsC,CAAC;IAEnE,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAe;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAE5D,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE/B,MAAM;YACN,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACzC,MAAM,IAAI,oBAAoB,CAC5B,GAAG,MAAM,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,KAAK,OAAO,WAAW,MAAM;wBACrF,8CAA8C,IAAI,CAAC,GAAG,GAAG,CAC5D,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM;YACN,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACzC,MAAM,IAAI,oBAAoB,CAC5B,GAAG,MAAM,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,KAAK,OAAO,WAAW,MAAM;wBACrF,2CAA2C,IAAI,CAAC,GAAG,GAAG,CACzD,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,UAAU;YACV,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,oBAAoB,CAC5B,GAAG,MAAM,CAAC,KAAK,CAAC,qCAAqC,IAAI,CAAC,KAAK,OAAO,WAAW,MAAM;wBACrF,kCAAkC,CACrC,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,41 +1,16 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { QueryConditionsGroupNullable } from '../types';
|
|
2
|
+
import type { ValidationOptions } from '../types/validation-options';
|
|
2
3
|
/**
|
|
3
4
|
* Validates a row in the query.
|
|
4
5
|
*/
|
|
5
|
-
export declare class QueryRowValidator
|
|
6
|
-
|
|
7
|
-
* Row to be validated.
|
|
8
|
-
*/
|
|
9
|
-
private row;
|
|
10
|
-
/**
|
|
11
|
-
* Conditions to be applied to the row.
|
|
12
|
-
*/
|
|
13
|
-
private conditionsObject;
|
|
14
|
-
/**
|
|
15
|
-
* Indicates whether conditions with `null` and `undefined` values should be
|
|
16
|
-
* skipped.
|
|
17
|
-
*/
|
|
18
|
-
private ignoreNullValues;
|
|
19
|
-
/**
|
|
20
|
-
* Initializes the validator.
|
|
21
|
-
*
|
|
22
|
-
* @param row Row to validated.
|
|
23
|
-
* @param config Validator configuration.
|
|
24
|
-
*/
|
|
25
|
-
private constructor();
|
|
26
|
-
/**
|
|
27
|
-
* Validates a row.
|
|
28
|
-
*
|
|
29
|
-
* @param row Row to validated.
|
|
30
|
-
* @param config Validator configuration.
|
|
31
|
-
*/
|
|
32
|
-
static validate<T extends object>(row: T, config: QueryRowValidatorInitializer<T>): boolean;
|
|
6
|
+
export declare class QueryRowValidator {
|
|
7
|
+
#private;
|
|
33
8
|
/**
|
|
34
9
|
* Validates all conditions of the row.
|
|
35
10
|
*
|
|
36
11
|
* @returns Validation result.
|
|
37
12
|
*/
|
|
38
|
-
|
|
13
|
+
static validate<T extends object>(row: T, condition: QueryConditionsGroupNullable<T>, options?: ValidationOptions): boolean;
|
|
39
14
|
/**
|
|
40
15
|
* Validate a condition to a specific column.
|
|
41
16
|
*
|
|
@@ -44,15 +19,6 @@ export declare class QueryRowValidator<T extends object> {
|
|
|
44
19
|
*
|
|
45
20
|
* @returns Validation result.
|
|
46
21
|
*/
|
|
47
|
-
private validateColumnCondition;
|
|
48
|
-
/**
|
|
49
|
-
* Validates an object inside the row.
|
|
50
|
-
*
|
|
51
|
-
* @param obj Object to validated.
|
|
52
|
-
* @param conditionsObject Conditions to be applied to the object.
|
|
53
|
-
*
|
|
54
|
-
* @returns Validation result.
|
|
55
|
-
*/
|
|
56
|
-
private validateInnerObject;
|
|
22
|
+
private static validateColumnCondition;
|
|
57
23
|
}
|
|
58
24
|
//# sourceMappingURL=query-row-validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-row-validator.d.ts","sourceRoot":"","sources":["../../../src/core/validation/query-row-validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"query-row-validator.d.ts","sourceRoot":"","sources":["../../../src/core/validation/query-row-validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;GAEG;AACH,qBAAa,iBAAiB;;IAK5B;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,MAAM,EAC9B,GAAG,EAAE,CAAC,EACN,SAAS,EAAE,4BAA4B,CAAC,CAAC,CAAC,EAC1C,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO;IAiBV;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;CAkCvC"}
|
|
@@ -1,38 +1,28 @@
|
|
|
1
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
2
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
+
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");
|
|
4
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
+
};
|
|
6
|
+
var _a, _QueryRowValidator_defaultOptions;
|
|
1
7
|
import { compareArrays, getEntries } from '../../utils/functions/generic';
|
|
2
8
|
import { isFunction, isObject } from '../../utils/functions/type-guards';
|
|
3
9
|
/**
|
|
4
10
|
* Validates a row in the query.
|
|
5
11
|
*/
|
|
6
12
|
export class QueryRowValidator {
|
|
7
|
-
/**
|
|
8
|
-
* Initializes the validator.
|
|
9
|
-
*
|
|
10
|
-
* @param row Row to validated.
|
|
11
|
-
* @param config Validator configuration.
|
|
12
|
-
*/
|
|
13
|
-
constructor(row, config) {
|
|
14
|
-
this.row = row;
|
|
15
|
-
this.conditionsObject = config.conditionsObject;
|
|
16
|
-
this.ignoreNullValues = config.ignoreNullValues;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Validates a row.
|
|
20
|
-
*
|
|
21
|
-
* @param row Row to validated.
|
|
22
|
-
* @param config Validator configuration.
|
|
23
|
-
*/
|
|
24
|
-
static validate(row, config) {
|
|
25
|
-
const validator = new QueryRowValidator(row, config);
|
|
26
|
-
return validator.validate();
|
|
27
|
-
}
|
|
28
13
|
/**
|
|
29
14
|
* Validates all conditions of the row.
|
|
30
15
|
*
|
|
31
16
|
* @returns Validation result.
|
|
32
17
|
*/
|
|
33
|
-
validate() {
|
|
34
|
-
const
|
|
35
|
-
|
|
18
|
+
static validate(row, condition, options) {
|
|
19
|
+
for (const [column, columnCondition] of getEntries(condition)) {
|
|
20
|
+
const validated = this.validateColumnCondition(row, column, columnCondition, options ?? __classPrivateFieldGet(this, _a, "f", _QueryRowValidator_defaultOptions));
|
|
21
|
+
if (!validated) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return true;
|
|
36
26
|
}
|
|
37
27
|
/**
|
|
38
28
|
* Validate a condition to a specific column.
|
|
@@ -42,12 +32,12 @@ export class QueryRowValidator {
|
|
|
42
32
|
*
|
|
43
33
|
* @returns Validation result.
|
|
44
34
|
*/
|
|
45
|
-
validateColumnCondition(
|
|
46
|
-
if (
|
|
35
|
+
static validateColumnCondition(row, column, condition, options) {
|
|
36
|
+
if (options.ignoreNullValues &&
|
|
47
37
|
(condition === null || condition === undefined)) {
|
|
48
38
|
return true;
|
|
49
39
|
}
|
|
50
|
-
const cellValue =
|
|
40
|
+
const cellValue = row[column];
|
|
51
41
|
if (isFunction(condition)) {
|
|
52
42
|
return condition(cellValue);
|
|
53
43
|
}
|
|
@@ -57,25 +47,13 @@ export class QueryRowValidator {
|
|
|
57
47
|
: false;
|
|
58
48
|
}
|
|
59
49
|
if (isObject(condition)) {
|
|
60
|
-
return isObject(cellValue)
|
|
61
|
-
? this.validateInnerObject(cellValue, condition)
|
|
62
|
-
: false;
|
|
50
|
+
return isObject(cellValue) ? this.validate(cellValue, condition) : false;
|
|
63
51
|
}
|
|
64
52
|
return cellValue === condition;
|
|
65
53
|
}
|
|
66
|
-
/**
|
|
67
|
-
* Validates an object inside the row.
|
|
68
|
-
*
|
|
69
|
-
* @param obj Object to validated.
|
|
70
|
-
* @param conditionsObject Conditions to be applied to the object.
|
|
71
|
-
*
|
|
72
|
-
* @returns Validation result.
|
|
73
|
-
*/
|
|
74
|
-
validateInnerObject(obj, conditionsObject) {
|
|
75
|
-
return QueryRowValidator.validate(obj, {
|
|
76
|
-
conditionsObject,
|
|
77
|
-
ignoreNullValues: this.ignoreNullValues,
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
54
|
}
|
|
55
|
+
_a = QueryRowValidator;
|
|
56
|
+
_QueryRowValidator_defaultOptions = { value: {
|
|
57
|
+
ignoreNullValues: false,
|
|
58
|
+
} };
|
|
81
59
|
//# sourceMappingURL=query-row-validator.js.map
|
|
@@ -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;
|
|
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
|
@@ -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
|
*
|
|
@@ -130,13 +132,21 @@ export declare class Query<T extends object> {
|
|
|
130
132
|
*/
|
|
131
133
|
orderBy(...columns: OrderingColumn<T>[]): this;
|
|
132
134
|
/**
|
|
133
|
-
* Groups the results by a specific key.
|
|
135
|
+
* Groups the results by a specific key or callback.
|
|
134
136
|
*
|
|
135
|
-
* @param key
|
|
137
|
+
* @param key Key to group by.
|
|
136
138
|
*
|
|
137
|
-
* @returns
|
|
139
|
+
* @returns Grouped results.
|
|
138
140
|
*/
|
|
139
141
|
groupBy<K extends keyof T>(key: K): Map<T[K], T[]>;
|
|
142
|
+
/**
|
|
143
|
+
* Groups the results by a specific key or callback.
|
|
144
|
+
*
|
|
145
|
+
* @param callback Callback to group by.
|
|
146
|
+
*
|
|
147
|
+
* @returns Grouped results.
|
|
148
|
+
*/
|
|
149
|
+
groupBy<TGrouper>(callback: (row: T) => TGrouper): Map<TGrouper, T[]>;
|
|
140
150
|
/**
|
|
141
151
|
* Returns the current number of rows.
|
|
142
152
|
*
|
|
@@ -176,6 +186,8 @@ export declare class Query<T extends object> {
|
|
|
176
186
|
/**
|
|
177
187
|
* Returns the values of the first (selected) column of all rows.
|
|
178
188
|
*
|
|
189
|
+
* @param column (Optional) The column to get the values from.
|
|
190
|
+
*
|
|
179
191
|
* @returns Values from the first (selected) column.
|
|
180
192
|
*/
|
|
181
193
|
column(): T[PropOf<T>][];
|
|
@@ -209,11 +221,11 @@ export declare class Query<T extends object> {
|
|
|
209
221
|
*/
|
|
210
222
|
limit(limit: number): this;
|
|
211
223
|
/**
|
|
212
|
-
*
|
|
224
|
+
* Filters the rows according to the given conditions.
|
|
213
225
|
*
|
|
214
|
-
* @
|
|
226
|
+
* @param condition Object or callback function.
|
|
215
227
|
*/
|
|
216
|
-
private
|
|
228
|
+
private filterRows;
|
|
217
229
|
/**
|
|
218
230
|
* Returns the first selected column or the first key of some row.
|
|
219
231
|
*
|
|
@@ -221,19 +233,16 @@ export declare class Query<T extends object> {
|
|
|
221
233
|
*/
|
|
222
234
|
private getFirstColumn;
|
|
223
235
|
/**
|
|
224
|
-
*
|
|
236
|
+
* Returns the rows that should be used in the final results.
|
|
225
237
|
*
|
|
226
|
-
* @
|
|
238
|
+
* @returns Rows within the specified limit.
|
|
227
239
|
*/
|
|
228
|
-
private
|
|
240
|
+
private getLimitedRows;
|
|
229
241
|
/**
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
* @param row Row to validate.
|
|
233
|
-
* @param condition Conditions object.
|
|
242
|
+
* Copies the state of the current query into the given query.
|
|
234
243
|
*
|
|
235
|
-
* @
|
|
244
|
+
* @param query Query to copy the state into.
|
|
236
245
|
*/
|
|
237
|
-
private
|
|
246
|
+
private cloneStateInto;
|
|
238
247
|
}
|
|
239
248
|
//# 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;IAClD;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;IAmBrE;;;;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"}
|