@ethlete/query 2.6.0 → 2.7.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.
@@ -87,11 +87,15 @@ export type QueryConfigBase<Response, Arguments extends BaseArguments | undefine
87
87
  args: Arguments;
88
88
  store: EntityStore<Entity>;
89
89
  }) => EntityStoreActionResult | null | Array<EntityStoreActionResult | null>;
90
- valueSelector: (data: {
90
+ valueUpdater?: (data: {
91
91
  rawResponse: Response;
92
92
  response: ResponseTransformer extends (response: Response) => infer R ? R : Response;
93
93
  args: Arguments;
94
- }) => Entity | Entity[];
94
+ entity: Entity;
95
+ }) => {
96
+ rawResponse: Response;
97
+ response: ResponseTransformer extends (response: Response) => infer R ? R : Response;
98
+ } | null;
95
99
  };
96
100
  };
97
101
  export type RestQueryConfig<Route extends RouteType<Arguments>, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined, Entity> = QueryConfigBase<Response, Arguments, ResponseTransformer, Entity> & {
@@ -1,3 +1,4 @@
1
+ import { Paginated } from '@ethlete/types';
1
2
  import { BehaviorSubject, Observable } from 'rxjs';
2
3
  import { AnyQueryCreator, QueryClient, QueryCreator, QueryCreatorArgs, QueryCreatorEntity, QueryCreatorMethod, QueryCreatorResponse, QueryCreatorResponseTransformer, ResponseTransformerType } from '../query-client';
3
4
  import { Method, RequestHeaders, RequestHeadersMethodMap } from '../request';
@@ -60,4 +61,17 @@ export declare const computeQueryQueryParams: (config: {
60
61
  client: QueryClient;
61
62
  args?: BaseArguments | undefined;
62
63
  }) => import("../request").QueryParams | undefined;
64
+ export declare const paginatedEntityValueUpdater: <T extends Paginated<unknown>, Args extends BaseArguments, Entity, J extends T extends Paginated<infer X> ? X : never>(findFn: (val: J, entity: Entity) => boolean) => ({ response, rawResponse, entity }: {
65
+ rawResponse: T;
66
+ response: T;
67
+ args: Args;
68
+ entity: Entity;
69
+ }) => {
70
+ response: T & {
71
+ items: unknown[];
72
+ };
73
+ rawResponse: T & {
74
+ items: unknown[];
75
+ };
76
+ } | null;
63
77
  export {};
@@ -10,7 +10,9 @@ export type ParamPrimitive = string | number | boolean | null | undefined;
10
10
  export type Params = Record<string | number | symbol, ParamPrimitive | ParamArray>;
11
11
  export type ParamArray = Array<ParamPrimitive>;
12
12
  export type UnfilteredParamPrimitive = string | number | boolean | null | undefined;
13
- export type QueryParams = Record<string | number | symbol, UnfilteredParamPrimitive | UnfilteredParamArray>;
13
+ export type QueryParams = {
14
+ [key: string | number | symbol]: UnfilteredParamPrimitive | UnfilteredParamArray | QueryParams;
15
+ };
14
16
  export type PathParams = Record<string, string | number>;
15
17
  export type UnfilteredParamArray = Array<UnfilteredParamPrimitive>;
16
18
  export type CacheAdapterFn = (headers: RequestHeaders) => number | null;
@@ -8,6 +8,7 @@ export declare const buildRoute: (options: {
8
8
  }) => string;
9
9
  export declare const buildQueryString: (params: QueryParams) => string | null;
10
10
  export declare const buildQueryArrayString: (key: string, array: ParamArray) => string;
11
+ export declare const buildQueryObjectString: (key: string, object: QueryParams) => string;
11
12
  export declare const isFetchResponse: (response: unknown) => response is Response;
12
13
  export declare const filterInvalidParams: (params: QueryParams) => Params;
13
14
  export declare const isParamValid: (primitive: UnfilteredParamPrimitive) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ethlete/query",
3
- "version": "2.6.0",
3
+ "version": "2.7.0",
4
4
  "dependencies": {
5
5
  "tslib": "^2.5.0"
6
6
  },