mobx-tanstack-query-api 0.41.0 → 0.42.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/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as _tanstack_query_core from '@tanstack/query-core';
2
- import { InvalidateOptions, DefaultError, RefetchOptions, QueryObserverResult, QueryFunctionContext, InvalidateQueryFilters, InfiniteData, QueryKey } from '@tanstack/query-core';
2
+ import { InvalidateOptions, DefaultError, RefetchOptions, QueryObserverResult, QueryFunctionContext, InvalidateQueryFilters, InfiniteData, InfiniteQueryObserverResult, QueryKey } from '@tanstack/query-core';
3
3
  export * from '@tanstack/query-core';
4
4
  import { HttpStatusCode, HttpSuccessStatusCode } from 'http-status-code-types';
5
- import { QueryClient, QueryClientConfig, Query, QueryUpdateOptionsAllVariants, QueryConfig, InfiniteQueryConfig, InfiniteQueryOptions, InfiniteQueryUpdateOptions, InfiniteQueryDynamicOptions, InfiniteQuery, MutationInvalidateQueriesOptions, MutationConfig, Mutation, IQueryClientCore } from 'mobx-tanstack-query';
5
+ import { QueryClient, QueryClientConfig, Query, QueryUpdateOptionsAllVariants, QueryConfig, InfiniteQueryConfig, IQueryClientCore, InfiniteQueryOptions, InfiniteQueryUpdateOptions, InfiniteQueryDynamicOptions, InfiniteQuery, InfiniteQueryUpdateOptionsAllVariants, MutationInvalidateQueriesOptions, MutationConfig, Mutation } from 'mobx-tanstack-query';
6
6
  import { MaybeFalsy, AnyObject, Maybe, MaybeFn, ValueOf, Defined, IsPartial } from 'yummies/types';
7
7
  import { IStringifyOptions, BooleanOptional } from 'qs';
8
8
 
@@ -283,10 +283,20 @@ type ToEndpoint<T> = T extends AnyEndpoint ? T : AnyEndpoint;
283
283
 
284
284
  type ShortInfiniteQueryConfig<TQueryFnData, TError = DefaultError, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>> = Omit<InfiniteQueryConfig<TQueryFnData, TError, TPageParam, TData, any[]>, ExcludedQueryKeys> & {
285
285
  enabled?: boolean;
286
+ queryClient?: EndpointQueryClient;
287
+ };
288
+ type EndpointInfiniteQueryContext<TPageParam = unknown> = Omit<QueryFunctionContext<any, TPageParam>, 'client'> & {
289
+ client: IQueryClientCore;
286
290
  };
291
+ type EndpointInfiniteQueryMergePageParam<TEndpoint extends AnyEndpoint, TPageParam = unknown> = 'params' | 'body' | 'query' | 'headers' | ((params: NoInfer<TEndpoint['__params']>, pageParam: NoInfer<TPageParam>, context: EndpointInfiniteQueryContext<TPageParam>) => MaybeFalsy<TEndpoint['__params']>);
287
292
  type EndpointInfiniteQueryFlattenOptions<TEndpoint extends AnyEndpoint, TQueryFnData = TEndpoint['__response']['data'], TError = DefaultError, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>> = ShortInfiniteQueryConfig<NoInfer<TQueryFnData>, TError, TPageParam, TData> & {
288
293
  uniqKey?: EndpointQueryUniqKey;
289
- params: (pageParam: NoInfer<TPageParam>) => MaybeFalsy<TEndpoint['__params']>;
294
+ params?: MaybeFalsy<TEndpoint['__params']>;
295
+ /**
296
+ * Merge `pageParam` into endpoint params before request.
297
+ * Use string shortcuts for common cases or pass a function for custom shaping.
298
+ */
299
+ mergePageParam?: EndpointInfiniteQueryMergePageParam<TEndpoint, NoInfer<TPageParam>>;
290
300
  /**
291
301
  * Transform response to QueryFnData
292
302
  */
@@ -294,7 +304,12 @@ type EndpointInfiniteQueryFlattenOptions<TEndpoint extends AnyEndpoint, TQueryFn
294
304
  };
