Skip to content

Commit 8f0a9cb

Browse files
authored
chore: extend type to list of unknowns in filter (#2508)
1 parent 634570f commit 8f0a9cb

1 file changed

Lines changed: 19 additions & 9 deletions

File tree

src/common/pipes/filter.pipe.ts

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@ interface TransformDeepOptions {
2727
*/
2828
export abstract class FilterPipeAbstract<T = unknown> implements PipeTransform<
2929
{ filter?: string | IFilters<T> } | string | IFilters<T>,
30-
{ filter?: IFilters<T> } | IFilters<T> | unknown
30+
| { filter?: IFilters<T> }
31+
| IFilters<T>
32+
| unknown
33+
| Record<string, unknown>
34+
| unknown[]
3135
> {
3236
abstract applyTransform(value: unknown): unknown;
3337

@@ -81,30 +85,36 @@ export abstract class FilterPipeAbstract<T = unknown> implements PipeTransform<
8185
}
8286

8387
private hasFilterDataProperty(
84-
obj: Record<string, unknown>,
88+
obj: Record<string, unknown> | unknown[],
8589
): obj is { filter: unknown } {
8690
return Object.hasOwn(obj, "filter") && typeof obj.filter !== "function";
8791
}
8892

8993
transform(
90-
inValue: { filter?: string | IFilters<T> } | string | IFilters<T> | unknown,
94+
inValue:
95+
| { filter?: string | IFilters<T> }
96+
| string
97+
| IFilters<T>
98+
| unknown[]
99+
| Record<string, unknown>
100+
| unknown,
91101
):
92102
| {
93103
filter?: IFilters<T>;
94104
}
95105
| IFilters<T>
96-
| unknown {
106+
| unknown
107+
| Record<string, unknown>
108+
| unknown[] {
97109
if (!inValue) return inValue as { filter?: IFilters<T> } | IFilters<T>;
98110
const parsedFilter = FilterPipeAbstract.transformDeep(
99111
FilterPipeAbstract.parseJson(inValue as string),
100112
{ valueFn: (val) => FilterPipeAbstract.parseJson(val as string) },
101-
) as Record<string, unknown>;
113+
) as Record<string, unknown> | unknown[];
102114

103115
if (!this.hasFilterDataProperty(parsedFilter))
104-
return this.applyTransform(parsedFilter) as IFilters<T>;
105-
const transformedFilter = this.applyTransform(
106-
parsedFilter.filter,
107-
) as IFilters<T>;
116+
return this.applyTransform(parsedFilter);
117+
const transformedFilter = this.applyTransform(parsedFilter.filter);
108118
return { ...parsedFilter, filter: transformedFilter };
109119
}
110120
}

0 commit comments

Comments
 (0)