@data-client/rest 0.15.5 → 0.15.7

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.
@@ -74,6 +74,7 @@ export interface Resource<O extends ResourceGenerics = {
74
74
  ], ParamToArgs<O['searchParams'] extends undefined ? KeysToArgs<ShortenPath<O['path']>> : O['searchParams'] & PathArgs<ShortenPath<O['path']>>>>;
75
75
  body: 'body' extends keyof O ? O['body'] : Partial<Denormalize<O['schema']>>;
76
76
  searchParams: O['searchParams'];
77
+ movePath: O['path'];
77
78
  } & Pick<O, 'paginationField'>> : GetEndpoint<{
78
79
  path: ShortenPath<O['path']>;
79
80
  schema: schema.Collection<[
@@ -81,6 +82,7 @@ export interface Resource<O extends ResourceGenerics = {
81
82
  ], ParamToArgs<(Record<string, number | string | boolean> | undefined) & PathArgs<ShortenPath<O['path']>>>>;
82
83
  body: 'body' extends keyof O ? O['body'] : Partial<Denormalize<O['schema']>>;
83
84
  searchParams: Record<string, number | string | boolean> | undefined;
85
+ movePath: O['path'];
84
86
  } & Pick<O, 'paginationField'>>;
85
87
  /** Create a new item (POST)
86
88
  *
@@ -7,5 +7,17 @@ export default class NetworkError extends Error {
7
7
  response: Response;
8
8
  name: string;
9
9
  constructor(response: Response);
10
+ /** Serialize the error for logging and debugging.
11
+ *
12
+ * Error properties are non-enumerable by default, so `JSON.stringify()`
13
+ * on a plain Error produces `{}`. This ensures status, message, and the
14
+ * request URL are always included in serialized output.
15
+ */
16
+ toJSON(): {
17
+ name: string;
18
+ status: number;
19
+ message: string;
20
+ url: string;
21
+ };
10
22
  }
11
23
  //# sourceMappingURL=NetworkError.d.ts.map
@@ -117,6 +117,13 @@ export interface RestInstance<F extends FetchFunction = FetchFunction, S extends
117
117
  remove: RemoveEndpoint<F, ExtractCollection<S>['remove'], Exclude<O, 'body' | 'method'> & {
118
118
  body: OptionsToAdderBodyArgument<O> | OptionsToAdderBodyArgument<O>[] | FormData;
119
119
  }>;
120
+ /** Move item between collections (PATCH) - removes from old, adds to new
121
+ * @see https://dataclient.io/rest/api/RestEndpoint#move
122
+ */
123
+ move: MoveEndpoint<F, ExtractCollection<S>['move'], {
124
+ path: 'movePath' extends keyof O ? O['movePath'] & string : O['path'];
125
+ body: OptionsToAdderBodyArgument<O> | FormData;
126
+ }>;
120
127
  }
