inferred-types 0.48.8 → 0.49.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.
@@ -30,7 +30,7 @@ type Process<TList extends unknown[] | readonly unknown[], TComparator, TProp ex
30
30
  * extends _any_ of the `TFilter` entries
31
31
  * - any non-container based value in `TList` will be discarded
32
32
  *
33
- * **Related:** `RetainByProp`, `Filter`, `RetainFromList`, `RemoveFromList`
33
+ * **Related:** `RetainByProp`, `Filter`, `RetainFromList`, `RemoveFromList`, `FilterProps`
34
34
  */
35
35
  export type FilterByProp<TList extends readonly unknown[], TComparator, TProp extends string, TOp extends ComparatorOperation = "extends"> = IsDotPath<TProp> extends false ? Throw<"invalid-dot-path", `the property value TProp must be a valid dotpath but "${TProp}" is not valid!`> : TList extends readonly unknown[] ? IfNever<TComparator, RemoveNever<TList>, If<IsArray<TComparator>, Process<TList, TupleToUnion<TComparator>, TProp, TOp>, Process<TList, TComparator, TProp, TOp>>> : never;
36
36
  export {};
@@ -0,0 +1,20 @@
1
+ import { Dictionary, EmptyObject, ObjectKey } from "../base-types";
2
+ import { ComparatorOperation, Compare } from "../boolean-logic";
3
+ import { Keys } from "../dictionary/Keys";
4
+ import { ExpandDictionary } from "../literals";
5
+ import { AfterFirst } from "./AfterFirst";
6
+ import { First } from "./First";
7
+ type Process<TObj extends Dictionary, TComparator, TOp extends ComparatorOperation, TKeys extends readonly ObjectKey[], TResult extends Dictionary = EmptyObject> = [] extends TKeys ? ExpandDictionary<TResult> : Process<TObj, TComparator, TOp, AfterFirst<TKeys>, Compare<TObj[First<TKeys>], TOp, TComparator> extends true ? TResult : TResult & Record<First<TKeys>, TObj[First<TKeys>]>>;
8
+ /**
9
+ * **FilterProps**`<TObj, TComparator, [TOp]>`
10
+ *
11
+ * Type utility which targets dictionary objects and filters
12
+ * out all key/value pairs which _extend_ the type `TComparator`.
13
+ *
14
+ * - by default the comparison operation -- dictated by `TOp` -- is
15
+ * "extends" but you can change the comparison operation to
16
+ * `equals`, `startsWith`, `endsWith`, ...
17
+ */
18
+ export type FilterProps<TObj extends Dictionary, TComparator, TOp extends ComparatorOperation = "extends"> = Process<TObj, TComparator, TOp, Keys<TObj>>;
19
+ export {};
20
+ //# sourceMappingURL=FilterProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterProps.d.ts","sourceRoot":"","sources":["../../../src/types/lists/FilterProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,KAAK,OAAO,CACZ,IAAI,SAAS,UAAU,EACvB,WAAW,EACX,GAAG,SAAS,mBAAmB,EAC/B,KAAK,SAAS,SAAS,SAAS,EAAE,EAClC,OAAO,SAAS,UAAU,GAAG,WAAW,IACpC,EAAE,SAAS,KAAK,GAClB,gBAAgB,CAAE,OAAO,CAAE,GAC3B,OAAO,CACL,IAAI,EACJ,WAAW,EACX,GAAG,EACH,UAAU,CAAC,KAAK,CAAC,EACjB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,SAAS,IAAI,GACtD,OAAO,GACP,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACvD,CAAC;AAEJ;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,CACrB,IAAI,SAAS,UAAU,EACvB,WAAW,EACX,GAAG,SAAS,mBAAmB,GAAG,SAAS,IACzC,OAAO,CACT,IAAI,EACJ,WAAW,EACX,GAAG,EACH,IAAI,CAAC,IAAI,CAAC,CACX,CAAC"}
@@ -0,0 +1 @@
1
+ export {};