@spoosh/angular 0.8.0 → 0.9.1
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/README.md +2 -2
- package/dist/index.d.mts +67 -24
- package/dist/index.d.ts +67 -24
- package/dist/index.js +11 -6
- package/dist/index.mjs +11 -6
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -91,7 +91,7 @@ Trigger mutations with loading and error states.
|
|
|
91
91
|
export class CreateUserComponent {
|
|
92
92
|
title = signal("");
|
|
93
93
|
|
|
94
|
-
createUser = injectWrite((api) => api("users").POST);
|
|
94
|
+
createUser = injectWrite((api) => api("users").POST());
|
|
95
95
|
|
|
96
96
|
async handleSubmit() {
|
|
97
97
|
const result = await this.createUser.trigger({
|
|
@@ -105,7 +105,7 @@ export class CreateUserComponent {
|
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
// With path parameters
|
|
108
|
-
updateUser = injectWrite((api) => api("users/:id").PUT);
|
|
108
|
+
updateUser = injectWrite((api) => api("users/:id").PUT());
|
|
109
109
|
|
|
110
110
|
async updateUserName(userId: number, name: string) {
|
|
111
111
|
await this.updateUser.trigger({
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _spoosh_core from '@spoosh/core';
|
|
2
|
-
import { PluginArray, StateManager, EventEmitter, PluginExecutor, MethodOptionsMap, CoreRequestOptionsBase, ReadClient, TagOptions, SpooshPlugin, PluginTypeConfig, SpooshResponse, InfiniteRequestOptions, ResolveTypes, ResolverContext,
|
|
2
|
+
import { PluginArray, StateManager, EventEmitter, PluginExecutor, MethodOptionsMap, CoreRequestOptionsBase, ReadClient, TagOptions, SpooshPlugin, PluginTypeConfig, SpooshResponse, InfiniteRequestOptions, ResolveTypes, ResolverContext, WriteSelectorClient, SpooshBody, ResolveResultTypes, MergePluginInstanceApi } from '@spoosh/core';
|
|
3
3
|
import { Signal } from '@angular/core';
|
|
4
4
|
|
|
5
5
|
interface SpooshInstanceShape<TApi, TSchema, TDefaultError, TPlugins extends PluginArray> {
|
|
@@ -122,7 +122,31 @@ interface BaseWriteResult<TData, TError, TOptions, TPluginResult = Record<string
|
|
|
122
122
|
meta: Signal<TPluginResult>;
|
|
123
123
|
abort: () => void;
|
|
124
124
|
}
|
|
125
|
-
type
|
|
125
|
+
type TriggerAwaitedReturn<T> = T extends (...args: any[]) => infer R ? Awaited<R> : never;
|
|
126
|
+
type ExtractInputFromResponse$1<T> = T extends {
|
|
127
|
+
input: infer I;
|
|
128
|
+
} ? I : never;
|
|
129
|
+
type ExtractTriggerQuery$1<I> = I extends {
|
|
130
|
+
query: infer Q;
|
|
131
|
+
} ? undefined extends Q ? {
|
|
132
|
+
query?: Exclude<Q, undefined>;
|
|
133
|
+
} : {
|
|
134
|
+
query: Q;
|
|
135
|
+
} : unknown;
|
|
136
|
+
type ExtractTriggerBody$1<I> = I extends {
|
|
137
|
+
body: infer B;
|
|
138
|
+
} ? undefined extends B ? {
|
|
139
|
+
body?: Exclude<B, undefined> | SpooshBody<Exclude<B, undefined>>;
|
|
140
|
+
} : {
|
|
141
|
+
body: B | SpooshBody<B>;
|
|
142
|
+
} : unknown;
|
|
143
|
+
type ExtractTriggerParams$1<I> = I extends {
|
|
144
|
+
params: infer P;
|
|
145
|
+
} ? {
|
|
146
|
+
params: P;
|
|
147
|
+
} : unknown;
|
|
148
|
+
type WriteTriggerInput<T> = ExtractInputFromResponse$1<TriggerAwaitedReturn<T>> extends infer I ? [I] extends [never] ? object : ExtractTriggerQuery$1<I> & ExtractTriggerBody$1<I> & ExtractTriggerParams$1<I> : object;
|
|
149
|
+
type WriteApiClient<TSchema, TDefaultError> = WriteSelectorClient<TSchema, TDefaultError>;
|
|
126
150
|
|
|
127
151
|
type SuccessResponse<T> = Extract<T, {
|
|
128
152
|
data: unknown;
|
|
@@ -163,64 +187,83 @@ type ExtractMethodBody<T> = ExtractMethodOptions<T> extends {
|
|
|
163
187
|
body: infer B;
|
|
164
188
|
} ? B : never;
|
|
165
189
|
|
|
166
|
-
declare function createInjectWrite<TSchema, TDefaultError, TPlugins extends readonly SpooshPlugin<PluginTypeConfig>[]>(options: Omit<SpooshInstanceShape<unknown, TSchema, TDefaultError, TPlugins>, "_types">): <
|
|
167
|
-
writeOptions: infer
|
|
168
|
-
} ?
|
|
169
|
-
writeOptions: infer
|
|
170
|
-
} ?
|
|
190
|
+
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 {
|
|
191
|
+
writeOptions: infer W;
|
|
192
|
+
} ? 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 {
|
|
193
|
+
writeOptions: infer W;
|
|
194
|
+
} ? 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>, {
|
|
171
195
|
data: unknown;
|
|
172
196
|
error?: undefined;
|
|
173
197
|
}> extends {
|
|
174
198
|
data: infer D;
|
|
175
|
-
} ? D : unknown : unknown, [
|
|
199
|
+
} ? D : unknown : unknown, [TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
176
200
|
error: unknown;
|
|
177
201
|
data?: undefined;
|
|
178
202
|
}> extends {
|
|
179
203
|
error: infer E;
|
|
180
|
-
} ? E : unknown : unknown] extends [unknown] ? TDefaultError :
|
|
204
|
+
} ? E : unknown : unknown] extends [unknown] ? TDefaultError : TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
181
205
|
error: unknown;
|
|
182
206
|
data?: undefined;
|
|
183
207
|
}> extends {
|
|
184
208
|
error: infer E;
|
|
185
|
-
} ? E : unknown : unknown, ExtractMethodQuery<
|
|
186
|
-
writeOptions: infer
|
|
187
|
-
} ?
|
|
188
|
-
writeOptions: infer
|
|
189
|
-
} ?
|
|
209
|
+
} ? 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 {
|
|
210
|
+
writeOptions: infer W;
|
|
211
|
+
} ? 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 {
|
|
212
|
+
writeOptions: infer W;
|
|
213
|
+
} ? 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>, {
|
|
190
214
|
data: unknown;
|
|
191
215
|
error?: undefined;
|
|
192
216
|
}> extends {
|
|
193
217
|
data: infer D;
|
|
194
|
-
} ? D : unknown : unknown, [
|
|
218
|
+
} ? D : unknown : unknown, [TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
195
219
|
error: unknown;
|
|
196
220
|
data?: undefined;
|
|
197
221
|
}> extends {
|
|
198
222
|
error: infer E;
|
|
199
|
-
} ? E : unknown : unknown] extends [unknown] ? TDefaultError :
|
|
223
|
+
} ? E : unknown : unknown] extends [unknown] ? TDefaultError : TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
200
224
|
error: unknown;
|
|
201
225
|
data?: undefined;
|
|
202
226
|
}> extends {
|
|
203
227
|
error: infer E;
|
|
204
|
-
} ? E : unknown : unknown, ExtractMethodQuery<
|
|
228
|
+
} ? 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>, {
|
|
205
229
|
data: unknown;
|
|
206
230
|
error?: undefined;
|
|
207
231
|
}> extends {
|
|
208
232
|
data: infer D;
|
|
209
|
-
} ? D : unknown : unknown, [
|
|
233
|
+
} ? D : unknown : unknown, [TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
210
234
|
error: unknown;
|
|
211
235
|
data?: undefined;
|
|
212
236
|
}> extends {
|
|
213
237
|
error: infer E;
|
|
214
|
-
} ? E : unknown : unknown] extends [unknown] ? TDefaultError :
|
|
238
|
+
} ? E : unknown : unknown] extends [unknown] ? TDefaultError : TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
215
239
|
error: unknown;
|
|
216
240
|
data?: undefined;
|
|
217
241
|
}> extends {
|
|
218
242
|
error: infer E;
|
|
219
|
-
} ? E : unknown : unknown,
|
|
220
|
-
|
|
221
|
-
} ?
|
|
222
|
-
|
|
223
|
-
} ?
|
|
243
|
+
} ? 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 {
|
|
244
|
+
writeTriggerOptions: infer W_1;
|
|
245
|
+
} ? 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 {
|
|
246
|
+
writeTriggerOptions: infer W_1;
|
|
247
|
+
} ? 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>, {
|
|
248
|
+
data: unknown;
|
|
249
|
+
error?: undefined;
|
|
250
|
+
}> extends {
|
|
251
|
+
data: infer D;
|
|
252
|
+
} ? D : unknown : unknown, [TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
253
|
+
error: unknown;
|
|
254
|
+
data?: undefined;
|
|
255
|
+
}> extends {
|
|
256
|
+
error: infer E;
|
|
257
|
+
} ? E : unknown : unknown] extends [unknown] ? TDefaultError : TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
258
|
+
error: unknown;
|
|
259
|
+
data?: undefined;
|
|
260
|
+
}> extends {
|
|
261
|
+
error: infer E;
|
|
262
|
+
} ? 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 {
|
|
263
|
+
writeResult: infer W_2;
|
|
264
|
+
} ? 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 {
|
|
265
|
+
writeResult: infer W_2;
|
|
266
|
+
} ? 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>>;
|
|
224
267
|
|
|
225
268
|
interface BaseReadOptions extends TagOptions {
|
|
226
269
|
enabled?: EnabledOption;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _spoosh_core from '@spoosh/core';
|
|
2
|
-
import { PluginArray, StateManager, EventEmitter, PluginExecutor, MethodOptionsMap, CoreRequestOptionsBase, ReadClient, TagOptions, SpooshPlugin, PluginTypeConfig, SpooshResponse, InfiniteRequestOptions, ResolveTypes, ResolverContext,
|
|
2
|
+
import { PluginArray, StateManager, EventEmitter, PluginExecutor, MethodOptionsMap, CoreRequestOptionsBase, ReadClient, TagOptions, SpooshPlugin, PluginTypeConfig, SpooshResponse, InfiniteRequestOptions, ResolveTypes, ResolverContext, WriteSelectorClient, SpooshBody, ResolveResultTypes, MergePluginInstanceApi } from '@spoosh/core';
|
|
3
3
|
import { Signal } from '@angular/core';
|
|
4
4
|
|
|
5
5
|
interface SpooshInstanceShape<TApi, TSchema, TDefaultError, TPlugins extends PluginArray> {
|
|
@@ -122,7 +122,31 @@ interface BaseWriteResult<TData, TError, TOptions, TPluginResult = Record<string
|
|
|
122
122
|
meta: Signal<TPluginResult>;
|
|
123
123
|
abort: () => void;
|
|
124
124
|
}
|
|
125
|
-
type
|
|
125
|
+
type TriggerAwaitedReturn<T> = T extends (...args: any[]) => infer R ? Awaited<R> : never;
|
|
126
|
+
type ExtractInputFromResponse$1<T> = T extends {
|
|
127
|
+
input: infer I;
|
|
128
|
+
} ? I : never;
|
|
129
|
+
type ExtractTriggerQuery$1<I> = I extends {
|
|
130
|
+
query: infer Q;
|
|
131
|
+
} ? undefined extends Q ? {
|
|
132
|
+
query?: Exclude<Q, undefined>;
|
|
133
|
+
} : {
|
|
134
|
+
query: Q;
|
|
135
|
+
} : unknown;
|
|
136
|
+
type ExtractTriggerBody$1<I> = I extends {
|
|
137
|
+
body: infer B;
|
|
138
|
+
} ? undefined extends B ? {
|
|
139
|
+
body?: Exclude<B, undefined> | SpooshBody<Exclude<B, undefined>>;
|
|
140
|
+
} : {
|
|
141
|
+
body: B | SpooshBody<B>;
|
|
142
|
+
} : unknown;
|
|
143
|
+
type ExtractTriggerParams$1<I> = I extends {
|
|
144
|
+
params: infer P;
|
|
145
|
+
} ? {
|
|
146
|
+
params: P;
|
|
147
|
+
} : unknown;
|
|
148
|
+
type WriteTriggerInput<T> = ExtractInputFromResponse$1<TriggerAwaitedReturn<T>> extends infer I ? [I] extends [never] ? object : ExtractTriggerQuery$1<I> & ExtractTriggerBody$1<I> & ExtractTriggerParams$1<I> : object;
|
|
149
|
+
type WriteApiClient<TSchema, TDefaultError> = WriteSelectorClient<TSchema, TDefaultError>;
|
|
126
150
|
|
|
127
151
|
type SuccessResponse<T> = Extract<T, {
|
|
128
152
|
data: unknown;
|
|
@@ -163,64 +187,83 @@ type ExtractMethodBody<T> = ExtractMethodOptions<T> extends {
|
|
|
163
187
|
body: infer B;
|
|
164
188
|
} ? B : never;
|
|
165
189
|
|
|
166
|
-
declare function createInjectWrite<TSchema, TDefaultError, TPlugins extends readonly SpooshPlugin<PluginTypeConfig>[]>(options: Omit<SpooshInstanceShape<unknown, TSchema, TDefaultError, TPlugins>, "_types">): <
|
|
167
|
-
writeOptions: infer
|
|
168
|
-
} ?
|
|
169
|
-
writeOptions: infer
|
|
170
|
-
} ?
|
|
190
|
+
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 {
|
|
191
|
+
writeOptions: infer W;
|
|
192
|
+
} ? 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 {
|
|
193
|
+
writeOptions: infer W;
|
|
194
|
+
} ? 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>, {
|
|
171
195
|
data: unknown;
|
|
172
196
|
error?: undefined;
|
|
173
197
|
}> extends {
|
|
174
198
|
data: infer D;
|
|
175
|
-
} ? D : unknown : unknown, [
|
|
199
|
+
} ? D : unknown : unknown, [TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
176
200
|
error: unknown;
|
|
177
201
|
data?: undefined;
|
|
178
202
|
}> extends {
|
|
179
203
|
error: infer E;
|
|
180
|
-
} ? E : unknown : unknown] extends [unknown] ? TDefaultError :
|
|
204
|
+
} ? E : unknown : unknown] extends [unknown] ? TDefaultError : TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
181
205
|
error: unknown;
|
|
182
206
|
data?: undefined;
|
|
183
207
|
}> extends {
|
|
184
208
|
error: infer E;
|
|
185
|
-
} ? E : unknown : unknown, ExtractMethodQuery<
|
|
186
|
-
writeOptions: infer
|
|
187
|
-
} ?
|
|
188
|
-
writeOptions: infer
|
|
189
|
-
} ?
|
|
209
|
+
} ? 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 {
|
|
210
|
+
writeOptions: infer W;
|
|
211
|
+
} ? 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 {
|
|
212
|
+
writeOptions: infer W;
|
|
213
|
+
} ? 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>, {
|
|
190
214
|
data: unknown;
|
|
191
215
|
error?: undefined;
|
|
192
216
|
}> extends {
|
|
193
217
|
data: infer D;
|
|
194
|
-
} ? D : unknown : unknown, [
|
|
218
|
+
} ? D : unknown : unknown, [TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
195
219
|
error: unknown;
|
|
196
220
|
data?: undefined;
|
|
197
221
|
}> extends {
|
|
198
222
|
error: infer E;
|
|
199
|
-
} ? E : unknown : unknown] extends [unknown] ? TDefaultError :
|
|
223
|
+
} ? E : unknown : unknown] extends [unknown] ? TDefaultError : TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
200
224
|
error: unknown;
|
|
201
225
|
data?: undefined;
|
|
202
226
|
}> extends {
|
|
203
227
|
error: infer E;
|
|
204
|
-
} ? E : unknown : unknown, ExtractMethodQuery<
|
|
228
|
+
} ? 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>, {
|
|
205
229
|
data: unknown;
|
|
206
230
|
error?: undefined;
|
|
207
231
|
}> extends {
|
|
208
232
|
data: infer D;
|
|
209
|
-
} ? D : unknown : unknown, [
|
|
233
|
+
} ? D : unknown : unknown, [TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
210
234
|
error: unknown;
|
|
211
235
|
data?: undefined;
|
|
212
236
|
}> extends {
|
|
213
237
|
error: infer E;
|
|
214
|
-
} ? E : unknown : unknown] extends [unknown] ? TDefaultError :
|
|
238
|
+
} ? E : unknown : unknown] extends [unknown] ? TDefaultError : TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
215
239
|
error: unknown;
|
|
216
240
|
data?: undefined;
|
|
217
241
|
}> extends {
|
|
218
242
|
error: infer E;
|
|
219
|
-
} ? E : unknown : unknown,
|
|
220
|
-
|
|
221
|
-
} ?
|
|
222
|
-
|
|
223
|
-
} ?
|
|
243
|
+
} ? 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 {
|
|
244
|
+
writeTriggerOptions: infer W_1;
|
|
245
|
+
} ? 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 {
|
|
246
|
+
writeTriggerOptions: infer W_1;
|
|
247
|
+
} ? 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>, {
|
|
248
|
+
data: unknown;
|
|
249
|
+
error?: undefined;
|
|
250
|
+
}> extends {
|
|
251
|
+
data: infer D;
|
|
252
|
+
} ? D : unknown : unknown, [TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
253
|
+
error: unknown;
|
|
254
|
+
data?: undefined;
|
|
255
|
+
}> extends {
|
|
256
|
+
error: infer E;
|
|
257
|
+
} ? E : unknown : unknown] extends [unknown] ? TDefaultError : TWriteFn extends (...args: any[]) => infer R_1 ? Extract<Awaited<R_1>, {
|
|
258
|
+
error: unknown;
|
|
259
|
+
data?: undefined;
|
|
260
|
+
}> extends {
|
|
261
|
+
error: infer E;
|
|
262
|
+
} ? 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 {
|
|
263
|
+
writeResult: infer W_2;
|
|
264
|
+
} ? 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 {
|
|
265
|
+
writeResult: infer W_2;
|
|
266
|
+
} ? 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>>;
|
|
224
267
|
|
|
225
268
|
interface BaseReadOptions extends TagOptions {
|
|
226
269
|
enabled?: EnabledOption;
|
package/dist/index.js
CHANGED
|
@@ -103,6 +103,7 @@ function createInjectRead(options) {
|
|
|
103
103
|
const hasData = dataSignal() !== void 0;
|
|
104
104
|
loadingSignal.set(!hasData);
|
|
105
105
|
fetchingSignal.set(true);
|
|
106
|
+
errorSignal.set(void 0);
|
|
106
107
|
try {
|
|
107
108
|
const execOptions = overrideOptions ? {
|
|
108
109
|
...currentController?.getContext().request,
|
|
@@ -344,7 +345,7 @@ var import_core3 = require("@angular/core");
|
|
|
344
345
|
var import_core4 = require("@spoosh/core");
|
|
345
346
|
function createInjectWrite(options) {
|
|
346
347
|
const { api, stateManager, pluginExecutor, eventEmitter } = options;
|
|
347
|
-
|
|
348
|
+
function injectWrite(writeFn, writeOptions) {
|
|
348
349
|
const destroyRef = (0, import_core3.inject)(import_core3.DestroyRef);
|
|
349
350
|
const captureSelector = () => {
|
|
350
351
|
const selectorResult = {
|
|
@@ -358,12 +359,12 @@ function createInjectWrite(options) {
|
|
|
358
359
|
}
|
|
359
360
|
);
|
|
360
361
|
writeFn(selectorProxy);
|
|
361
|
-
if (!selectorResult.
|
|
362
|
+
if (!selectorResult.call) {
|
|
362
363
|
throw new Error(
|
|
363
|
-
'injectWrite requires
|
|
364
|
+
'injectWrite requires calling an HTTP method (POST, PUT, PATCH, DELETE). Example: injectWrite((api) => api("posts").POST())'
|
|
364
365
|
);
|
|
365
366
|
}
|
|
366
|
-
return selectorResult.
|
|
367
|
+
return selectorResult.call;
|
|
367
368
|
};
|
|
368
369
|
const instanceId = `angular-${Math.random().toString(36).slice(2)}`;
|
|
369
370
|
let currentQueryKey = null;
|
|
@@ -426,7 +427,9 @@ function createInjectWrite(options) {
|
|
|
426
427
|
}
|
|
427
428
|
lastTriggerOptionsSignal.set(triggerOptions);
|
|
428
429
|
loadingSignal.set(true);
|
|
429
|
-
|
|
430
|
+
errorSignal.set(void 0);
|
|
431
|
+
const mergedOptions = { ...writeOptions, ...triggerOptions, tags };
|
|
432
|
+
currentController.setPluginOptions(mergedOptions);
|
|
430
433
|
try {
|
|
431
434
|
const response = await currentController.execute(triggerOptions, {
|
|
432
435
|
force: true
|
|
@@ -472,7 +475,8 @@ function createInjectWrite(options) {
|
|
|
472
475
|
abort
|
|
473
476
|
};
|
|
474
477
|
return result;
|
|
475
|
-
}
|
|
478
|
+
}
|
|
479
|
+
return injectWrite;
|
|
476
480
|
}
|
|
477
481
|
|
|
478
482
|
// src/injectInfiniteRead/index.ts
|
|
@@ -555,6 +559,7 @@ function createInjectInfiniteRead(options) {
|
|
|
555
559
|
if (currentState.data === void 0 && !isFetching) {
|
|
556
560
|
loadingSignal.set(true);
|
|
557
561
|
fetchingNextSignal.set(true);
|
|
562
|
+
errorSignal.set(void 0);
|
|
558
563
|
currentController.fetchNext().finally(() => {
|
|
559
564
|
updateSignalsFromState();
|
|
560
565
|
loadingSignal.set(false);
|
package/dist/index.mjs
CHANGED
|
@@ -88,6 +88,7 @@ function createInjectRead(options) {
|
|
|
88
88
|
const hasData = dataSignal() !== void 0;
|
|
89
89
|
loadingSignal.set(!hasData);
|
|
90
90
|
fetchingSignal.set(true);
|
|
91
|
+
errorSignal.set(void 0);
|
|
91
92
|
try {
|
|
92
93
|
const execOptions = overrideOptions ? {
|
|
93
94
|
...currentController?.getContext().request,
|
|
@@ -334,7 +335,7 @@ import {
|
|
|
334
335
|
} from "@spoosh/core";
|
|
335
336
|
function createInjectWrite(options) {
|
|
336
337
|
const { api, stateManager, pluginExecutor, eventEmitter } = options;
|
|
337
|
-
|
|
338
|
+
function injectWrite(writeFn, writeOptions) {
|
|
338
339
|
const destroyRef = inject2(DestroyRef2);
|
|
339
340
|
const captureSelector = () => {
|
|
340
341
|
const selectorResult = {
|
|
@@ -348,12 +349,12 @@ function createInjectWrite(options) {
|
|
|
348
349
|
}
|
|
349
350
|
);
|
|
350
351
|
writeFn(selectorProxy);
|
|
351
|
-
if (!selectorResult.
|
|
352
|
+
if (!selectorResult.call) {
|
|
352
353
|
throw new Error(
|
|
353
|
-
'injectWrite requires
|
|
354
|
+
'injectWrite requires calling an HTTP method (POST, PUT, PATCH, DELETE). Example: injectWrite((api) => api("posts").POST())'
|
|
354
355
|
);
|
|
355
356
|
}
|
|
356
|
-
return selectorResult.
|
|
357
|
+
return selectorResult.call;
|
|
357
358
|
};
|
|
358
359
|
const instanceId = `angular-${Math.random().toString(36).slice(2)}`;
|
|
359
360
|
let currentQueryKey = null;
|
|
@@ -416,7 +417,9 @@ function createInjectWrite(options) {
|
|
|
416
417
|
}
|
|
417
418
|
lastTriggerOptionsSignal.set(triggerOptions);
|
|
418
419
|
loadingSignal.set(true);
|
|
419
|
-
|
|
420
|
+
errorSignal.set(void 0);
|
|
421
|
+
const mergedOptions = { ...writeOptions, ...triggerOptions, tags };
|
|
422
|
+
currentController.setPluginOptions(mergedOptions);
|
|
420
423
|
try {
|
|
421
424
|
const response = await currentController.execute(triggerOptions, {
|
|
422
425
|
force: true
|
|
@@ -462,7 +465,8 @@ function createInjectWrite(options) {
|
|
|
462
465
|
abort
|
|
463
466
|
};
|
|
464
467
|
return result;
|
|
465
|
-
}
|
|
468
|
+
}
|
|
469
|
+
return injectWrite;
|
|
466
470
|
}
|
|
467
471
|
|
|
468
472
|
// src/injectInfiniteRead/index.ts
|
|
@@ -557,6 +561,7 @@ function createInjectInfiniteRead(options) {
|
|
|
557
561
|
if (currentState.data === void 0 && !isFetching) {
|
|
558
562
|
loadingSignal.set(true);
|
|
559
563
|
fetchingNextSignal.set(true);
|
|
564
|
+
errorSignal.set(void 0);
|
|
560
565
|
currentController.fetchNext().finally(() => {
|
|
561
566
|
updateSignalsFromState();
|
|
562
567
|
loadingSignal.set(false);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spoosh/angular",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Angular signals integration for Spoosh API toolkit",
|
|
6
6
|
"keywords": [
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
|
-
"@spoosh/core": ">=0.13.
|
|
37
|
+
"@spoosh/core": ">=0.13.2",
|
|
38
38
|
"@angular/core": ">=16.0.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@angular/core": "^
|
|
42
|
-
"@spoosh/core": "0.13.
|
|
41
|
+
"@angular/core": "^21.1.0",
|
|
42
|
+
"@spoosh/core": "0.13.2",
|
|
43
43
|
"@spoosh/test-utils": "0.2.0"
|
|
44
44
|
},
|
|
45
45
|
"scripts": {
|