@spoosh/angular 0.7.0 → 0.9.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/README.md +2 -2
- package/dist/index.d.mts +67 -24
- package/dist/index.d.ts +67 -24
- package/dist/index.js +17 -7
- package/dist/index.mjs +17 -7
- package/package.json +5 -5
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
|
@@ -344,7 +344,7 @@ var import_core3 = require("@angular/core");
|
|
|
344
344
|
var import_core4 = require("@spoosh/core");
|
|
345
345
|
function createInjectWrite(options) {
|
|
346
346
|
const { api, stateManager, pluginExecutor, eventEmitter } = options;
|
|
347
|
-
|
|
347
|
+
function injectWrite(writeFn, writeOptions) {
|
|
348
348
|
const destroyRef = (0, import_core3.inject)(import_core3.DestroyRef);
|
|
349
349
|
const captureSelector = () => {
|
|
350
350
|
const selectorResult = {
|
|
@@ -358,12 +358,12 @@ function createInjectWrite(options) {
|
|
|
358
358
|
}
|
|
359
359
|
);
|
|
360
360
|
writeFn(selectorProxy);
|
|
361
|
-
if (!selectorResult.
|
|
361
|
+
if (!selectorResult.call) {
|
|
362
362
|
throw new Error(
|
|
363
|
-
'injectWrite requires
|
|
363
|
+
'injectWrite requires calling an HTTP method (POST, PUT, PATCH, DELETE). Example: injectWrite((api) => api("posts").POST())'
|
|
364
364
|
);
|
|
365
365
|
}
|
|
366
|
-
return selectorResult.
|
|
366
|
+
return selectorResult.call;
|
|
367
367
|
};
|
|
368
368
|
const instanceId = `angular-${Math.random().toString(36).slice(2)}`;
|
|
369
369
|
let currentQueryKey = null;
|
|
@@ -426,7 +426,8 @@ function createInjectWrite(options) {
|
|
|
426
426
|
}
|
|
427
427
|
lastTriggerOptionsSignal.set(triggerOptions);
|
|
428
428
|
loadingSignal.set(true);
|
|
429
|
-
|
|
429
|
+
const mergedOptions = { ...writeOptions, ...triggerOptions, tags };
|
|
430
|
+
currentController.setPluginOptions(mergedOptions);
|
|
430
431
|
try {
|
|
431
432
|
const response = await currentController.execute(triggerOptions, {
|
|
432
433
|
force: true
|
|
@@ -472,7 +473,8 @@ function createInjectWrite(options) {
|
|
|
472
473
|
abort
|
|
473
474
|
};
|
|
474
475
|
return result;
|
|
475
|
-
}
|
|
476
|
+
}
|
|
477
|
+
return injectWrite;
|
|
476
478
|
}
|
|
477
479
|
|
|
478
480
|
// src/injectInfiniteRead/index.ts
|
|
@@ -842,13 +844,21 @@ function create(instance) {
|
|
|
842
844
|
eventEmitter,
|
|
843
845
|
pluginExecutor
|
|
844
846
|
});
|
|
847
|
+
const plugins = pluginExecutor.getPlugins();
|
|
848
|
+
const setupContext = {
|
|
849
|
+
stateManager,
|
|
850
|
+
eventEmitter,
|
|
851
|
+
pluginExecutor
|
|
852
|
+
};
|
|
853
|
+
for (const plugin of plugins) {
|
|
854
|
+
plugin.setup?.(setupContext);
|
|
855
|
+
}
|
|
845
856
|
const instanceApiContext = {
|
|
846
857
|
api,
|
|
847
858
|
stateManager,
|
|
848
859
|
eventEmitter,
|
|
849
860
|
pluginExecutor
|
|
850
861
|
};
|
|
851
|
-
const plugins = pluginExecutor.getPlugins();
|
|
852
862
|
const instanceApis = plugins.reduce(
|
|
853
863
|
(acc, plugin) => {
|
|
854
864
|
if (plugin.instanceApi) {
|
package/dist/index.mjs
CHANGED
|
@@ -334,7 +334,7 @@ import {
|
|
|
334
334
|
} from "@spoosh/core";
|
|
335
335
|
function createInjectWrite(options) {
|
|
336
336
|
const { api, stateManager, pluginExecutor, eventEmitter } = options;
|
|
337
|
-
|
|
337
|
+
function injectWrite(writeFn, writeOptions) {
|
|
338
338
|
const destroyRef = inject2(DestroyRef2);
|
|
339
339
|
const captureSelector = () => {
|
|
340
340
|
const selectorResult = {
|
|
@@ -348,12 +348,12 @@ function createInjectWrite(options) {
|
|
|
348
348
|
}
|
|
349
349
|
);
|
|
350
350
|
writeFn(selectorProxy);
|
|
351
|
-
if (!selectorResult.
|
|
351
|
+
if (!selectorResult.call) {
|
|
352
352
|
throw new Error(
|
|
353
|
-
'injectWrite requires
|
|
353
|
+
'injectWrite requires calling an HTTP method (POST, PUT, PATCH, DELETE). Example: injectWrite((api) => api("posts").POST())'
|
|
354
354
|
);
|
|
355
355
|
}
|
|
356
|
-
return selectorResult.
|
|
356
|
+
return selectorResult.call;
|
|
357
357
|
};
|
|
358
358
|
const instanceId = `angular-${Math.random().toString(36).slice(2)}`;
|
|
359
359
|
let currentQueryKey = null;
|
|
@@ -416,7 +416,8 @@ function createInjectWrite(options) {
|
|
|
416
416
|
}
|
|
417
417
|
lastTriggerOptionsSignal.set(triggerOptions);
|
|
418
418
|
loadingSignal.set(true);
|
|
419
|
-
|
|
419
|
+
const mergedOptions = { ...writeOptions, ...triggerOptions, tags };
|
|
420
|
+
currentController.setPluginOptions(mergedOptions);
|
|
420
421
|
try {
|
|
421
422
|
const response = await currentController.execute(triggerOptions, {
|
|
422
423
|
force: true
|
|
@@ -462,7 +463,8 @@ function createInjectWrite(options) {
|
|
|
462
463
|
abort
|
|
463
464
|
};
|
|
464
465
|
return result;
|
|
465
|
-
}
|
|
466
|
+
}
|
|
467
|
+
return injectWrite;
|
|
466
468
|
}
|
|
467
469
|
|
|
468
470
|
// src/injectInfiniteRead/index.ts
|
|
@@ -844,13 +846,21 @@ function create(instance) {
|
|
|
844
846
|
eventEmitter,
|
|
845
847
|
pluginExecutor
|
|
846
848
|
});
|
|
849
|
+
const plugins = pluginExecutor.getPlugins();
|
|
850
|
+
const setupContext = {
|
|
851
|
+
stateManager,
|
|
852
|
+
eventEmitter,
|
|
853
|
+
pluginExecutor
|
|
854
|
+
};
|
|
855
|
+
for (const plugin of plugins) {
|
|
856
|
+
plugin.setup?.(setupContext);
|
|
857
|
+
}
|
|
847
858
|
const instanceApiContext = {
|
|
848
859
|
api,
|
|
849
860
|
stateManager,
|
|
850
861
|
eventEmitter,
|
|
851
862
|
pluginExecutor
|
|
852
863
|
};
|
|
853
|
-
const plugins = pluginExecutor.getPlugins();
|
|
854
864
|
const instanceApis = plugins.reduce(
|
|
855
865
|
(acc, plugin) => {
|
|
856
866
|
if (plugin.instanceApi) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spoosh/angular",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Angular signals integration for Spoosh API toolkit",
|
|
6
6
|
"keywords": [
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
|
-
"@spoosh/core": ">=0.
|
|
37
|
+
"@spoosh/core": ">=0.13.1",
|
|
38
38
|
"@angular/core": ">=16.0.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@angular/core": "^
|
|
42
|
-
"@spoosh/core": "0.
|
|
43
|
-
"@spoosh/test-utils": "0.
|
|
41
|
+
"@angular/core": "^21.1.0",
|
|
42
|
+
"@spoosh/core": "0.13.1",
|
|
43
|
+
"@spoosh/test-utils": "0.2.0"
|
|
44
44
|
},
|
|
45
45
|
"scripts": {
|
|
46
46
|
"dev": "tsup --watch",
|