295
305
  type EndpointInfiniteQueryOptions<TEndpoint extends AnyEndpoint, TQueryFnData = TEndpoint['__response']['data'], TError = DefaultError, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>> = ShortInfiniteQueryConfig<NoInfer<TQueryFnData>, TError, TPageParam, TData> & {
296
306
  uniqKey?: EndpointQueryUniqKey;
297
- params: (pageParam: NoInfer<TPageParam>) => MaybeFalsy<TEndpoint['__params']>;
307
+ params?: MaybeFn<MaybeFalsy<TEndpoint['__params']>, []>;
308
+ /**
309
+ * Merge `pageParam` into endpoint params before request.
310
+ * Use string shortcuts for common cases or pass a function for custom shaping.
311
+ */
312
+ mergePageParam?: EndpointInfiniteQueryMergePageParam<TEndpoint, NoInfer<TPageParam>>;
298
313
  /**
299
314
  * Transform response to QueryFnData
300
315
  */
@@ -304,16 +319,45 @@ type EnhanceUpdatOptionVariant<TEndpoint extends AnyEndpoint, TVariant extends A
304
319
  params?: MaybeFalsy<TEndpoint['__params']>;
305
320
  };
306
321
  type EndpointInfiniteQueryUpdateOptionsAllVariants<TEndpoint extends AnyEndpoint, TQueryFnData = TEndpoint['__response']['data'], TError = DefaultError, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>> = EnhanceUpdatOptionVariant<TEndpoint, Partial<InfiniteQueryOptions<TQueryFnData, TError, TPageParam, TData, any[]>>> | EnhanceUpdatOptionVariant<TEndpoint, InfiniteQueryUpdateOptions<TQueryFnData, TError, TPageParam, TData, any[]>> | EnhanceUpdatOptionVariant<TEndpoint, InfiniteQueryDynamicOptions<TQueryFnData, TError, TPageParam, TData, any[]>>;
322
+ type ToEndpointInfiniteQuery<T extends AnyEndpoint, TQueryFnData = ToEndpoint<T>['__response']['data'], TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>> = T extends Endpoint<infer TResponse, any, any> ? EndpointInfiniteQuery<T, TResponse['data'], DefaultError, TPageParam, TData> : ToEndpointInfiniteQuery<AnyEndpoint>;
307
323
 
324
+ /** biome-ignore-all lint/correctness/noUnusedVariables: generic type imports are intentional */
325
+
326
+ /**
327
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoint-queries/)
328
+ */
308
329
  declare class EndpointInfiniteQuery<TEndpoint extends AnyEndpoint, TQueryFnData = TEndpoint['__response']['data'], TError = DefaultError, TPageParam = unknown, TData = InfiniteData<TQueryFnData, TPageParam>> extends InfiniteQuery<TQueryFnData, TError, TPageParam, TData, any[]> {
309
330
  private endpoint;
310
- response: TEndpoint['__response'] | null;
311
- params: TEndpoint['__params'] | null;
312
- private uniqKey?;
313
- constructor(endpoint: AnyEndpoint, queryClient: EndpointQueryClient, queryOptionsInput: EndpointInfiniteQueryOptions<TEndpoint, TQueryFnData, TError, TPageParam, TData> | (() => EndpointInfiniteQueryFlattenOptions<TEndpoint, TQueryFnData, TError, TPageParam, TData>));
314
- update({ params, ...options }: EndpointInfiniteQueryUpdateOptionsAllVariants<TEndpoint, TQueryFnData, TError, TPageParam, TData>): void;
315
- start(params: MaybeFalsy<TEndpoint['__params']>): Promise<QueryObserverResult<TData, TError>>;
331
+ private _observableData;
332
+ /**
333
+ * Creates `EndpointInfiniteQuery` instance.
334
+ */
335
+ constructor(endpoint: AnyEndpoint, inputQueryClient: EndpointQueryClient, queryOptionsInput: EndpointInfiniteQueryOptions<TEndpoint, TQueryFnData, TError, TPageParam, TData> | (() => EndpointInfiniteQueryFlattenOptions<TEndpoint, TQueryFnData, TError, TPageParam, TData>));
336
+ /**
337
+ * Current base endpoint params used for `queryKey`.
338
+ */
339
+ get params(): MaybeFalsy<TEndpoint["__params"]>;
340
+ /**
341
+ * Last raw HTTP response returned by endpoint.
342
+ */
343
+ get response(): TEndpoint["__response"] | null;
344
+ /**
345
+ * Updates query options and optionally base params.
346
+ */
347
+ update(updateParams: Omit<InfiniteQueryUpdateOptionsAllVariants<TQueryFnData, TError, TPageParam, TData, any[]>, 'queryKey'> & {
348
+ params?: MaybeFalsy<TEndpoint['__params']>;
349
+ }): void;
350
+ /**
351
+ * Sets base params and starts the infinite query execution.
352
+ */
353
+ start(params: MaybeFalsy<TEndpoint['__params']>): Promise<InfiniteQueryObserverResult<TData, TError>>;
354
+ protected handleDestroy(): void;
316
355
  }
