@spoosh/angular 0.10.1 → 0.10.3
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/index.d.ts +194 -447
- package/dist/index.js +100 -92
- package/package.json +4 -4
- package/dist/index.d.mts +0 -628
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,146 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { QueueSelectorClient, SpooshResponse, QueueItem, QueueStats, SpooshBody, PluginArray, StateManager, EventEmitter, PluginExecutor, MethodOptionsMap, CoreRequestOptionsBase, SpooshPlugin, PluginTypeConfig, ResolveTypes, ResolverContext, ResolveResultTypes, ReadClient, TagOptions, InfiniteNextContext, InfinitePrevContext, InfinitePage, ExtractTriggerQuery as ExtractTriggerQuery$2, ExtractTriggerBody as ExtractTriggerBody$2, ExtractTriggerParams as ExtractTriggerParams$2, InfiniteRequestOptions, WriteSelectorClient, MergePluginInstanceApi } from '@spoosh/core';
|
|
1
|
+
import { PluginArray, StateManager, EventEmitter, PluginExecutor, MethodOptionsMap, CoreRequestOptionsBase, ReadClient, TagOptions, SpooshResponse, ExtractTriggerQuery as ExtractTriggerQuery$2, ExtractTriggerBody as ExtractTriggerBody$2, ExtractTriggerParams as ExtractTriggerParams$2, WriteSelectorClient, SpooshBody, QueueSelectorClient, QueueItem, QueueStats, InfiniteNextContext, InfinitePrevContext, InfinitePage, ResolveTypes, MergePluginOptions, ResolverContext, ResolveResultTypes, MergePluginResults, InfiniteRequestOptions, MergePluginInstanceApi } from '@spoosh/core';
|
|
3
2
|
import { Signal } from '@angular/core';
|
|
4
3
|
|
|
5
|
-
|
|
4
|
+
interface SpooshInstanceShape<TApi, TSchema, TDefaultError, TPlugins extends PluginArray> {
|
|
5
|
+
api: TApi;
|
|
6
|
+
stateManager: StateManager;
|
|
7
|
+
eventEmitter: EventEmitter;
|
|
8
|
+
pluginExecutor: PluginExecutor;
|
|
9
|
+
_types: {
|
|
10
|
+
schema: TSchema;
|
|
11
|
+
defaultError: TDefaultError;
|
|
12
|
+
plugins: TPlugins;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
type EnabledOption = boolean | (() => boolean);
|
|
16
|
+
type QueryRequestOptions = CoreRequestOptionsBase;
|
|
17
|
+
type MutationRequestOptions = CoreRequestOptionsBase;
|
|
18
|
+
type AngularOptionsMap = MethodOptionsMap<QueryRequestOptions, MutationRequestOptions>;
|
|
19
|
+
|
|
20
|
+
type SuccessResponse<T> = Extract<T, {
|
|
21
|
+
data: unknown;
|
|
22
|
+
error?: undefined;
|
|
23
|
+
}>;
|
|
24
|
+
type ErrorResponse<T> = Extract<T, {
|
|
25
|
+
error: unknown;
|
|
26
|
+
data?: undefined;
|
|
27
|
+
}>;
|
|
28
|
+
type ExtractMethodData<T> = T extends (...args: never[]) => infer R ? SuccessResponse<Awaited<R>> extends {
|
|
29
|
+
data: infer D;
|
|
30
|
+
} ? D : unknown : unknown;
|
|
31
|
+
type ExtractMethodError<T> = T extends (...args: never[]) => infer R ? ErrorResponse<Awaited<R>> extends {
|
|
32
|
+
error: infer E;
|
|
33
|
+
} ? E : unknown : unknown;
|
|
34
|
+
type ExtractMethodOptions<T> = T extends (options?: infer O) => Promise<unknown> ? O : never;
|
|
35
|
+
type AwaitedReturnType<T> = T extends (...args: never[]) => infer R ? Awaited<R> : never;
|
|
36
|
+
type SuccessReturnType<T> = SuccessResponse<AwaitedReturnType<T>>;
|
|
37
|
+
type ExtractResponseQuery<T> = SuccessReturnType<T> extends {
|
|
38
|
+
input: {
|
|
39
|
+
query: infer Q;
|
|
40
|
+
};
|
|
41
|
+
} ? Q : never;
|
|
42
|
+
type ExtractResponseBody<T> = SuccessReturnType<T> extends {
|
|
43
|
+
input: {
|
|
44
|
+
body: infer B;
|
|
45
|
+
};
|
|
46
|
+
} ? B : never;
|
|
47
|
+
type ExtractResponseParamNames<T> = SuccessReturnType<T> extends {
|
|
48
|
+
input: {
|
|
49
|
+
params: Record<infer K, unknown>;
|
|
50
|
+
};
|
|
51
|
+
} ? K extends string ? K : never : never;
|
|
52
|
+
type ExtractMethodQuery<T> = ExtractMethodOptions<T> extends {
|
|
53
|
+
query: infer Q;
|
|
54
|
+
} ? Q : never;
|
|
55
|
+
type ExtractMethodBody<T> = ExtractMethodOptions<T> extends {
|
|
56
|
+
body: infer B;
|
|
57
|
+
} ? B : never;
|
|
58
|
+
|
|
59
|
+
interface BaseReadOptions extends TagOptions {
|
|
60
|
+
enabled?: EnabledOption;
|
|
61
|
+
}
|
|
62
|
+
type QueryField<TQuery> = [TQuery] extends [never] ? object : undefined extends TQuery ? {
|
|
63
|
+
query?: Exclude<TQuery, undefined>;
|
|
64
|
+
} : {
|
|
65
|
+
query: TQuery;
|
|
66
|
+
};
|
|
67
|
+
type BodyField<TBody> = [TBody] extends [never] ? object : undefined extends TBody ? {
|
|
68
|
+
body?: Exclude<TBody, undefined>;
|
|
69
|
+
} : {
|
|
70
|
+
body: TBody;
|
|
71
|
+
};
|
|
72
|
+
type ParamsField<TParamNames extends string> = [TParamNames] extends [never] ? object : {
|
|
73
|
+
params: Record<TParamNames, string | number>;
|
|
74
|
+
};
|
|
75
|
+
type ReadInputFields<TQuery, TBody, TParamNames extends string> = QueryField<TQuery> & BodyField<TBody> & ParamsField<TParamNames>;
|
|
76
|
+
type ResponseInputFields<TQuery, TBody, TParamNames extends string> = [
|
|
77
|
+
TQuery,
|
|
78
|
+
TBody,
|
|
79
|
+
TParamNames
|
|
80
|
+
] extends [never, never, never] ? object : {
|
|
81
|
+
input: ReadInputFields<TQuery, TBody, TParamNames>;
|
|
82
|
+
};
|
|
83
|
+
type AwaitedReturnTypeTrigger<T> = T extends (...args: never[]) => infer R ? Awaited<R> : never;
|
|
6
84
|
type ExtractInputFromResponse$3<T> = T extends {
|
|
7
85
|
input: infer I;
|
|
8
86
|
} ? I : never;
|
|
87
|
+
type TriggerOptions<T> = ExtractInputFromResponse$3<AwaitedReturnTypeTrigger<T>> extends infer I ? [I] extends [never] ? {
|
|
88
|
+
force?: boolean;
|
|
89
|
+
} : ExtractTriggerQuery$2<I> & ExtractTriggerBody$2<I> & ExtractTriggerParams$2<I> & {
|
|
90
|
+
/** Force refetch even if data is cached */
|
|
91
|
+
force?: boolean;
|
|
92
|
+
} : {
|
|
93
|
+
force?: boolean;
|
|
94
|
+
};
|
|
95
|
+
interface BaseReadResult<TData, TError, TPluginResult = Record<string, unknown>, TTriggerOptions = {
|
|
96
|
+
force?: boolean;
|
|
97
|
+
}> {
|
|
98
|
+
data: Signal<TData | undefined>;
|
|
99
|
+
error: Signal<TError | undefined>;
|
|
100
|
+
loading: Signal<boolean>;
|
|
101
|
+
fetching: Signal<boolean>;
|
|
102
|
+
meta: Signal<TPluginResult>;
|
|
103
|
+
abort: () => void;
|
|
104
|
+
/**
|
|
105
|
+
* Manually trigger a fetch.
|
|
106
|
+
*
|
|
107
|
+
* @param options - Optional override options (query, body, params) to use for this specific request
|
|
108
|
+
*/
|
|
109
|
+
trigger: (options?: TTriggerOptions) => Promise<SpooshResponse<TData, TError>>;
|
|
110
|
+
}
|
|
111
|
+
type ReadApiClient<TSchema, TDefaultError> = ReadClient<TSchema, TDefaultError>;
|
|
112
|
+
|
|
113
|
+
type OptionalQueryField<TQuery> = [TQuery] extends [never] ? object : undefined extends TQuery ? {
|
|
114
|
+
query?: Exclude<TQuery, undefined>;
|
|
115
|
+
} : {
|
|
116
|
+
query: TQuery;
|
|
117
|
+
};
|
|
118
|
+
type OptionalBodyField<TBody> = [TBody] extends [never] ? object : undefined extends TBody ? {
|
|
119
|
+
body?: Exclude<TBody, undefined>;
|
|
120
|
+
} : {
|
|
121
|
+
body: TBody;
|
|
122
|
+
};
|
|
123
|
+
type OptionalParamsField<TParamNames extends string> = [TParamNames] extends [
|
|
124
|
+
never
|
|
125
|
+
] ? object : {
|
|
126
|
+
params: Record<TParamNames, string | number>;
|
|
127
|
+
};
|
|
128
|
+
type InputFields<TQuery, TBody, TParamNames extends string> = OptionalQueryField<TQuery> & OptionalBodyField<TBody> & OptionalParamsField<TParamNames>;
|
|
129
|
+
type WriteResponseInputFields<TQuery, TBody, TParamNames extends string> = [TQuery, TBody, TParamNames] extends [never, never, never] ? object : {
|
|
130
|
+
input: Signal<InputFields<TQuery, TBody, TParamNames> | undefined>;
|
|
131
|
+
};
|
|
132
|
+
interface BaseWriteResult<TData, TError, TOptions, TPluginResult = Record<string, unknown>> {
|
|
133
|
+
trigger: (options?: TOptions) => Promise<SpooshResponse<TData, TError>>;
|
|
134
|
+
data: Signal<TData | undefined>;
|
|
135
|
+
error: Signal<TError | undefined>;
|
|
136
|
+
loading: Signal<boolean>;
|
|
137
|
+
meta: Signal<TPluginResult>;
|
|
138
|
+
abort: () => void;
|
|
139
|
+
}
|
|
140
|
+
type TriggerAwaitedReturn$2<T> = T extends (...args: any[]) => infer R ? Awaited<R> : never;
|
|
141
|
+
type ExtractInputFromResponse$2<T> = T extends {
|
|
142
|
+
input: infer I;
|
|
143
|
+
} ? I : never;
|
|
9
144
|
type ExtractTriggerQuery$1<I> = I extends {
|
|
10
145
|
query: infer Q;
|
|
11
146
|
} ? undefined extends Q ? {
|
|
@@ -25,11 +160,37 @@ type ExtractTriggerParams$1<I> = I extends {
|
|
|
25
160
|
} ? {
|
|
26
161
|
params: P;
|
|
27
162
|
} : unknown;
|
|
163
|
+
type WriteTriggerInput<T> = ExtractInputFromResponse$2<TriggerAwaitedReturn$2<T>> extends infer I ? [I] extends [never] ? object : ExtractTriggerQuery$1<I> & ExtractTriggerBody$1<I> & ExtractTriggerParams$1<I> : object;
|
|
164
|
+
type WriteApiClient<TSchema, TDefaultError> = WriteSelectorClient<TSchema, TDefaultError>;
|
|
165
|
+
|
|
166
|
+
type TriggerAwaitedReturn$1<T> = T extends (...args: any[]) => infer R ? Awaited<R> : never;
|
|
167
|
+
type ExtractInputFromResponse$1<T> = T extends {
|
|
168
|
+
input: infer I;
|
|
169
|
+
} ? I : never;
|
|
170
|
+
type ExtractTriggerQuery<I> = I extends {
|
|
171
|
+
query: infer Q;
|
|
172
|
+
} ? undefined extends Q ? {
|
|
173
|
+
query?: Exclude<Q, undefined>;
|
|
174
|
+
} : {
|
|
175
|
+
query: Q;
|
|
176
|
+
} : unknown;
|
|
177
|
+
type ExtractTriggerBody<I> = I extends {
|
|
178
|
+
body: infer B;
|
|
179
|
+
} ? undefined extends B ? {
|
|
180
|
+
body?: Exclude<B, undefined> | SpooshBody<Exclude<B, undefined>>;
|
|
181
|
+
} : {
|
|
182
|
+
body: B | SpooshBody<B>;
|
|
183
|
+
} : unknown;
|
|
184
|
+
type ExtractTriggerParams<I> = I extends {
|
|
185
|
+
params: infer P;
|
|
186
|
+
} ? {
|
|
187
|
+
params: P;
|
|
188
|
+
} : unknown;
|
|
28
189
|
type QueueTriggerBase = {
|
|
29
190
|
/** Custom ID for this queue item. If not provided, one will be auto-generated. */
|
|
30
191
|
id?: string;
|
|
31
192
|
};
|
|
32
|
-
type QueueTriggerInput<T> = ExtractInputFromResponse$
|
|
193
|
+
type QueueTriggerInput<T> = ExtractInputFromResponse$1<TriggerAwaitedReturn$1<T>> extends infer I ? [I] extends [never] ? QueueTriggerBase : QueueTriggerBase & ExtractTriggerQuery<I> & ExtractTriggerBody<I> & ExtractTriggerParams<I> : QueueTriggerBase;
|
|
33
194
|
/**
|
|
34
195
|
* Options for injectQueue.
|
|
35
196
|
*/
|
|
@@ -71,148 +232,15 @@ interface BaseQueueResult<TData, TError, TTriggerInput, TMeta = object> {
|
|
|
71
232
|
*/
|
|
72
233
|
type QueueApiClient<TSchema, TDefaultError> = QueueSelectorClient<TSchema, TDefaultError>;
|
|
73
234
|
|
|
74
|
-
type
|
|
75
|
-
|
|
76
|
-
error?: undefined;
|
|
77
|
-
}>;
|
|
78
|
-
type ErrorResponse<T> = Extract<T, {
|
|
79
|
-
error: unknown;
|
|
80
|
-
data?: undefined;
|
|
81
|
-
}>;
|
|
82
|
-
type ExtractMethodData<T> = T extends (...args: never[]) => infer R ? SuccessResponse<Awaited<R>> extends {
|
|
83
|
-
data: infer D;
|
|
84
|
-
} ? D : unknown : unknown;
|
|
85
|
-
type ExtractMethodError<T> = T extends (...args: never[]) => infer R ? ErrorResponse<Awaited<R>> extends {
|
|
86
|
-
error: infer E;
|
|
87
|
-
} ? E : unknown : unknown;
|
|
88
|
-
type ExtractMethodOptions<T> = T extends (options?: infer O) => Promise<unknown> ? O : never;
|
|
89
|
-
type AwaitedReturnType<T> = T extends (...args: never[]) => infer R ? Awaited<R> : never;
|
|
90
|
-
type SuccessReturnType<T> = SuccessResponse<AwaitedReturnType<T>>;
|
|
91
|
-
type ExtractResponseQuery<T> = SuccessReturnType<T> extends {
|
|
92
|
-
input: {
|
|
93
|
-
query: infer Q;
|
|
94
|
-
};
|
|
95
|
-
} ? Q : never;
|
|
96
|
-
type ExtractResponseBody<T> = SuccessReturnType<T> extends {
|
|
97
|
-
input: {
|
|
98
|
-
body: infer B;
|
|
99
|
-
};
|
|
100
|
-
} ? B : never;
|
|
101
|
-
type ExtractResponseParamNames<T> = SuccessReturnType<T> extends {
|
|
102
|
-
input: {
|
|
103
|
-
params: Record<infer K, unknown>;
|
|
104
|
-
};
|
|
105
|
-
} ? K extends string ? K : never : never;
|
|
106
|
-
type ExtractMethodQuery<T> = ExtractMethodOptions<T> extends {
|
|
107
|
-
query: infer Q;
|
|
108
|
-
} ? Q : never;
|
|
109
|
-
type ExtractMethodBody<T> = ExtractMethodOptions<T> extends {
|
|
110
|
-
body: infer B;
|
|
111
|
-
} ? B : never;
|
|
112
|
-
|
|
113
|
-
interface SpooshInstanceShape<TApi, TSchema, TDefaultError, TPlugins extends PluginArray> {
|
|
114
|
-
api: TApi;
|
|
115
|
-
stateManager: StateManager;
|
|
116
|
-
eventEmitter: EventEmitter;
|
|
117
|
-
pluginExecutor: PluginExecutor;
|
|
118
|
-
_types: {
|
|
119
|
-
schema: TSchema;
|
|
120
|
-
defaultError: TDefaultError;
|
|
121
|
-
plugins: TPlugins;
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
type EnabledOption = boolean | (() => boolean);
|
|
125
|
-
type QueryRequestOptions = CoreRequestOptionsBase;
|
|
126
|
-
type MutationRequestOptions = CoreRequestOptionsBase;
|
|
127
|
-
type AngularOptionsMap = MethodOptionsMap<QueryRequestOptions, MutationRequestOptions>;
|
|
128
|
-
|
|
129
|
-
declare function createInjectQueue<TSchema, TDefaultError, TPlugins extends readonly SpooshPlugin<PluginTypeConfig>[]>(options: Omit<SpooshInstanceShape<unknown, TSchema, TDefaultError, TPlugins>, "_types">): <TQueueFn extends (api: QueueApiClient<TSchema, TDefaultError>) => Promise<SpooshResponse<unknown, unknown>>>(queueFn: TQueueFn, queueOptions?: ResolveTypes<((TPlugins[number] extends infer T ? T extends TPlugins[number] ? T extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
130
|
-
queueOptions: infer Q;
|
|
131
|
-
} ? Q : object : object : never : never) extends infer T_1 ? T_1 extends (TPlugins[number] extends infer T_2 ? T_2 extends TPlugins[number] ? T_2 extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
132
|
-
queueOptions: infer Q;
|
|
133
|
-
} ? Q : object : object : never : never) ? T_1 extends unknown ? (x: T_1) => void : never : never : never) extends (x: infer I) => void ? I : never, ResolverContext<TSchema, TQueueFn extends (...args: any[]) => infer R ? Extract<Awaited<R>, {
|
|
134
|
-
data: unknown;
|
|
135
|
-
error?: undefined;
|
|
136
|
-
}> extends {
|
|
137
|
-
data: infer D;
|
|
138
|
-
} ? D : unknown : unknown, unknown extends (TQueueFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
139
|
-
error: unknown;
|
|
140
|
-
data?: undefined;
|
|
141
|
-
}> extends {
|
|
142
|
-
error: infer E;
|
|
143
|
-
} ? E : unknown : unknown) ? TDefaultError : TQueueFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
144
|
-
error: unknown;
|
|
145
|
-
data?: undefined;
|
|
146
|
-
}> extends {
|
|
147
|
-
error: infer E;
|
|
148
|
-
} ? E : unknown : unknown, ExtractMethodQuery<TQueueFn>, ExtractMethodBody<TQueueFn>, ExtractResponseParamNames<TQueueFn> extends never ? never : Record<ExtractResponseParamNames<TQueueFn>, string | number>>> & InjectQueueOptions) => BaseQueueResult<TQueueFn extends (...args: any[]) => infer R ? Extract<Awaited<R>, {
|
|
149
|
-
data: unknown;
|
|
150
|
-
error?: undefined;
|
|
151
|
-
}> extends {
|
|
152
|
-
data: infer D;
|
|
153
|
-
} ? D : unknown : unknown, unknown extends (TQueueFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
154
|
-
error: unknown;
|
|
155
|
-
data?: undefined;
|
|
156
|
-
}> extends {
|
|
157
|
-
error: infer E;
|
|
158
|
-
} ? E : unknown : unknown) ? TDefaultError : TQueueFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
159
|
-
error: unknown;
|
|
160
|
-
data?: undefined;
|
|
161
|
-
}> extends {
|
|
162
|
-
error: infer E;
|
|
163
|
-
} ? E : unknown : unknown, QueueTriggerInput<TQueueFn> & ResolveTypes<((TPlugins[number] extends infer T_3 ? T_3 extends TPlugins[number] ? T_3 extends SpooshPlugin<infer Types_1 extends PluginTypeConfig> ? Types_1 extends {
|
|
164
|
-
queueTriggerOptions: infer Q_1;
|
|
165
|
-
} ? Q_1 : object : object : never : never) extends infer T_4 ? T_4 extends (TPlugins[number] extends infer T_5 ? T_5 extends TPlugins[number] ? T_5 extends SpooshPlugin<infer Types_1 extends PluginTypeConfig> ? Types_1 extends {
|
|
166
|
-
queueTriggerOptions: infer Q_1;
|
|
167
|
-
} ? Q_1 : object : object : never : never) ? T_4 extends unknown ? (x: T_4) => void : never : never : never) extends (x: infer I) => void ? I : never, ResolverContext<TSchema, TQueueFn extends (...args: any[]) => infer R ? Extract<Awaited<R>, {
|
|
168
|
-
data: unknown;
|
|
169
|
-
error?: undefined;
|
|
170
|
-
}> extends {
|
|
171
|
-
data: infer D;
|
|
172
|
-
} ? D : unknown : unknown, unknown extends (TQueueFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
173
|
-
error: unknown;
|
|
174
|
-
data?: undefined;
|
|
175
|
-
}> extends {
|
|
176
|
-
error: infer E;
|
|
177
|
-
} ? E : unknown : unknown) ? TDefaultError : TQueueFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
178
|
-
error: unknown;
|
|
179
|
-
data?: undefined;
|
|
180
|
-
}> extends {
|
|
181
|
-
error: infer E;
|
|
182
|
-
} ? E : unknown : unknown, ExtractMethodQuery<TQueueFn>, ExtractMethodBody<TQueueFn>, ExtractResponseParamNames<TQueueFn> extends never ? never : Record<ExtractResponseParamNames<TQueueFn>, string | number>>>, ResolveResultTypes<((TPlugins[number] extends infer T_6 ? T_6 extends TPlugins[number] ? T_6 extends SpooshPlugin<infer Types_2 extends PluginTypeConfig> ? Types_2 extends {
|
|
183
|
-
queueResult: infer Q_2;
|
|
184
|
-
} ? Q_2 : object : object : never : never) extends infer T_7 ? T_7 extends (TPlugins[number] extends infer T_8 ? T_8 extends TPlugins[number] ? T_8 extends SpooshPlugin<infer Types_2 extends PluginTypeConfig> ? Types_2 extends {
|
|
185
|
-
queueResult: infer Q_2;
|
|
186
|
-
} ? Q_2 : object : object : never : never) ? T_7 extends unknown ? (x: T_7) => void : never : never : never) extends (x: infer I) => void ? I : never, ResolveTypes<((TPlugins[number] extends infer T_9 ? T_9 extends TPlugins[number] ? T_9 extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
187
|
-
queueOptions: infer Q;
|
|
188
|
-
} ? Q : object : object : never : never) extends infer T_10 ? T_10 extends (TPlugins[number] extends infer T_11 ? T_11 extends TPlugins[number] ? T_11 extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
189
|
-
queueOptions: infer Q;
|
|
190
|
-
} ? Q : object : object : never : never) ? T_10 extends unknown ? (x: T_10) => void : never : never : never) extends (x: infer I) => void ? I : never, ResolverContext<TSchema, TQueueFn extends (...args: any[]) => infer R ? Extract<Awaited<R>, {
|
|
191
|
-
data: unknown;
|
|
192
|
-
error?: undefined;
|
|
193
|
-
}> extends {
|
|
194
|
-
data: infer D;
|
|
195
|
-
} ? D : unknown : unknown, unknown extends (TQueueFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
196
|
-
error: unknown;
|
|
197
|
-
data?: undefined;
|
|
198
|
-
}> extends {
|
|
199
|
-
error: infer E;
|
|
200
|
-
} ? E : unknown : unknown) ? TDefaultError : TQueueFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
201
|
-
error: unknown;
|
|
202
|
-
data?: undefined;
|
|
203
|
-
}> extends {
|
|
204
|
-
error: infer E;
|
|
205
|
-
} ? E : unknown : unknown, ExtractMethodQuery<TQueueFn>, ExtractMethodBody<TQueueFn>, ExtractResponseParamNames<TQueueFn> extends never ? never : Record<ExtractResponseParamNames<TQueueFn>, string | number>>> & InjectQueueOptions>>;
|
|
206
|
-
|
|
207
|
-
type TriggerAwaitedReturn$1<T> = T extends (...args: never[]) => infer R ? Awaited<R> : never;
|
|
208
|
-
type ExtractInputFromResponse$2<T> = T extends {
|
|
235
|
+
type TriggerAwaitedReturn<T> = T extends (...args: never[]) => infer R ? Awaited<R> : never;
|
|
236
|
+
type ExtractInputFromResponse<T> = T extends {
|
|
209
237
|
input: infer I;
|
|
210
238
|
} ? I : never;
|
|
211
239
|
type BaseTriggerOptions = {
|
|
212
240
|
/** Bypass cache and force refetch. Default: true */
|
|
213
241
|
force?: boolean;
|
|
214
242
|
};
|
|
215
|
-
type PagesTriggerOptions<TReadFn> = ExtractInputFromResponse
|
|
243
|
+
type PagesTriggerOptions<TReadFn> = ExtractInputFromResponse<TriggerAwaitedReturn<TReadFn>> extends infer I ? [I] extends [never] ? BaseTriggerOptions : ExtractTriggerQuery$2<I> & ExtractTriggerBody$2<I> & ExtractTriggerParams$2<I> & BaseTriggerOptions : BaseTriggerOptions;
|
|
216
244
|
/**
|
|
217
245
|
* Options for `injectPages`.
|
|
218
246
|
*
|
|
@@ -310,319 +338,38 @@ interface BasePagesResult<TData, TError, TItem, TPluginResult = Record<string, u
|
|
|
310
338
|
}
|
|
311
339
|
type PagesApiClient<TSchema, TDefaultError> = ReadClient<TSchema, TDefaultError>;
|
|
312
340
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
}> extends {
|
|
317
|
-
data: infer D;
|
|
318
|
-
} ? D : unknown : unknown, TItem, unknown extends (TReadFn extends (...args: never[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
319
|
-
error: unknown;
|
|
320
|
-
data?: undefined;
|
|
321
|
-
}> extends {
|
|
322
|
-
error: infer E;
|
|
323
|
-
} ? E : unknown : unknown) ? TDefaultError : TReadFn extends (...args: never[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
324
|
-
error: unknown;
|
|
325
|
-
data?: undefined;
|
|
326
|
-
}> extends {
|
|
327
|
-
error: infer E;
|
|
328
|
-
} ? E : unknown : unknown, TRequest, ((TPlugins[number] extends infer T_3 ? T_3 extends TPlugins[number] ? T_3 extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
329
|
-
readResult: infer R_2;
|
|
330
|
-
} ? R_2 : object : object : never : never) extends infer T_4 ? T_4 extends (TPlugins[number] extends infer T_5 ? T_5 extends TPlugins[number] ? T_5 extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
331
|
-
readResult: infer R_2;
|
|
332
|
-
} ? R_2 : object : object : never : never) ? T_4 extends unknown ? (x: T_4) => void : never : never : never) extends (x: infer I) => void ? I : never> & ResolveTypes<((TPlugins[number] extends infer T_6 ? T_6 extends TPlugins[number] ? T_6 extends SpooshPlugin<infer Types_1 extends PluginTypeConfig> ? Types_1 extends {
|
|
333
|
-
pagesOptions: infer I_1;
|
|
334
|
-
} ? I_1 : object : object : never : never) extends infer T_7 ? T_7 extends (TPlugins[number] extends infer T_8 ? T_8 extends TPlugins[number] ? T_8 extends SpooshPlugin<infer Types_1 extends PluginTypeConfig> ? Types_1 extends {
|
|
335
|
-
pagesOptions: infer I_1;
|
|
336
|
-
} ? I_1 : object : object : never : never) ? T_7 extends unknown ? (x: T_7) => void : never : never : never) extends (x: infer I) => void ? I : never, ResolverContext<TSchema, TReadFn extends (...args: never[]) => infer R ? Extract<Awaited<R>, {
|
|
337
|
-
data: unknown;
|
|
338
|
-
error?: undefined;
|
|
339
|
-
}> extends {
|
|
340
|
-
data: infer D;
|
|
341
|
-
} ? D : unknown : unknown, unknown extends (TReadFn extends (...args: never[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
342
|
-
error: unknown;
|
|
343
|
-
data?: undefined;
|
|
344
|
-
}> extends {
|
|
345
|
-
error: infer E;
|
|
346
|
-
} ? E : unknown : unknown) ? TDefaultError : TReadFn extends (...args: never[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
347
|
-
error: unknown;
|
|
348
|
-
data?: undefined;
|
|
349
|
-
}> extends {
|
|
350
|
-
error: infer E;
|
|
351
|
-
} ? E : unknown : unknown>>) => BasePagesResult<TReadFn extends (...args: never[]) => infer R ? Extract<Awaited<R>, {
|
|
352
|
-
data: unknown;
|
|
353
|
-
error?: undefined;
|
|
354
|
-
}> extends {
|
|
355
|
-
data: infer D;
|
|
356
|
-
} ? D : unknown : unknown, unknown extends (TReadFn extends (...args: never[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
357
|
-
error: unknown;
|
|
358
|
-
data?: undefined;
|
|
359
|
-
}> extends {
|
|
360
|
-
error: infer E;
|
|
361
|
-
} ? E : unknown : unknown) ? TDefaultError : TReadFn extends (...args: never[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
362
|
-
error: unknown;
|
|
363
|
-
data?: undefined;
|
|
364
|
-
}> extends {
|
|
365
|
-
error: infer E;
|
|
366
|
-
} ? E : unknown : unknown, TItem, ((TPlugins[number] extends infer T ? T extends TPlugins[number] ? T extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
367
|
-
readResult: infer R_2;
|
|
368
|
-
} ? R_2 : object : object : never : never) extends infer T_1 ? T_1 extends (TPlugins[number] extends infer T_2 ? T_2 extends TPlugins[number] ? T_2 extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
369
|
-
readResult: infer R_2;
|
|
370
|
-
} ? R_2 : object : object : never : never) ? T_1 extends unknown ? (x: T_1) => void : never : never : never) extends (x: infer I) => void ? I : never, PagesTriggerOptions<TReadFn>>;
|
|
371
|
-
|
|
372
|
-
type OptionalQueryField<TQuery> = [TQuery] extends [never] ? object : undefined extends TQuery ? {
|
|
373
|
-
query?: Exclude<TQuery, undefined>;
|
|
374
|
-
} : {
|
|
375
|
-
query: TQuery;
|
|
376
|
-
};
|
|
377
|
-
type OptionalBodyField<TBody> = [TBody] extends [never] ? object : undefined extends TBody ? {
|
|
378
|
-
body?: Exclude<TBody, undefined>;
|
|
379
|
-
} : {
|
|
380
|
-
body: TBody;
|
|
381
|
-
};
|
|
382
|
-
type OptionalParamsField<TParamNames extends string> = [TParamNames] extends [
|
|
383
|
-
never
|
|
384
|
-
] ? object : {
|
|
385
|
-
params: Record<TParamNames, string | number>;
|
|
386
|
-
};
|
|
387
|
-
type InputFields<TQuery, TBody, TParamNames extends string> = OptionalQueryField<TQuery> & OptionalBodyField<TBody> & OptionalParamsField<TParamNames>;
|
|
388
|
-
type WriteResponseInputFields<TQuery, TBody, TParamNames extends string> = [TQuery, TBody, TParamNames] extends [never, never, never] ? object : {
|
|
389
|
-
input: Signal<InputFields<TQuery, TBody, TParamNames> | undefined>;
|
|
390
|
-
};
|
|
391
|
-
interface BaseWriteResult<TData, TError, TOptions, TPluginResult = Record<string, unknown>> {
|
|
392
|
-
trigger: (options?: TOptions) => Promise<SpooshResponse<TData, TError>>;
|
|
393
|
-
data: Signal<TData | undefined>;
|
|
394
|
-
error: Signal<TError | undefined>;
|
|
395
|
-
loading: Signal<boolean>;
|
|
396
|
-
meta: Signal<TPluginResult>;
|
|
397
|
-
abort: () => void;
|
|
398
|
-
}
|
|
399
|
-
type TriggerAwaitedReturn<T> = T extends (...args: any[]) => infer R ? Awaited<R> : never;
|
|
400
|
-
type ExtractInputFromResponse$1<T> = T extends {
|
|
401
|
-
input: infer I;
|
|
402
|
-
} ? I : never;
|
|
403
|
-
type ExtractTriggerQuery<I> = I extends {
|
|
404
|
-
query: infer Q;
|
|
405
|
-
} ? undefined extends Q ? {
|
|
406
|
-
query?: Exclude<Q, undefined>;
|
|
407
|
-
} : {
|
|
408
|
-
query: Q;
|
|
409
|
-
} : unknown;
|
|
410
|
-
type ExtractTriggerBody<I> = I extends {
|
|
411
|
-
body: infer B;
|
|
412
|
-
} ? undefined extends B ? {
|
|
413
|
-
body?: Exclude<B, undefined> | SpooshBody<Exclude<B, undefined>>;
|
|
414
|
-
} : {
|
|
415
|
-
body: B | SpooshBody<B>;
|
|
416
|
-
} : unknown;
|
|
417
|
-
type ExtractTriggerParams<I> = I extends {
|
|
418
|
-
params: infer P;
|
|
419
|
-
} ? {
|
|
420
|
-
params: P;
|
|
421
|
-
} : unknown;
|
|
422
|
-
type WriteTriggerInput<T> = ExtractInputFromResponse$1<TriggerAwaitedReturn<T>> extends infer I ? [I] extends [never] ? object : ExtractTriggerQuery<I> & ExtractTriggerBody<I> & ExtractTriggerParams<I> : object;
|
|
423
|
-
type WriteApiClient<TSchema, TDefaultError> = WriteSelectorClient<TSchema, TDefaultError>;
|
|
424
|
-
|
|
425
|
-
declare function createInjectWrite<TSchema, TDefaultError, TPlugins extends readonly SpooshPlugin<PluginTypeConfig>[]>(options: Omit<SpooshInstanceShape<unknown, TSchema, TDefaultError, TPlugins>, "_types">): <TWriteFn extends (api: WriteApiClient<TSchema, TDefaultError>) => Promise<SpooshResponse<unknown, unknown>>, TWriteOpts extends _spoosh_core.ResolveTypes<((TPlugins[number] extends infer T ? T extends TPlugins[number] ? T extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
426
|
-
writeOptions: infer W;
|
|
427
|
-
} ? W : object : object : never : never) extends infer T_1 ? T_1 extends (TPlugins[number] extends infer T_2 ? T_2 extends TPlugins[number] ? T_2 extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
428
|
-
writeOptions: infer W;
|
|
429
|
-
} ? W : object : object : never : never) ? T_1 extends unknown ? (x: T_1) => void : never : never : never) extends (x: infer I) => void ? I : never, ResolverContext<TSchema, TWriteFn extends (...args: any[]) => infer R ? Extract<Awaited<R>, {
|
|
430
|
-
data: unknown;
|
|
431
|
-
error?: undefined;
|
|
432
|
-
}> extends {
|
|
433
|
-
data: infer D;
|
|
434
|
-
} ? D : unknown : unknown, unknown extends (TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
435
|
-
error: unknown;
|
|
436
|
-
data?: undefined;
|
|
437
|
-
}> extends {
|
|
438
|
-
error: infer E;
|
|
439
|
-
} ? E : unknown : unknown) ? TDefaultError : TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
440
|
-
error: unknown;
|
|
441
|
-
data?: undefined;
|
|
442
|
-
}> extends {
|
|
443
|
-
error: infer E;
|
|
444
|
-
} ? E : unknown : unknown, ExtractMethodQuery<TWriteFn>, ExtractMethodBody<TWriteFn>, ExtractResponseParamNames<TWriteFn> extends never ? never : Record<ExtractResponseParamNames<TWriteFn>, string | number>>> = _spoosh_core.ResolveTypes<((TPlugins[number] extends infer T_3 ? T_3 extends TPlugins[number] ? T_3 extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
445
|
-
writeOptions: infer W;
|
|
446
|
-
} ? W : object : object : never : never) extends infer T_4 ? T_4 extends (TPlugins[number] extends infer T_5 ? T_5 extends TPlugins[number] ? T_5 extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
447
|
-
writeOptions: infer W;
|
|
448
|
-
} ? W : object : object : never : never) ? T_4 extends unknown ? (x: T_4) => void : never : never : never) extends (x: infer I) => void ? I : never, ResolverContext<TSchema, TWriteFn extends (...args: any[]) => infer R ? Extract<Awaited<R>, {
|
|
449
|
-
data: unknown;
|
|
450
|
-
error?: undefined;
|
|
451
|
-
}> extends {
|
|
452
|
-
data: infer D;
|
|
453
|
-
} ? D : unknown : unknown, unknown extends (TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
454
|
-
error: unknown;
|
|
455
|
-
data?: undefined;
|
|
456
|
-
}> extends {
|
|
457
|
-
error: infer E;
|
|
458
|
-
} ? E : unknown : unknown) ? TDefaultError : TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
459
|
-
error: unknown;
|
|
460
|
-
data?: undefined;
|
|
461
|
-
}> extends {
|
|
462
|
-
error: infer E;
|
|
463
|
-
} ? E : unknown : unknown, ExtractMethodQuery<TWriteFn>, ExtractMethodBody<TWriteFn>, ExtractResponseParamNames<TWriteFn> extends never ? never : Record<ExtractResponseParamNames<TWriteFn>, string | number>>>>(writeFn: TWriteFn, writeOptions?: TWriteOpts) => BaseWriteResult<TWriteFn extends (...args: any[]) => infer R ? Extract<Awaited<R>, {
|
|
464
|
-
data: unknown;
|
|
465
|
-
error?: undefined;
|
|
466
|
-
}> extends {
|
|
467
|
-
data: infer D;
|
|
468
|
-
} ? D : unknown : unknown, unknown extends (TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
469
|
-
error: unknown;
|
|
470
|
-
data?: undefined;
|
|
471
|
-
}> extends {
|
|
472
|
-
error: infer E;
|
|
473
|
-
} ? E : unknown : unknown) ? TDefaultError : TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
474
|
-
error: unknown;
|
|
475
|
-
data?: undefined;
|
|
476
|
-
}> extends {
|
|
477
|
-
error: infer E;
|
|
478
|
-
} ? E : unknown : unknown, WriteTriggerInput<TWriteFn> & _spoosh_core.ResolveTypes<((TPlugins[number] extends infer T_6 ? T_6 extends TPlugins[number] ? T_6 extends SpooshPlugin<infer Types_1 extends PluginTypeConfig> ? Types_1 extends {
|
|
479
|
-
writeTriggerOptions: infer W_1;
|
|
480
|
-
} ? W_1 : object : object : never : never) extends infer T_7 ? T_7 extends (TPlugins[number] extends infer T_8 ? T_8 extends TPlugins[number] ? T_8 extends SpooshPlugin<infer Types_1 extends PluginTypeConfig> ? Types_1 extends {
|
|
481
|
-
writeTriggerOptions: infer W_1;
|
|
482
|
-
} ? W_1 : object : object : never : never) ? T_7 extends unknown ? (x: T_7) => void : never : never : never) extends (x: infer I) => void ? I : never, ResolverContext<TSchema, TWriteFn extends (...args: any[]) => infer R ? Extract<Awaited<R>, {
|
|
483
|
-
data: unknown;
|
|
484
|
-
error?: undefined;
|
|
485
|
-
}> extends {
|
|
486
|
-
data: infer D;
|
|
487
|
-
} ? D : unknown : unknown, unknown extends (TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
488
|
-
error: unknown;
|
|
489
|
-
data?: undefined;
|
|
490
|
-
}> extends {
|
|
491
|
-
error: infer E;
|
|
492
|
-
} ? E : unknown : unknown) ? TDefaultError : TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
493
|
-
error: unknown;
|
|
494
|
-
data?: undefined;
|
|
495
|
-
}> extends {
|
|
496
|
-
error: infer E;
|
|
497
|
-
} ? E : unknown : unknown, ExtractMethodQuery<TWriteFn>, ExtractMethodBody<TWriteFn>, ExtractResponseParamNames<TWriteFn> extends never ? never : Record<ExtractResponseParamNames<TWriteFn>, string | number>>>, ResolveResultTypes<((TPlugins[number] extends infer T_9 ? T_9 extends TPlugins[number] ? T_9 extends SpooshPlugin<infer Types_2 extends PluginTypeConfig> ? Types_2 extends {
|
|
498
|
-
writeResult: infer W_2;
|
|
499
|
-
} ? W_2 : object : object : never : never) extends infer T_10 ? T_10 extends (TPlugins[number] extends infer T_11 ? T_11 extends TPlugins[number] ? T_11 extends SpooshPlugin<infer Types_2 extends PluginTypeConfig> ? Types_2 extends {
|
|
500
|
-
writeResult: infer W_2;
|
|
501
|
-
} ? W_2 : object : object : never : never) ? T_10 extends unknown ? (x: T_10) => void : never : never : never) extends (x: infer I) => void ? I : never, TWriteOpts>> & WriteResponseInputFields<ExtractResponseQuery<TWriteFn>, ExtractResponseBody<TWriteFn>, ExtractResponseParamNames<TWriteFn>>;
|
|
502
|
-
|
|
503
|
-
interface BaseReadOptions extends TagOptions {
|
|
504
|
-
enabled?: EnabledOption;
|
|
505
|
-
}
|
|
506
|
-
type QueryField<TQuery> = [TQuery] extends [never] ? object : undefined extends TQuery ? {
|
|
507
|
-
query?: Exclude<TQuery, undefined>;
|
|
508
|
-
} : {
|
|
509
|
-
query: TQuery;
|
|
341
|
+
type InferError<T, TDefaultError> = unknown extends T ? TDefaultError : T;
|
|
342
|
+
type StrictOptions<TOptions, TAllowed> = TOptions & {
|
|
343
|
+
[K in keyof TOptions as K extends keyof TAllowed ? never : K]: never;
|
|
510
344
|
};
|
|
511
|
-
type
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
type
|
|
517
|
-
|
|
345
|
+
type ReadResolverContext<TSchema, TReadFn, TDefaultError> = ResolverContext<TSchema, ExtractMethodData<TReadFn>, InferError<ExtractMethodError<TReadFn>, TDefaultError>, ExtractResponseQuery<TReadFn>, ExtractResponseBody<TReadFn>, ExtractResponseParamNames<TReadFn> extends never ? never : Record<ExtractResponseParamNames<TReadFn>, string | number>>;
|
|
346
|
+
type ResolvedReadOptions<TSchema, TPlugins extends PluginArray, TReadFn, TDefaultError> = BaseReadOptions & ResolveTypes<MergePluginOptions<TPlugins>["read"], ReadResolverContext<TSchema, TReadFn, TDefaultError>>;
|
|
347
|
+
type WriteResolverContext<TSchema, TMethod, TDefaultError> = ResolverContext<TSchema, ExtractMethodData<TMethod>, InferError<ExtractMethodError<TMethod>, TDefaultError>, ExtractMethodQuery<TMethod>, ExtractMethodBody<TMethod>, ExtractResponseParamNames<TMethod> extends never ? never : Record<ExtractResponseParamNames<TMethod>, string | number>>;
|
|
348
|
+
type ResolvedWriteOptions<TSchema, TPlugins extends PluginArray, TMethod, TDefaultError> = ResolveTypes<MergePluginOptions<TPlugins>["write"], WriteResolverContext<TSchema, TMethod, TDefaultError>>;
|
|
349
|
+
type ResolvedWriteTriggerOptions<TSchema, TPlugins extends PluginArray, TMethod, TDefaultError> = ResolveTypes<MergePluginOptions<TPlugins>["writeTrigger"], WriteResolverContext<TSchema, TMethod, TDefaultError>>;
|
|
350
|
+
type QueueResolverContext<TSchema, TMethod, TDefaultError> = ResolverContext<TSchema, ExtractMethodData<TMethod>, InferError<ExtractMethodError<TMethod>, TDefaultError>, ExtractMethodQuery<TMethod>, ExtractMethodBody<TMethod>, ExtractResponseParamNames<TMethod> extends never ? never : Record<ExtractResponseParamNames<TMethod>, string | number>>;
|
|
351
|
+
type ResolvedQueueOptions<TSchema, TPlugins extends PluginArray, TMethod, TDefaultError> = ResolveTypes<MergePluginOptions<TPlugins>["queue"], QueueResolverContext<TSchema, TMethod, TDefaultError>>;
|
|
352
|
+
type ResolvedQueueTriggerOptions<TSchema, TPlugins extends PluginArray, TMethod, TDefaultError> = ResolveTypes<MergePluginOptions<TPlugins>["queueTrigger"], QueueResolverContext<TSchema, TMethod, TDefaultError>>;
|
|
353
|
+
type PagesResolverContext<TSchema, TReadFn, TDefaultError> = ResolverContext<TSchema, ExtractMethodData<TReadFn>, InferError<ExtractMethodError<TReadFn>, TDefaultError>, ExtractResponseQuery<TReadFn>, ExtractResponseBody<TReadFn>, ExtractResponseParamNames<TReadFn> extends never ? never : Record<ExtractResponseParamNames<TReadFn>, string | number>>;
|
|
354
|
+
type InjectReadFn<TDefaultError, TSchema, TPlugins extends PluginArray> = {
|
|
355
|
+
<TReadFn extends (api: ReadApiClient<TSchema, TDefaultError>) => Promise<SpooshResponse<unknown, unknown>>, TReadOpts extends ResolvedReadOptions<TSchema, TPlugins, TReadFn, TDefaultError>>(readFn: TReadFn, readOptions: StrictOptions<TReadOpts, ResolvedReadOptions<TSchema, TPlugins, TReadFn, TDefaultError>>): BaseReadResult<ExtractMethodData<TReadFn>, InferError<ExtractMethodError<TReadFn>, TDefaultError>, ResolveResultTypes<MergePluginResults<TPlugins>["read"], TReadOpts>, TriggerOptions<TReadFn>> & ResponseInputFields<ExtractResponseQuery<TReadFn>, ExtractResponseBody<TReadFn>, ExtractResponseParamNames<TReadFn>>;
|
|
356
|
+
<TReadFn extends (api: ReadApiClient<TSchema, TDefaultError>) => Promise<SpooshResponse<unknown, unknown>>>(readFn: TReadFn): BaseReadResult<ExtractMethodData<TReadFn>, InferError<ExtractMethodError<TReadFn>, TDefaultError>, MergePluginResults<TPlugins>["read"], TriggerOptions<TReadFn>> & ResponseInputFields<ExtractResponseQuery<TReadFn>, ExtractResponseBody<TReadFn>, ExtractResponseParamNames<TReadFn>>;
|
|
518
357
|
};
|
|
519
|
-
type
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
TBody,
|
|
523
|
-
TParamNames
|
|
524
|
-
] extends [never, never, never] ? object : {
|
|
525
|
-
input: ReadInputFields<TQuery, TBody, TParamNames>;
|
|
358
|
+
type InjectWriteFn<TDefaultError, TSchema, TPlugins extends PluginArray> = {
|
|
359
|
+
<TWriteFn extends (api: WriteApiClient<TSchema, TDefaultError>) => Promise<SpooshResponse<unknown, unknown>>, TWriteOpts extends ResolvedWriteOptions<TSchema, TPlugins, TWriteFn, TDefaultError>>(writeFn: TWriteFn, writeOptions: StrictOptions<TWriteOpts, ResolvedWriteOptions<TSchema, TPlugins, TWriteFn, TDefaultError>>): BaseWriteResult<ExtractMethodData<TWriteFn>, InferError<ExtractMethodError<TWriteFn>, TDefaultError>, WriteTriggerInput<TWriteFn> & ResolvedWriteTriggerOptions<TSchema, TPlugins, TWriteFn, TDefaultError>, ResolveResultTypes<MergePluginResults<TPlugins>["write"], TWriteOpts>> & WriteResponseInputFields<ExtractResponseQuery<TWriteFn>, ExtractResponseBody<TWriteFn>, ExtractResponseParamNames<TWriteFn>>;
|
|
360
|
+
<TWriteFn extends (api: WriteApiClient<TSchema, TDefaultError>) => Promise<SpooshResponse<unknown, unknown>>>(writeFn: TWriteFn): BaseWriteResult<ExtractMethodData<TWriteFn>, InferError<ExtractMethodError<TWriteFn>, TDefaultError>, WriteTriggerInput<TWriteFn> & ResolvedWriteTriggerOptions<TSchema, TPlugins, TWriteFn, TDefaultError>, MergePluginResults<TPlugins>["write"]> & WriteResponseInputFields<ExtractResponseQuery<TWriteFn>, ExtractResponseBody<TWriteFn>, ExtractResponseParamNames<TWriteFn>>;
|
|
526
361
|
};
|
|
527
|
-
type
|
|
528
|
-
|
|
529
|
-
input: infer I;
|
|
530
|
-
} ? I : never;
|
|
531
|
-
type TriggerOptions<T> = ExtractInputFromResponse<AwaitedReturnTypeTrigger<T>> extends infer I ? [I] extends [never] ? {
|
|
532
|
-
force?: boolean;
|
|
533
|
-
} : ExtractTriggerQuery$2<I> & ExtractTriggerBody$2<I> & ExtractTriggerParams$2<I> & {
|
|
534
|
-
/** Force refetch even if data is cached */
|
|
535
|
-
force?: boolean;
|
|
536
|
-
} : {
|
|
537
|
-
force?: boolean;
|
|
362
|
+
type InjectQueueFn<TDefaultError, TSchema, TPlugins extends PluginArray> = {
|
|
363
|
+
<TQueueFn extends (api: QueueApiClient<TSchema, TDefaultError>) => Promise<SpooshResponse<unknown, unknown>>>(queueFn: TQueueFn, queueOptions?: ResolvedQueueOptions<TSchema, TPlugins, TQueueFn, TDefaultError> & InjectQueueOptions): BaseQueueResult<ExtractMethodData<TQueueFn>, InferError<ExtractMethodError<TQueueFn>, TDefaultError>, QueueTriggerInput<TQueueFn> & ResolvedQueueTriggerOptions<TSchema, TPlugins, TQueueFn, TDefaultError>, ResolveResultTypes<MergePluginResults<TPlugins>["queue"], ResolvedQueueOptions<TSchema, TPlugins, TQueueFn, TDefaultError> & InjectQueueOptions>>;
|
|
538
364
|
};
|
|
539
|
-
|
|
540
|
-
force?: boolean;
|
|
541
|
-
}> {
|
|
542
|
-
data: Signal<TData | undefined>;
|
|
543
|
-
error: Signal<TError | undefined>;
|
|
544
|
-
loading: Signal<boolean>;
|
|
545
|
-
fetching: Signal<boolean>;
|
|
546
|
-
meta: Signal<TPluginResult>;
|
|
547
|
-
abort: () => void;
|
|
548
|
-
/**
|
|
549
|
-
* Manually trigger a fetch.
|
|
550
|
-
*
|
|
551
|
-
* @param options - Optional override options (query, body, params) to use for this specific request
|
|
552
|
-
*/
|
|
553
|
-
trigger: (options?: TTriggerOptions) => Promise<SpooshResponse<TData, TError>>;
|
|
554
|
-
}
|
|
555
|
-
type ReadApiClient<TSchema, TDefaultError> = ReadClient<TSchema, TDefaultError>;
|
|
556
|
-
|
|
557
|
-
declare function createInjectRead<TSchema, TDefaultError, TPlugins extends readonly SpooshPlugin<PluginTypeConfig>[]>(options: Omit<SpooshInstanceShape<unknown, TSchema, TDefaultError, TPlugins>, "_types">): <TReadFn extends (api: ReadApiClient<TSchema, TDefaultError>) => Promise<{
|
|
558
|
-
data?: unknown;
|
|
559
|
-
error?: unknown;
|
|
560
|
-
}>, TReadOpts extends BaseReadOptions & ResolveTypes<((TPlugins[number] extends infer T_3 ? T_3 extends TPlugins[number] ? T_3 extends SpooshPlugin<infer Types_1 extends PluginTypeConfig> ? Types_1 extends {
|
|
561
|
-
readOptions: infer R_3;
|
|
562
|
-
} ? R_3 : object : object : never : never) extends infer T_4 ? T_4 extends (TPlugins[number] extends infer T_5 ? T_5 extends TPlugins[number] ? T_5 extends SpooshPlugin<infer Types_1 extends PluginTypeConfig> ? Types_1 extends {
|
|
563
|
-
readOptions: infer R_3;
|
|
564
|
-
} ? R_3 : object : object : never : never) ? T_4 extends unknown ? (x: T_4) => void : never : never : never) extends (x: infer I) => void ? I : never, ResolverContext<TSchema, TReadFn extends (...args: never[]) => infer R ? Extract<Awaited<R>, {
|
|
565
|
-
data: unknown;
|
|
566
|
-
error?: undefined;
|
|
567
|
-
}> extends {
|
|
568
|
-
data: infer D;
|
|
569
|
-
} ? D : unknown : unknown, unknown extends (TReadFn extends (...args: never[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
570
|
-
error: unknown;
|
|
571
|
-
data?: undefined;
|
|
572
|
-
}> extends {
|
|
573
|
-
error: infer E;
|
|
574
|
-
} ? E : unknown : unknown) ? TDefaultError : TReadFn extends (...args: never[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
575
|
-
error: unknown;
|
|
576
|
-
data?: undefined;
|
|
577
|
-
}> extends {
|
|
578
|
-
error: infer E;
|
|
579
|
-
} ? E : unknown : unknown>> = BaseReadOptions & ResolveTypes<((TPlugins[number] extends infer T_6 ? T_6 extends TPlugins[number] ? T_6 extends SpooshPlugin<infer Types_1 extends PluginTypeConfig> ? Types_1 extends {
|
|
580
|
-
readOptions: infer R_3;
|
|
581
|
-
} ? R_3 : object : object : never : never) extends infer T_7 ? T_7 extends (TPlugins[number] extends infer T_8 ? T_8 extends TPlugins[number] ? T_8 extends SpooshPlugin<infer Types_1 extends PluginTypeConfig> ? Types_1 extends {
|
|
582
|
-
readOptions: infer R_3;
|
|
583
|
-
} ? R_3 : object : object : never : never) ? T_7 extends unknown ? (x: T_7) => void : never : never : never) extends (x: infer I) => void ? I : never, ResolverContext<TSchema, TReadFn extends (...args: never[]) => infer R ? Extract<Awaited<R>, {
|
|
584
|
-
data: unknown;
|
|
585
|
-
error?: undefined;
|
|
586
|
-
}> extends {
|
|
587
|
-
data: infer D;
|
|
588
|
-
} ? D : unknown : unknown, unknown extends (TReadFn extends (...args: never[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
589
|
-
error: unknown;
|
|
590
|
-
data?: undefined;
|
|
591
|
-
}> extends {
|
|
592
|
-
error: infer E;
|
|
593
|
-
} ? E : unknown : unknown) ? TDefaultError : TReadFn extends (...args: never[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
594
|
-
error: unknown;
|
|
595
|
-
data?: undefined;
|
|
596
|
-
}> extends {
|
|
597
|
-
error: infer E;
|
|
598
|
-
} ? E : unknown : unknown>>>(readFn: TReadFn, readOptions?: TReadOpts) => BaseReadResult<TReadFn extends (...args: never[]) => infer R ? Extract<Awaited<R>, {
|
|
599
|
-
data: unknown;
|
|
600
|
-
error?: undefined;
|
|
601
|
-
}> extends {
|
|
602
|
-
data: infer D;
|
|
603
|
-
} ? D : unknown : unknown, unknown extends (TReadFn extends (...args: never[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
604
|
-
error: unknown;
|
|
605
|
-
data?: undefined;
|
|
606
|
-
}> extends {
|
|
607
|
-
error: infer E;
|
|
608
|
-
} ? E : unknown : unknown) ? TDefaultError : TReadFn extends (...args: never[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
609
|
-
error: unknown;
|
|
610
|
-
data?: undefined;
|
|
611
|
-
}> extends {
|
|
612
|
-
error: infer E;
|
|
613
|
-
} ? E : unknown : unknown, ResolveResultTypes<((TPlugins[number] extends infer T ? T extends TPlugins[number] ? T extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
614
|
-
readResult: infer R_2;
|
|
615
|
-
} ? R_2 : object : object : never : never) extends infer T_1 ? T_1 extends (TPlugins[number] extends infer T_2 ? T_2 extends TPlugins[number] ? T_2 extends SpooshPlugin<infer Types extends PluginTypeConfig> ? Types extends {
|
|
616
|
-
readResult: infer R_2;
|
|
617
|
-
} ? R_2 : object : object : never : never) ? T_1 extends unknown ? (x: T_1) => void : never : never : never) extends (x: infer I) => void ? I : never, TReadOpts>, TriggerOptions<TReadFn>> & ResponseInputFields<ExtractResponseQuery<TReadFn>, ExtractResponseBody<TReadFn>, ExtractResponseParamNames<TReadFn>>;
|
|
618
|
-
|
|
365
|
+
type InjectPagesFn<TDefaultError, TSchema, TPlugins extends PluginArray> = <TReadFn extends (api: PagesApiClient<TSchema, TDefaultError>) => Promise<SpooshResponse<unknown, unknown>>, TRequest extends InfiniteRequestOptions = InfiniteRequestOptions, TItem = unknown>(readFn: TReadFn, readOptions: BasePagesOptions<ExtractMethodData<TReadFn>, TItem, InferError<ExtractMethodError<TReadFn>, TDefaultError>, TRequest, MergePluginResults<TPlugins>["read"]> & ResolveTypes<MergePluginOptions<TPlugins>["pages"], PagesResolverContext<TSchema, TReadFn, TDefaultError>>) => BasePagesResult<ExtractMethodData<TReadFn>, InferError<ExtractMethodError<TReadFn>, TDefaultError>, TItem, MergePluginResults<TPlugins>["read"], PagesTriggerOptions<TReadFn>>;
|
|
619
366
|
type SpooshAngularFunctions<TDefaultError, TSchema, TPlugins extends PluginArray> = {
|
|
620
|
-
injectRead:
|
|
621
|
-
injectWrite:
|
|
622
|
-
injectPages:
|
|
623
|
-
injectQueue:
|
|
367
|
+
injectRead: InjectReadFn<TDefaultError, TSchema, TPlugins>;
|
|
368
|
+
injectWrite: InjectWriteFn<TDefaultError, TSchema, TPlugins>;
|
|
369
|
+
injectPages: InjectPagesFn<TDefaultError, TSchema, TPlugins>;
|
|
370
|
+
injectQueue: InjectQueueFn<TDefaultError, TSchema, TPlugins>;
|
|
624
371
|
} & MergePluginInstanceApi<TPlugins, TSchema>;
|
|
625
372
|
|
|
626
373
|
declare function create<TSchema, TDefaultError, TPlugins extends PluginArray, TApi>(instance: SpooshInstanceShape<TApi, TSchema, TDefaultError, TPlugins>): SpooshAngularFunctions<TDefaultError, TSchema, TPlugins>;
|
|
627
374
|
|
|
628
|
-
export { type AngularOptionsMap, type BasePagesOptions, type BasePagesResult, type BaseQueueResult, type BaseReadOptions, type BaseReadResult, type BaseWriteResult, type EnabledOption, type ExtractMethodBody, type ExtractMethodData, type ExtractMethodError, type ExtractMethodOptions, type ExtractMethodQuery, type ExtractResponseBody, type ExtractResponseParamNames, type ExtractResponseQuery, type InjectQueueOptions, type PagesApiClient, type PagesTriggerOptions, type QueueApiClient, type QueueTriggerInput, type ReadApiClient, type ResponseInputFields, type SpooshInstanceShape, type TriggerOptions, type WriteApiClient, type WriteResponseInputFields, create };
|
|
375
|
+
export { type AngularOptionsMap, type BasePagesOptions, type BasePagesResult, type BaseQueueResult, type BaseReadOptions, type BaseReadResult, type BaseWriteResult, type EnabledOption, type ExtractMethodBody, type ExtractMethodData, type ExtractMethodError, type ExtractMethodOptions, type ExtractMethodQuery, type ExtractResponseBody, type ExtractResponseParamNames, type ExtractResponseQuery, type InjectQueueOptions, type PagesApiClient, type PagesTriggerOptions, type QueueApiClient, type QueueTriggerInput, type ReadApiClient, type ResponseInputFields, type SpooshInstanceShape, type TriggerOptions, type WriteApiClient, type WriteResponseInputFields, type WriteTriggerInput, create };
|