121
128
  export type RestEndpointExtendOptions<O extends PartialRestGenerics, E extends {
122
129
  body?: any;
@@ -127,25 +134,25 @@ export type RestEndpointExtendOptions<O extends PartialRestGenerics, E extends {
127
134
  type OptionsToRestEndpoint<O extends PartialRestGenerics, E extends RestInstanceBase & {
128
135
  body?: any;
129
136
  paginationField?: string;
130
- }, F extends FetchFunction> = 'path' extends keyof O ? RestType<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<Exclude<O['path'], undefined>> : O['searchParams'] & PathArgs<Exclude<O['path'], undefined>> : PathArgs<Exclude<O['path'], undefined>>, OptionsToBodyArgument<'body' extends keyof O ? O : E, 'method' extends keyof O ? O['method'] : E['method']>, 'schema' extends keyof O ? O['schema'] : E['schema'], 'sideEffect' extends keyof O ? Extract<O['sideEffect'], undefined | true> : 'method' extends keyof O ? MethodToSide<O['method']> : E['sideEffect'], O['process'] extends {} ? ReturnType<O['process']> : ResolveType<F>, {
137
+ }, F extends FetchFunction> = 'path' extends keyof O ? RestType<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<Exclude<O['path'], undefined>> : O['searchParams'] & PathArgs<Exclude<O['path'], undefined>> : PathArgs<Exclude<O['path'], undefined>>, OptionsToBodyArgument<'body' extends keyof O ? O : E, 'method' extends keyof O ? O['method'] : E['method']>, 'schema' extends keyof O ? O['schema'] : E['schema'], 'sideEffect' extends keyof O ? Extract<O['sideEffect'], boolean | undefined> : 'method' extends keyof O ? MethodToSide<O['method']> : E['sideEffect'], O['process'] extends {} ? ReturnType<O['process']> : ResolveType<F>, {
131
138
  path: Exclude<O['path'], undefined>;
132
139
  body: 'body' extends keyof O ? O['body'] : E['body'];
133
140
  searchParams: 'searchParams' extends keyof O ? O['searchParams'] : E['searchParams'];
134
141
  method: 'method' extends keyof O ? O['method'] : E['method'];
135
142
  paginationField: 'paginationField' extends keyof O ? O['paginationField'] : E['paginationField'];
136
- }> : 'body' extends keyof O ? RestType<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<Exclude<O['path'], undefined>> : O['searchParams'] & PathArgs<Exclude<E['path'], undefined>> : PathArgs<Exclude<E['path'], undefined>>, OptionsToBodyArgument<O, 'method' extends keyof O ? O['method'] : E['method']>, 'schema' extends keyof O ? O['schema'] : E['schema'], 'sideEffect' extends keyof O ? Extract<O['sideEffect'], undefined | true> : 'method' extends keyof O ? MethodToSide<O['method']> : E['sideEffect'], O['process'] extends {} ? ReturnType<O['process']> : ResolveType<F>, {
143
+ }> : 'body' extends keyof O ? RestType<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<Exclude<O['path'], undefined>> : O['searchParams'] & PathArgs<Exclude<E['path'], undefined>> : PathArgs<Exclude<E['path'], undefined>>, OptionsToBodyArgument<O, 'method' extends keyof O ? O['method'] : E['method']>, 'schema' extends keyof O ? O['schema'] : E['schema'], 'sideEffect' extends keyof O ? Extract<O['sideEffect'], boolean | undefined> : 'method' extends keyof O ? MethodToSide<O['method']> : E['sideEffect'], O['process'] extends {} ? ReturnType<O['process']> : ResolveType<F>, {
137
144
  path: E['path'];
138
145
  body: O['body'];
139
146
  searchParams: 'searchParams' extends keyof O ? O['searchParams'] : E['searchParams'];
140
147
  method: 'method' extends keyof O ? O['method'] : E['method'];
141
148
  paginationField: 'paginationField' extends keyof O ? O['paginationField'] : Extract<E['paginationField'], string>;
142
- }> : 'searchParams' extends keyof O ? RestType<O['searchParams'] extends undefined ? PathArgs<Exclude<O['path'], undefined>> : O['searchParams'] & PathArgs<Exclude<E['path'], undefined>>, OptionsToBodyArgument<E, 'method' extends keyof O ? O['method'] : E['method']>, 'schema' extends keyof O ? O['schema'] : E['schema'], 'sideEffect' extends keyof O ? Extract<O['sideEffect'], undefined | true> : 'method' extends keyof O ? MethodToSide<O['method']> : E['sideEffect'], O['process'] extends {} ? ReturnType<O['process']> : ResolveType<F>, {
149
+ }> : 'searchParams' extends keyof O ? RestType<O['searchParams'] extends undefined ? PathArgs<Exclude<O['path'], undefined>> : O['searchParams'] & PathArgs<Exclude<E['path'], undefined>>, OptionsToBodyArgument<E, 'method' extends keyof O ? O['method'] : E['method']>, 'schema' extends keyof O ? O['schema'] : E['schema'], 'sideEffect' extends keyof O ? Extract<O['sideEffect'], boolean | undefined> : 'method' extends keyof O ? MethodToSide<O['method']> : E['sideEffect'], O['process'] extends {} ? ReturnType<O['process']> : ResolveType<F>, {
143
150
  path: E['path'];
144
151
  body: E['body'];
145
152
  searchParams: O['searchParams'];
146
153
  method: 'method' extends keyof O ? O['method'] : E['method'];
147
154
  paginationField: 'paginationField' extends keyof O ? O['paginationField'] : Extract<E['paginationField'], string>;
148
- }> : RestInstance<F, 'schema' extends keyof O ? O['schema'] : E['schema'], 'sideEffect' extends keyof O ? Extract<O['sideEffect'], undefined | true> : 'method' extends keyof O ? MethodToSide<O['method']> : E['sideEffect'], {
155
+ }> : RestInstance<F, 'schema' extends keyof O ? O['schema'] : E['schema'], 'sideEffect' extends keyof O ? Extract<O['sideEffect'], boolean | undefined> : 'method' extends keyof O ? MethodToSide<O['method']> : E['sideEffect'], {
149
156
  path: 'path' extends keyof O ? Exclude<O['path'], undefined> : E['path'];
150
157
  body: 'body' extends keyof O ? O['body'] : E['body'];
151
158
  searchParams: 'searchParams' extends keyof O ? O['searchParams'] : E['searchParams'];
@@ -160,7 +167,7 @@ export type RestExtendedEndpoint<O extends PartialRestGenerics, E extends RestIn
160
167
  };
161
168
  } ? {
162
169
  paginationField: E['getPage']['paginationField'];
163
- } : unknown), RestInstance<(...args: Parameters<E>) => O['process'] extends {} ? Promise<ReturnType<O['process']>> : ReturnType<E>, 'schema' extends keyof O ? O['schema'] : E['schema'], 'method' extends keyof O ? MethodToSide<O['method']> : E['sideEffect']>> & Omit<O, KeyofRestEndpoint> & Omit<E, KeyofRestEndpoint | keyof O>;
170
+ } : unknown), RestInstance<(...args: Parameters<E>) => O['process'] extends {} ? Promise<ReturnType<O['process']>> : ReturnType<E>, 'schema' extends keyof O ? O['schema'] : E['schema'], 'sideEffect' extends keyof O ? Extract<O['sideEffect'], boolean | undefined> : 'method' extends keyof O ? MethodToSide<O['method']> : E['sideEffect']>> & Omit<O, KeyofRestEndpoint> & Omit<E, KeyofRestEndpoint | keyof O>;
164
171
  export interface PartialRestGenerics {
165
172
  /** @see https://dataclient.io/rest/api/RestEndpoint#path */
166
173
  readonly path?: string;
@@ -244,6 +251,15 @@ export type RemoveEndpoint<F extends FetchFunction = FetchFunction, S extends Sc
244
251
  }> = RestInstanceBase<RestFetch<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<Exclude<O['path'], undefined>> : O['searchParams'] & PathArgs<Exclude<O['path'], undefined>> : PathArgs<Exclude<O['path'], undefined>>, O['body'], ResolveType<F>>, S, true, Omit<O, 'method'> & {
245
252
  method: 'PATCH';
246
253
  }>;