356
+ declare function mergeInfiniteQueryPageParam<TEndpoint extends AnyEndpoint, TPageParam>(params: TEndpoint['__params'] & AnyObject, pageParam: TPageParam | undefined, ctx: any, mergePageParam?: EndpointInfiniteQueryMergePageParam<TEndpoint, TPageParam>): AnyObject;
357
+ declare const buildInfiniteOptionsFromParams: (endpoint: AnyEndpoint, params: MaybeFalsy<AnyObject>, uniqKey: Maybe<EndpointQueryUniqKey>) => {
358
+ enabled: boolean;
359
+ queryKey: any[];
360
+ };
317
361
 
318
362
  interface EndpointMutationInvalidateQueriesOptions extends MutationInvalidateQueriesOptions {
319
363
  }
@@ -369,32 +413,127 @@ interface Endpoint<TResponse extends AnyResponse, TParams extends AnyObject, TMe
369
413
  * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/)
370
414
  */
371
415
  declare class Endpoint<TResponse extends AnyResponse, TParams extends AnyObject, TMetaData extends AnyObject = AnyObject> {
372
- configuration: EndpointConfiguration<NoInfer<TParams>, TMetaData>;
373
- queryClient: EndpointQueryClient;
374
- httpClient: HttpClient;
416
+ /**
417
+ * Unique runtime identifier of the endpoint instance.
418
+ *
419
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#endpointid)
420
+ */
375
421
  endpointId: string;
422
+ /**
423
+ * Mutable presets used by helper factory methods like `toMutation()`.
424
+ *
425
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#presets)
426
+ */
376
427
  presets: {
377
428
  mutations: EndpointMutationPresets;
378
429
  };
430
+ /**
431
+ * Type-only helper that exposes endpoint params shape.
432
+ *
433
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#__params)
434
+ */
379
435
  __params: TParams;
436
+ /**
437
+ * Type-only helper that exposes endpoint response shape.
438
+ *
439
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#__response)
440
+ */
380
441
  __response: TResponse;
442
+ /**
443
+ * Custom metadata attached to the endpoint configuration.
444
+ *
445
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#meta)
446
+ */
381
447
  meta: TMetaData;
448
+ /**
449
+ * Endpoint configuration generated from the contract/codegen layer.
450
+ *
451
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#configuration)
452
+ */
453
+ configuration: EndpointConfiguration<NoInfer<TParams>, TMetaData>;
454
+ /**
455
+ * Query client used by query and mutation helpers.
456
+ *
457
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#queryclient)
458
+ */
459
+ queryClient: EndpointQueryClient;
460
+ /**
461
+ * HTTP client used to build URLs and execute requests.
462
+ *
463
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#httpclient)
464
+ */
465
+ httpClient: HttpClient;
382
466
  protected validateParams: boolean;
383
467
  protected validateData: boolean;
384
468
  protected throwParams: boolean;
385
469
  protected throwData: boolean;
470
+ /**
471
+ * Creates a callable `Endpoint` instance.
472
+ *
473
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#constructor)
474
+ */
386
475
  constructor(configuration: EndpointConfiguration<NoInfer<TParams>, TMetaData>, queryClient: EndpointQueryClient, httpClient: HttpClient);
476
+ /**
477
+ * Returns a fully resolved request URL for the provided params.
478
+ *
479
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#getfullurl)
480
+ */
387
481
  getFullUrl(...args: IsPartial<TParams> extends true ? [params?: Maybe<TParams>] : [params: TParams]): string;
482
+ /**
483
+ * Returns the resolved request path without the base URL.
484
+ *
485
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#getpath)
486
+ */
388
487
  getPath(...args: IsPartial<TParams> extends true ? [params?: Maybe<TParams>] : [params: TParams]): string;
488
+ /**
489
+ * Extracts endpoint params from TanStack Query function context.
490
+ *
491
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#getparamsfromcontext)
492
+ */
389
493
  getParamsFromContext<TQueryKey extends QueryKey = QueryKey, TPageParam = never>(ctx: Omit<QueryFunctionContext<TQueryKey, TPageParam>, 'client'> & {
390
494
  client: IQueryClientCore;
391
495
  }): TParams;
496
+ /**
497
+ * Tags declared for the endpoint.
498
+ *
499
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#tags)
500
+ */
392
501
  get tags(): string[];
502
+ /**
503
+ * Path segments declared for the endpoint.
504
+ *
505
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#path)
506
+ */
393
507
  get path(): string[];
508
+ /**
509
+ * Slash-joined path declaration for the endpoint.
510
+ *
511
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#pathdeclaration)
512
+ */
394
513
  get pathDeclaration(): string;
514
+ /**
515
+ * Operation identifier from the endpoint configuration.
516
+ *
517
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#operationid)
518
+ */
395
519
  get operationId(): string;
520
+ /**
521
+ * Optional endpoint group.
522
+ *
523
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#group)
524
+ */
396
525
  get group(): string | undefined;
526
+ /**
527
+ * Optional endpoint namespace.
528
+ *
529
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#namespace)
530
+ */
397
531
  get namespace(): string | undefined;
532
+ /**
533
+ * Narrows unknown values to endpoint HTTP responses.
534
+ *
535
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#checkresponse)
536
+ */
398
537
  checkResponse<TStatus extends HttpStatusCode>(response: unknown, status: TStatus): response is Extract<TResponse, {
399
538
  status: TStatus;
400
539
  }>;
@@ -404,7 +543,17 @@ declare class Endpoint<TResponse extends AnyResponse, TParams extends AnyObject,
404
543
  } | undefined, payload: unknown, options?: {
405
544
  throw?: boolean;
406
545
  }): Promise<unknown>;
