inferred-types 0.48.9 → 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.
- package/dist/inferred-types/tsconfig.tsbuildinfo +1 -1
- package/dist/runtime/tsconfig.tsbuildinfo +1 -1
- package/dist/types/lists/FilterByProp.d.ts +1 -1
- package/dist/types/lists/FilterProps.d.ts +20 -0
- package/dist/types/lists/FilterProps.d.ts.map +1 -0
- package/dist/types/lists/FilterProps.js +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -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 {};
|