254
+ export type MoveEndpoint<F extends FetchFunction = FetchFunction, S extends Schema | undefined = any, O extends {
255
+ path: string;
256
+ body: any;
257
+ } = {
258
+ path: string;
259
+ body: any;
260
+ }> = RestInstanceBase<RestFetch<PathArgs<Exclude<O['path'], undefined>>, O['body'], ResolveType<F>>, S, true, Omit<O, 'method' | 'searchParams'> & {
261
+ method: 'PATCH';
262
+ }>;
247
263
  type OptionsToAdderBodyArgument<O extends {
248
264
  body?: any;
249
265
  }> = 'body' extends keyof O ? O['body'] : any;
@@ -286,7 +302,7 @@ export type RestEndpointConstructorOptions<O extends RestGenerics = any> = RestE
286
302
  */
287
303
  export interface RestEndpoint<O extends RestGenerics = any> extends RestInstance<RestFetch<'searchParams' extends keyof O ? O['searchParams'] extends undefined ? PathArgs<O['path']> : O['searchParams'] & PathArgs<O['path']> : PathArgs<O['path']>, OptionsToBodyArgument<O, 'method' extends keyof O ? O['method'] : O extends {
288
304
  sideEffect: true;
289
- } ? 'POST' : 'GET'>, O['process'] extends {} ? ReturnType<O['process']> : any>, 'schema' extends keyof O ? O['schema'] : undefined, 'sideEffect' extends keyof O ? Extract<O['sideEffect'], undefined | true> : MethodToSide<O['method']>, 'method' extends keyof O ? O : O & {
305
+ } ? 'POST' : 'GET'>, O['process'] extends {} ? ReturnType<O['process']> : any>, 'schema' extends keyof O ? O['schema'] : undefined, 'sideEffect' extends keyof O ? Extract<O['sideEffect'], boolean | undefined> : MethodToSide<O['method']>, 'method' extends keyof O ? O : O & {
290
306
  method: O extends {
291
307
  sideEffect: true;
292
308
  } ? 'POST' : 'GET';
@@ -74,6 +74,7 @@ export interface Resource<O extends ResourceGenerics = {
74
74
  ], ParamToArgs<O['searchParams'] extends undefined ? KeysToArgs<ShortenPath<O['path']>> : O['searchParams'] & PathArgs<ShortenPath<O['path']>>>>;
75
75
  body: 'body' extends keyof O ? O['body'] : Partial<Denormalize<O['schema']>>;
76
76
  searchParams: O['searchParams'];
77
+ movePath: O['path'];
77
78
  } & Pick<O, 'paginationField'>> : GetEndpoint<{
78
79
  path: ShortenPath<O['path']>;
79
80
  schema: schema.Collection<[
@@ -81,6 +82,7 @@ export interface Resource<O extends ResourceGenerics = {
81
82
  ], ParamToArgs<(Record<string, number | string | boolean> | undefined) & PathArgs<ShortenPath<O['path']>>>>;
82
83
  body: 'body' extends keyof O ? O['body'] : Partial<Denormalize<O['schema']>>;
83
84
  searchParams: Record<string, number | string | boolean> | undefined;
85
+ movePath: O['path'];
84
86
  } & Pick<O, 'paginationField'>>;
85
87
  /** Create a new item (POST)
86
88
  *