@ethlete/query 1.0.0 → 2.0.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/lib/gql/gql.d.ts CHANGED
@@ -1,2 +1,6 @@
1
- export declare const transformGql: (str: string) => (variables: Record<string, unknown> | null | undefined) => string;
1
+ export declare const transformGql: (str: string) => (variables: Record<string, unknown> | null | undefined) => {
2
+ query: string;
3
+ variables?: string | undefined;
4
+ operationName?: string | undefined;
5
+ };
2
6
  export declare const gql: (strings: TemplateStringsArray, ...values: string[]) => string;
@@ -14,6 +14,8 @@ export declare class Query<Response, Arguments extends (BaseArguments & WithUseR
14
14
  get state$(): import("rxjs").Observable<QueryState<ReturnType<ResponseTransformer>, Response>>;
15
15
  get state(): QueryState<ReturnType<ResponseTransformer>, Response>;
16
16
  get isExpired(): boolean;
17
+ get isInUse(): boolean;
18
+ get _config(): RestQueryConfig<Route, Response, Arguments, ResponseTransformer> | GqlQueryConfig<Route, Response, Arguments, ResponseTransformer>;
17
19
  constructor(_client: QueryClient, _queryConfig: RestQueryConfig<Route, Response, Arguments, ResponseTransformer> | GqlQueryConfig<Route, Response, Arguments, ResponseTransformer>, _routeWithParams: Route, _args: Arguments | undefined);
18
20
  clone(): import("../query-client").QueryCreator<Arguments, Method, Response, Route, ResponseTransformer>;
19
21
  execute<ComputedResponse extends ReturnType<ResponseTransformer>>(options?: RunQueryOptions): this;
@@ -2,7 +2,7 @@ import { Observable } from 'rxjs';
2
2
  import { AnyQueryCreator, QueryCreatorReturnType, ResponseTransformerType } from '../query-client';
3
3
  import { Method, PathParams, QueryParams, RequestError, RequestProgress } from '../request';
4
4
  import { Query } from './query';
5
- export interface QueryConfigBase<Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> {
5
+ export type QueryConfigBase<Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> = {
6
6
  /**
7
7
  * The http method to use for the query.
8
8
  */
@@ -31,6 +31,18 @@ export interface QueryConfigBase<Response, Arguments extends BaseArguments | und
31
31
  * @default false
32
32
  */
33
33
  withCredentials?: boolean;
34
+ /**
35
+ * Configuration for handling auto refresh triggers.
36
+ *
37
+ * **Note:** This is only available for queries that can be refreshed. (`GET`, `HEAD`, `OPTIONS`, `GQL_QUERY`)
38
+ */
39
+ autoRefreshOn?: {
40
+ /**
41
+ * Refresh the query when the query client's headers change.
42
+ * @default true
43
+ */
44
+ queryClientDefaultHeadersChange?: boolean;
45
+ };
34
46
  /**
35
47
  * Object containing the query's type information.
36
48
  */
@@ -50,13 +62,13 @@ export interface QueryConfigBase<Response, Arguments extends BaseArguments | und
50
62
  */
51
63
  args?: Arguments;
52
64
  };
53
- }
54
- export interface RestQueryConfig<Route extends RouteType<Arguments>, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> extends QueryConfigBase<Response, Arguments, ResponseTransformer> {
65
+ };
66
+ export type RestQueryConfig<Route extends RouteType<Arguments>, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> = QueryConfigBase<Response, Arguments, ResponseTransformer> & {
55
67
  /**
56
68
  * The api route to use for the query.
57
69
  */
58
70
  route: Route;
59
- }
71
+ };
60
72
  export interface GqlQueryConfig<Route extends RouteType<Arguments> | undefined, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> extends QueryConfigBase<Response, Arguments, ResponseTransformer> {
61
73
  /**
62
74
  * The graphql query to use for the query.
@@ -19,6 +19,9 @@ export declare class QueryClient {
19
19
  gqlMutate: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined = undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: GqlQueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "GQL_MUTATE", Response_1, Route, ResponseTransformer>;
20
20
  fetch: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, Method extends MethodType, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: RestQueryConfig<Route, Response_1, Arguments, ResponseTransformer> | GqlQueryConfig<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, Method, Response_1, Route, ResponseTransformer>;
21
21
  setAuthProvider: (authProvider: AuthProvider) => void;
22
- setDefaultHeaders: (headers: RequestHeaders | RequestHeadersMethodMap | null) => void;
22
+ setDefaultHeaders: (config: {
23
+ headers: RequestHeaders | RequestHeadersMethodMap | null;
24
+ refreshQueriesInUse?: boolean;
25
+ }) => void;
23
26
  clearAuthProvider: () => void;
24
27
  }
@@ -10,6 +10,11 @@ export declare class QueryStore {
10
10
  add(id: string, query: AnyQuery): void;
11
11
  get(id: string): AnyQuery | null;
12
12
  remove(id: string): void;
13
+ forEach(callback: (value: AnyQuery, key: string) => void): void;
14
+ refreshQueriesInUse(config?: {
15
+ ignoreCacheValidity?: boolean;
16
+ purgeUnused?: boolean;
17
+ }): void;
13
18
  private _logState;
14
19
  private _initGarbageCollector;
15
20
  private _stopGarbageCollector;
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@ethlete/query",
3
- "version": "1.0.0",
3
+ "version": "2.0.0",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },
7
7
  "peerDependencies": {
8
8
  "@angular/common": "^14.2.0 || ^15.0.0",
9
9
  "@angular/core": "^14.2.0 || ^15.0.0",
10
- "@ethlete/core": "1.0.0"
10
+ "@ethlete/core": "1.4.0"
11
11
  },
12
12
  "module": "fesm2015/ethlete-query.mjs",
13
13
  "es2020": "fesm2020/ethlete-query.mjs",