@ethlete/query 5.34.0 → 5.35.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.
@@ -100,18 +100,26 @@ export type PagedQueryStack<TQuery extends AnyQuery, TNormPagination extends Nor
100
100
  * The pagination of the first executed query in the paged query.
101
101
  */
102
102
  minPagination: Signal<TNormPagination | null>;
103
+ /**
104
+ * Whether the last page of the paged query is loaded or not.
105
+ */
106
+ isLastPageLoaded: Signal<boolean>;
107
+ /**
108
+ * Whether the first page of the paged query is loaded or not.
109
+ */
110
+ isFirstPageLoaded: Signal<boolean>;
103
111
  /**
104
112
  * Fetches the previous page of the paged query.
105
113
  *
106
114
  * @throws If the paged query is already at the first page.
107
115
  */
108
- fetchPreviousPage: () => void;
116
+ fetchPreviousPage: () => TQuery | null;
109
117
  /**
110
118
  * Fetches the next page of the paged query.
111
119
  *
112
120
  * @throws If the paged query is already at the last page.
113
121
  */
114
- fetchNextPage: () => void;
122
+ fetchNextPage: () => TQuery | null;
115
123
  /**
116
124
  * Whether the previous page can be fetched or not.
117
125
  *
@@ -3,7 +3,11 @@ import { AnyQuery, RequestArgs, ResponseType } from './query';
3
3
  import { AnyQueryCreator, QueryArgsOf, RunQueryCreator } from './query-creator';
4
4
  import { QueryErrorResponse } from './query-error-response';
5
5
  import { QueryFeature } from './query-features';
6
- export type QueryStack<TQuery extends AnyQuery, TTransform> = {
6
+ export type QueryStackSubtle<TCreator extends AnyQueryCreator, TQuery extends AnyQuery> = {
7
+ /** Create a new query with the given arguments. You should always prefer the `args` option instead of this. */
8
+ runWithArgs: (args: RequestArgs<QueryArgsOf<TCreator>> | RequestArgs<QueryArgsOf<TCreator>>[] | null) => TQuery | null;
9
+ };
10
+ export type QueryStack<TQuery extends AnyQuery, TCreator extends AnyQueryCreator, TTransform> = {
7
11
  /** Contains all queries in the stack. */
8
12
  queries: Signal<TQuery[]>;
9
13
  /** Contains the first query in the stack. */
@@ -22,8 +26,10 @@ export type QueryStack<TQuery extends AnyQuery, TTransform> = {
22
26
  }) => void;
23
27
  /** Destroys all queries in the stack and empties it. This should only be used if `append` is true. */
24
28
  clear: () => void;
29
+ /** Advanced query stack features. **WARNING!** Incorrectly using these features will likely **BREAK** your application. You have been warned! */
30
+ subtle: QueryStackSubtle<TCreator, TQuery>;
25
31
  };
26
- export type AnyQueryStack = QueryStack<AnyQuery, any>;
32
+ export type AnyQueryStack = QueryStack<AnyQuery, AnyQueryCreator, any>;
27
33
  export type CreateQueryStackOptions<TCreator extends AnyQueryCreator, TDeps extends () => any, TTransform = (ResponseType<QueryArgsOf<TCreator>> | null)[]> = {
28
34
  /**
29
35
  * The query creator function that will be used to create the query stack.
@@ -100,4 +106,4 @@ export declare const transformArrayResponse: <T extends (unknown | null)[]>(resp
100
106
  export declare const transformPaginatedResponse: <T extends ({
101
107
  items: unknown[];
102
108
  } | null)[]>(responses: T) => NonNullable<NonNullable<T[0]>["items"]>;
103
- export declare const createQueryStack: <TCreator extends AnyQueryCreator, TArgs extends QueryArgsOf<TCreator>, TDeps extends () => any, TTransform = (ResponseType<TArgs> | null)[]>(options: CreateQueryStackOptions<TCreator, TDeps, TTransform>) => QueryStack<RunQueryCreator<TCreator>, TTransform>;
109
+ export declare const createQueryStack: <TCreator extends AnyQueryCreator, TArgs extends QueryArgsOf<TCreator>, TDeps extends () => any, TTransform = (ResponseType<TArgs> | null)[]>(options: CreateQueryStackOptions<TCreator, TDeps, TTransform>) => QueryStack<RunQueryCreator<TCreator>, TCreator, TTransform>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ethlete/query",
3
- "version": "5.34.0",
3
+ "version": "5.35.0",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "19.2.2",