546
+ /**
547
+ * Performs the HTTP request and optionally validates contracts.
548
+ *
549
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#request)
550
+ */
407
551
  request(...args: IsPartial<TParams> extends true ? [params?: Maybe<TParams>] : [params: TParams]): Promise<TResponse>;
552
+ /**
553
+ * Builds query metadata payload enriched with endpoint fields.
554
+ *
555
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#toquerymeta)
556
+ */
408
557
  toQueryMeta: (meta?: AnyObject) => {
409
558
  tags: string[];
410
559
  operationId: string;
@@ -413,8 +562,23 @@ declare class Endpoint<TResponse extends AnyResponse, TParams extends AnyObject,
413
562
  endpointId: string;
414
563
  endpointQuery: true;
415
564
  };
565
+ /**
566
+ * Builds a stable TanStack Query key for a regular query.
567
+ *
568
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#toquerykey)
569
+ */
416
570
  toQueryKey(params?: Maybe<TParams>, uniqKey?: EndpointQueryUniqKey): any;
571
+ /**
572
+ * Builds a stable TanStack Query key for an infinite query.
573
+ *
574
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#toinfinitequerykey)
575
+ */
417
576
  toInfiniteQueryKey(params?: Maybe<TParams>, uniqKey?: EndpointQueryUniqKey): any;
577
+ /**
578
+ * Invalidates the exact query produced by this endpoint.
579
+ *
580
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#invalidatequery)
581
+ */
418
582
  invalidateQuery(...args: IsPartial<TParams> extends true ? [
419
583
  params?: Maybe<TParams>,
420
584
  filters?: InvalidateQueryFilters & {
@@ -428,10 +592,25 @@ declare class Endpoint<TResponse extends AnyResponse, TParams extends AnyObject,
428
592
  },
429
593
  options?: InvalidateOptions
430
594
  ]): void;
595
+ /**
596
+ * Creates an `EndpointMutation` bound to this endpoint.
597
+ *
598
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#tomutation)
599
+ */
431
600
  toMutation<TData = TResponse['data'], TMutationMeta extends AnyObject | void = void, TContext = unknown>(options: EndpointMutationOptions<this, TData, TParams, TMutationMeta, TContext>): EndpointMutation<this, TData, TParams, TMutationMeta, TContext>;
