@everipedia/iq-utils 0.1.1 → 0.1.2
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# @everipedia/iq-utils
|
|
2
2
|
|
|
3
|
+
## 0.1.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 81787e9: # Changes
|
|
8
|
+
|
|
9
|
+
- Adds RecordTypePicker which works for any type
|
|
10
|
+
|
|
11
|
+
# Example
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
// The NewWikiType will only have user, title, content, summary and user only has id, profile with username and avatar.
|
|
15
|
+
type NewWikiType = RecordTypePicker<
|
|
16
|
+
Wiki,
|
|
17
|
+
{
|
|
18
|
+
user: {
|
|
19
|
+
id;
|
|
20
|
+
profile: {
|
|
21
|
+
username;
|
|
22
|
+
avatar;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
'title' | 'content' | 'summary'
|
|
27
|
+
>;
|
|
28
|
+
```
|
|
29
|
+
|
|
3
30
|
## 0.1.1
|
|
4
31
|
|
|
5
32
|
### Patch Changes
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Wiki } from './wiki';
|
|
2
2
|
type DeepPartial<T> = {
|
|
3
3
|
[P in keyof T]?: DeepPartial<T[P]>;
|
|
4
4
|
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
images: Image[];
|
|
9
|
-
media: Media[];
|
|
10
|
-
user: User;
|
|
11
|
-
metadata: MData[];
|
|
12
|
-
linkedWikis?: LinkedWikis;
|
|
13
|
-
language: LanguagesISOEnum;
|
|
14
|
-
author: Author;
|
|
5
|
+
type PrimitiveType = number | string | boolean | symbol | null | undefined;
|
|
6
|
+
export type RecordTypeNonPrimitive<T> = DeepPartial<{
|
|
7
|
+
[K in keyof T]: [T[K]] extends [PrimitiveType] ? never : T[K];
|
|
15
8
|
}>;
|
|
16
|
-
export type
|
|
9
|
+
export type RecordTypePicker<T extends object, NonPrimitiveOverrides extends RecordTypeNonPrimitive<T>, Keys extends keyof T> = NonPrimitiveOverrides & Pick<T, Exclude<Keys, keyof NonPrimitiveOverrides>>;
|
|
10
|
+
export type WikiBuilder<NonPrimitiveOverrides extends RecordTypeNonPrimitive<Wiki>, Keys extends keyof Wiki> = RecordTypePicker<Wiki, NonPrimitiveOverrides, Keys>;
|
|
17
11
|
export {};
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Wiki } from './wiki';
|
|
2
2
|
type DeepPartial<T> = {
|
|
3
3
|
[P in keyof T]?: DeepPartial<T[P]>;
|
|
4
4
|
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
images: Image[];
|
|
9
|
-
media: Media[];
|
|
10
|
-
user: User;
|
|
11
|
-
metadata: MData[];
|
|
12
|
-
linkedWikis?: LinkedWikis;
|
|
13
|
-
language: LanguagesISOEnum;
|
|
14
|
-
author: Author;
|
|
5
|
+
type PrimitiveType = number | string | boolean | symbol | null | undefined;
|
|
6
|
+
export type RecordTypeNonPrimitive<T> = DeepPartial<{
|
|
7
|
+
[K in keyof T]: [T[K]] extends [PrimitiveType] ? never : T[K];
|
|
15
8
|
}>;
|
|
16
|
-
export type
|
|
9
|
+
export type RecordTypePicker<T extends object, NonPrimitiveOverrides extends RecordTypeNonPrimitive<T>, Keys extends keyof T> = NonPrimitiveOverrides & Pick<T, Exclude<Keys, keyof NonPrimitiveOverrides>>;
|
|
10
|
+
export type WikiBuilder<NonPrimitiveOverrides extends RecordTypeNonPrimitive<Wiki>, Keys extends keyof Wiki> = RecordTypePicker<Wiki, NonPrimitiveOverrides, Keys>;
|
|
17
11
|
export {};
|