@@ -27,7 +27,11 @@ interface TransformDeepOptions {
2727 */
2828export 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