601
+ /**
602
+ * Creates an `EndpointQuery` bound to this endpoint.
603
+ *
604
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#toquery)
605
+ */
432
606
  toQuery<TQueryFnData = TResponse['data'], TError = DefaultError | Defined<TResponse['error']>, TData = TQueryFnData, TQueryData = TQueryFnData>(options: EndpointQueryOptions<this, TQueryFnData, TError, TData, TQueryData> | (() => EndpointQueryFlattenOptions<this, TQueryFnData, TError, TData, TQueryData>)): EndpointQuery<this, TQueryFnData, TError, TData, TQueryData>;
433
- toInfiniteQuery<TData = TResponse['data'], TError = DefaultError, TPageParam = unknown>(options: EndpointInfiniteQueryOptions<this, TData, TError, TPageParam> | (() => EndpointInfiniteQueryFlattenOptions<this, TData, TError, TPageParam>)): EndpointInfiniteQuery<this, TData, TError, TPageParam, _tanstack_query_core.InfiniteData<TData, TPageParam>>;
607
+ /**
608
+ * Creates an `EndpointInfiniteQuery` bound to this endpoint.
609
+ *
610
+ * [**Documentation**](https://js2me.github.io/mobx-tanstack-query-api/endpoints/#toinfinitequery)
611
+ */
612
+ toInfiniteQuery<TQueryFnData = TResponse['data'], TError = DefaultError | Defined<TResponse['error']>, TPageParam = unknown, TData = _tanstack_query_core.InfiniteData<TQueryFnData, TPageParam>>(options: EndpointInfiniteQueryOptions<this, TQueryFnData, TError, TPageParam, TData> | (() => EndpointInfiniteQueryFlattenOptions<this, TQueryFnData, TError, TPageParam, TData>)): EndpointInfiniteQuery<this, TQueryFnData, TError, TPageParam, TData>;
434
613
  }
435
614
 
436
- export { ContentType, Endpoint, EndpointMutation, EndpointQuery, EndpointQueryClient, HttpClient, HttpResponse, buildOptionsFromParams, emptyStatusCodesSet, getParamsFromContext, isHttpBadResponse, isHttpResponse };
437
- export type { AnyEndpoint, AnyHttpMultistatusResponse, AnyHttpResponse, AnyResponse, EndpointConfiguration, EndpointContract, EndpointMutationInvalidateQueriesOptions, EndpointMutationOptions, EndpointMutationParams, EndpointMutationPresets, EndpointQueryFlattenOptions, EndpointQueryMeta, EndpointQueryOptions, EndpointQueryUniqKey, EndpointStringFilter, ExcludedQueryKeys, FullRequestParams, GetHttpResponse, HttpBadResponse, HttpClientConfig, HttpMultistatusResponse, InferEndpointData, InferEndpointInput, InferEndpointMetaData, InferEndpointResponse, InvalidateEndpointsFilters, QueryParamsType, RequestInfo, RequestParams, ResponseFormat, SafeParseAsyncSchema, ToEndpoint, ToEndpointMutation, ToEndpointQuery };
615
+ export { ContentType, Endpoint, EndpointInfiniteQuery, EndpointMutation, EndpointQuery, EndpointQueryClient, HttpClient, HttpResponse, buildInfiniteOptionsFromParams, buildOptionsFromParams, emptyStatusCodesSet, getParamsFromContext, isHttpBadResponse, isHttpResponse, mergeInfiniteQueryPageParam };
616
+ export type { AnyEndpoint, AnyHttpMultistatusResponse, AnyHttpResponse, AnyResponse, EndpointConfiguration, EndpointContract, EndpointInfiniteQueryContext, EndpointInfiniteQueryFlattenOptions, EndpointInfiniteQueryMergePageParam, EndpointInfiniteQueryOptions, EndpointInfiniteQueryUpdateOptionsAllVariants, EndpointMutationInvalidateQueriesOptions, EndpointMutationOptions, EndpointMutationParams, EndpointMutationPresets, EndpointQueryFlattenOptions, EndpointQueryMeta, EndpointQueryOptions, EndpointQueryUniqKey, EndpointStringFilter, ExcludedQueryKeys, FullRequestParams, GetHttpResponse, HttpBadResponse, HttpClientConfig, HttpMultistatusResponse, InferEndpointData, InferEndpointInput, InferEndpointMetaData, InferEndpointResponse, InvalidateEndpointsFilters, QueryParamsType, RequestInfo, RequestParams, ResponseFormat, SafeParseAsyncSchema, ToEndpoint, ToEndpointInfiniteQuery, ToEndpointMutation, ToEndpointQuery };