akanjs 2.3.2-rc.4 → 2.3.2-rc.6

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.
@@ -15,26 +15,14 @@ export type FetchTypeOfSignal<Signal extends FetchSignalInput> =
15
15
  ? GetFetchTypeFromEndpoint<EndpCls>
16
16
  : unknown;
17
17
 
18
- type FetchKeysOfSignal<Signal> = Signal extends FetchSignalInput ? keyof FetchTypeOfSignal<Signal> : never;
19
- type FetchKeysOfSignals<Signals extends readonly FetchSignalInput[]> = FetchKeysOfSignal<Signals[number]>;
18
+ type OverrideFetchType<Current, Next> = Omit<Current, keyof Next> & Next;
20
19
 
21
- type LastFetchValue<
22
- Signals extends readonly FetchSignalInput[],
23
- Key extends PropertyKey,
24
- Current = never,
25
- > = Signals extends readonly [infer First extends FetchSignalInput, ...infer Rest extends readonly FetchSignalInput[]]
26
- ? Key extends keyof FetchTypeOfSignal<First>
27
- ? LastFetchValue<Rest, Key, FetchTypeOfSignal<First>[Key]>
28
- : LastFetchValue<Rest, Key, Current>
29
- : Current;
30
-
31
- export type MergeAllFetchTypes<Signals extends readonly FetchSignalInput[]> = [FetchKeysOfSignals<Signals>] extends [
32
- never,
20
+ export type MergeAllFetchTypes<Signals extends readonly FetchSignalInput[]> = Signals extends readonly [
21
+ infer First extends FetchSignalInput,
22
+ ...infer Rest extends readonly FetchSignalInput[],
33
23
  ]
34
- ? unknown
35
- : {
36
- [Key in FetchKeysOfSignals<Signals>]: LastFetchValue<Signals, Key>;
37
- };
24
+ ? OverrideFetchType<FetchTypeOfSignal<First>, MergeAllFetchTypes<Rest>>
25
+ : unknown;
38
26
 
39
27
  export type FetchClientType<Signals extends readonly FetchSignalInput[]> = FetchProxy<
40
28
  MergeAllFetchTypes<Signals>,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akanjs",
3
- "version": "2.3.2-rc.4",
3
+ "version": "2.3.2-rc.6",
4
4
  "sourceType": "module",
5
5
  "type": "module",
6
6
  "publishConfig": {
package/service/types.ts CHANGED
@@ -70,12 +70,12 @@ export type DatabaseService<
70
70
  __exists(query?: _QueryOfDoc): Promise<string | null>;
71
71
  __count(query?: _QueryOfDoc): Promise<number>;
72
72
  __insight(query?: _QueryOfDoc): Promise<Insight>;
73
- _preCreate?(data: _DataInputOfDoc): PromiseOrObject<_DataInputOfDoc>;
74
- _postCreate?(doc: Doc): Promise<Doc> | Doc;
75
- _preUpdate?(id: string, data: Partial<Doc>): PromiseOrObject<Partial<Doc>>;
76
- _postUpdate?(doc: Doc): Promise<Doc> | Doc;
77
- _preRemove?(id: string): Promise<void> | void;
78
- _postRemove?(doc: Doc): Promise<Doc> | Doc;
73
+ _preCreate?(data: _DataInputOfDoc): PromiseOrObject<_DataInputOfDoc> | never;
74
+ _postCreate?(doc: Doc): Promise<Doc> | Doc | never;
75
+ _preUpdate?(id: string, data: Partial<Doc>): PromiseOrObject<Partial<Doc>> | never;
76
+ _postUpdate?(doc: Doc): Promise<Doc> | Doc | never;
77
+ _preRemove?(id: string): Promise<void> | void | never;
78
+ _postRemove?(doc: Doc): Promise<Doc> | Doc | never;
79
79
  __libsPreCreate: (data: _DataInputOfDoc) => Promise<_DataInputOfDoc>;
80
80
  __libsPostCreate: (doc: Doc) => Promise<Doc>;
81
81
  __libsPreUpdate: (id: string, data: Partial<Doc>) => Promise<Partial<Doc>>;
@@ -10,13 +10,10 @@ export type FetchTypeOfSignal<Signal extends FetchSignalInput> = Signal extends
10
10
  } ? GetFetchTypeFromEndpoint<EndpCls> & GetFetchTypeFromSlice<SlceCls> : Signal extends {
11
11
  endpoint: infer EndpCls extends EndpointCls;
12
12
  } ? GetFetchTypeFromEndpoint<EndpCls> : unknown;
13
- type FetchKeysOfSignal<Signal> = Signal extends FetchSignalInput ? keyof FetchTypeOfSignal<Signal> : never;
14
- type FetchKeysOfSignals<Signals extends readonly FetchSignalInput[]> = FetchKeysOfSignal<Signals[number]>;
15
- type LastFetchValue<Signals extends readonly FetchSignalInput[], Key extends PropertyKey, Current = never> = Signals extends readonly [infer First extends FetchSignalInput, ...infer Rest extends readonly FetchSignalInput[]] ? Key extends keyof FetchTypeOfSignal<First> ? LastFetchValue<Rest, Key, FetchTypeOfSignal<First>[Key]> : LastFetchValue<Rest, Key, Current> : Current;
16
- export type MergeAllFetchTypes<Signals extends readonly FetchSignalInput[]> = [FetchKeysOfSignals<Signals>] extends [
17
- never
18
- ] ? unknown : {
19
- [Key in FetchKeysOfSignals<Signals>]: LastFetchValue<Signals, Key>;
20
- };
13
+ type OverrideFetchType<Current, Next> = Omit<Current, keyof Next> & Next;
14
+ export type MergeAllFetchTypes<Signals extends readonly FetchSignalInput[]> = Signals extends readonly [
15
+ infer First extends FetchSignalInput,
16
+ ...infer Rest extends readonly FetchSignalInput[]
17
+ ] ? OverrideFetchType<FetchTypeOfSignal<First>, MergeAllFetchTypes<Rest>> : unknown;
21
18
  export type FetchClientType<Signals extends readonly FetchSignalInput[]> = FetchProxy<MergeAllFetchTypes<Signals>, GetSliceMetaObjFromDatabaseSignals<Signals>>;
22
19
  export {};
@@ -21,12 +21,12 @@ export type DatabaseService<T extends string = string, Input = any, Doc = any, O
21
21
  __exists(query?: _QueryOfDoc): Promise<string | null>;
22
22
  __count(query?: _QueryOfDoc): Promise<number>;
23
23
  __insight(query?: _QueryOfDoc): Promise<Insight>;
24
- _preCreate?(data: _DataInputOfDoc): PromiseOrObject<_DataInputOfDoc>;
25
- _postCreate?(doc: Doc): Promise<Doc> | Doc;
26
- _preUpdate?(id: string, data: Partial<Doc>): PromiseOrObject<Partial<Doc>>;
27
- _postUpdate?(doc: Doc): Promise<Doc> | Doc;
28
- _preRemove?(id: string): Promise<void> | void;
29
- _postRemove?(doc: Doc): Promise<Doc> | Doc;
24
+ _preCreate?(data: _DataInputOfDoc): PromiseOrObject<_DataInputOfDoc> | never;
25
+ _postCreate?(doc: Doc): Promise<Doc> | Doc | never;
26
+ _preUpdate?(id: string, data: Partial<Doc>): PromiseOrObject<Partial<Doc>> | never;
27
+ _postUpdate?(doc: Doc): Promise<Doc> | Doc | never;
28
+ _preRemove?(id: string): Promise<void> | void | never;
29
+ _postRemove?(doc: Doc): Promise<Doc> | Doc | never;
30
30
  __libsPreCreate: (data: _DataInputOfDoc) => Promise<_DataInputOfDoc>;
31
31
  __libsPostCreate: (doc: Doc) => Promise<Doc>;
32
32
  __libsPreUpdate: (id: string, data: Partial<Doc>) => Promise<Partial<Doc>>;