@beabee/beabee-common 1.10.6 → 1.10.8
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/dist/cjs/utils/rules.js
CHANGED
|
@@ -31,9 +31,11 @@ function validateRule(filters, rule) {
|
|
|
31
31
|
if (expectedArgs !== rule.value.length) {
|
|
32
32
|
throw new error_1.InvalidRule(rule, `Invalid operator argument count: ${rule.operator} needs ${expectedArgs}, ${rule.value.length} given`);
|
|
33
33
|
}
|
|
34
|
-
const expectedType = filter.type === "
|
|
35
|
-
?
|
|
36
|
-
: "
|
|
34
|
+
const expectedType = filter.type === "custom"
|
|
35
|
+
? typeof rule.value[0]
|
|
36
|
+
: filter.type === "boolean" || filter.type === "number"
|
|
37
|
+
? filter.type
|
|
38
|
+
: "string";
|
|
37
39
|
if (rule.value.some((v) => typeof v !== expectedType)) {
|
|
38
40
|
throw new error_1.InvalidRule(rule, `Invalid operator argument type: ${rule.operator} needs ${expectedType}, ${rule.value.map((v) => typeof v)} given`);
|
|
39
41
|
}
|
|
@@ -41,6 +43,10 @@ function validateRule(filters, rule) {
|
|
|
41
43
|
rule.value.some((v) => !(0, date_1.isValidDate)(v))) {
|
|
42
44
|
throw new error_1.InvalidRule(rule, `Invalid operator argument: date type needs valid absolute or relative date, ${rule.value} given`);
|
|
43
45
|
}
|
|
46
|
+
if ((filter.type === "enum" || filter.type === "array") &&
|
|
47
|
+
rule.value.some((v) => filter.options?.indexOf(v) === -1)) {
|
|
48
|
+
throw new error_1.InvalidRule(rule, `Invalid operator argument: ${filter.type} type expected ${filter.options}, ${rule.value} given`);
|
|
49
|
+
}
|
|
44
50
|
return {
|
|
45
51
|
field: fieldName,
|
|
46
52
|
param: fieldParam,
|
package/dist/esm/utils/rules.js
CHANGED
|
@@ -27,9 +27,11 @@ export function validateRule(filters, rule) {
|
|
|
27
27
|
if (expectedArgs !== rule.value.length) {
|
|
28
28
|
throw new InvalidRule(rule, `Invalid operator argument count: ${rule.operator} needs ${expectedArgs}, ${rule.value.length} given`);
|
|
29
29
|
}
|
|
30
|
-
const expectedType = filter.type === "
|
|
31
|
-
?
|
|
32
|
-
: "
|
|
30
|
+
const expectedType = filter.type === "custom"
|
|
31
|
+
? typeof rule.value[0]
|
|
32
|
+
: filter.type === "boolean" || filter.type === "number"
|
|
33
|
+
? filter.type
|
|
34
|
+
: "string";
|
|
33
35
|
if (rule.value.some((v) => typeof v !== expectedType)) {
|
|
34
36
|
throw new InvalidRule(rule, `Invalid operator argument type: ${rule.operator} needs ${expectedType}, ${rule.value.map((v) => typeof v)} given`);
|
|
35
37
|
}
|
|
@@ -37,6 +39,10 @@ export function validateRule(filters, rule) {
|
|
|
37
39
|
rule.value.some((v) => !isValidDate(v))) {
|
|
38
40
|
throw new InvalidRule(rule, `Invalid operator argument: date type needs valid absolute or relative date, ${rule.value} given`);
|
|
39
41
|
}
|
|
42
|
+
if ((filter.type === "enum" || filter.type === "array") &&
|
|
43
|
+
rule.value.some((v) => filter.options?.indexOf(v) === -1)) {
|
|
44
|
+
throw new InvalidRule(rule, `Invalid operator argument: ${filter.type} type expected ${filter.options}, ${rule.value} given`);
|
|
45
|
+
}
|
|
40
46
|
return {
|
|
41
47
|
field: fieldName,
|
|
42
48
|
param: fieldParam,
|
|
@@ -31,14 +31,18 @@ interface BaseFilterArgs {
|
|
|
31
31
|
type: FilterType;
|
|
32
32
|
nullable?: boolean;
|
|
33
33
|
}
|
|
34
|
+
export interface ArrayFilterArgs<T extends readonly string[] = readonly string[]> extends BaseFilterArgs {
|
|
35
|
+
type: "array";
|
|
36
|
+
options?: T;
|
|
37
|
+
}
|
|
34
38
|
export interface EnumFilterArgs<T extends readonly string[] = readonly string[]> extends BaseFilterArgs {
|
|
35
39
|
type: "enum";
|
|
36
40
|
options: T;
|
|
37
41
|
}
|
|
38
42
|
export interface OtherFilterArgs extends BaseFilterArgs {
|
|
39
|
-
type: Exclude<FilterType, "enum">;
|
|
43
|
+
type: Exclude<FilterType, "array" | "enum">;
|
|
40
44
|
}
|
|
41
|
-
export type FilterArgs = EnumFilterArgs | OtherFilterArgs;
|
|
45
|
+
export type FilterArgs = ArrayFilterArgs | EnumFilterArgs | OtherFilterArgs;
|
|
42
46
|
export type Filters<T extends string = string> = Record<T, FilterArgs>;
|
|
43
47
|
export interface RuleOperatorParams {
|
|
44
48
|
args: number;
|