@ethlete/query 0.1.0-next.9 → 1.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/esm2020/lib/auth/auth-provider.types.mjs +1 -1
- package/esm2020/lib/auth/auth-provider.utils.mjs +1 -1
- package/esm2020/lib/auth/basic-auth-provider.mjs +4 -5
- package/esm2020/lib/auth/bearer-auth-provider.mjs +117 -60
- package/esm2020/lib/auth/custom-header-auth-provider.mjs +4 -5
- package/esm2020/lib/directives/infinity-query-trigger.directive.mjs +3 -3
- package/esm2020/lib/directives/infinity-query.directive.mjs +7 -9
- package/esm2020/lib/directives/query.directive.mjs +23 -19
- package/esm2020/lib/infinite-query/infinity-query.mjs +15 -11
- package/esm2020/lib/query/query.mjs +111 -86
- package/esm2020/lib/query/query.types.mjs +1 -1
- package/esm2020/lib/query/query.utils.mjs +51 -4
- package/esm2020/lib/query-client/query-client.mjs +25 -13
- package/esm2020/lib/query-client/query-client.types.mjs +1 -1
- package/esm2020/lib/query-form/query-form.mjs +7 -6
- package/esm2020/lib/request/request.mjs +168 -19
- package/esm2020/lib/request/request.types.mjs +1 -1
- package/esm2020/lib/request/request.util.mjs +66 -91
- package/fesm2015/ethlete-query.mjs +673 -398
- package/fesm2015/ethlete-query.mjs.map +1 -1
- package/fesm2020/ethlete-query.mjs +657 -389
- package/fesm2020/ethlete-query.mjs.map +1 -1
- package/lib/auth/auth-provider.types.d.ts +30 -22
- package/lib/auth/auth-provider.utils.d.ts +2 -1
- package/lib/auth/basic-auth-provider.d.ts +0 -2
- package/lib/auth/bearer-auth-provider.d.ts +14 -14
- package/lib/auth/custom-header-auth-provider.d.ts +0 -2
- package/lib/directives/infinity-query.directive.d.ts +1 -2
- package/lib/directives/query.directive.d.ts +6 -5
- package/lib/infinite-query/infinity-query.types.d.ts +4 -4
- package/lib/query/query.d.ts +6 -6
- package/lib/query/query.types.d.ts +78 -43
- package/lib/query/query.utils.d.ts +21 -5
- package/lib/query-client/query-client.d.ts +13 -11
- package/lib/query-client/query-client.types.d.ts +22 -10
- package/lib/query-form/query-form.types.d.ts +2 -2
- package/lib/request/request.d.ts +3 -9
- package/lib/request/request.types.d.ts +63 -15
- package/lib/request/request.util.d.ts +74 -7
- package/package.json +2 -5
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { Method } from '../request';
|
|
1
|
+
import { QueryResponseType } from '../query';
|
|
2
|
+
import { AnyQueryCreator, QueryCreatorArgs, QueryCreatorReturnType } from '../query-client';
|
|
4
3
|
export interface AuthProvider {
|
|
5
4
|
/**
|
|
6
5
|
* The up to date auth header.
|
|
@@ -12,10 +11,6 @@ export interface AuthProvider {
|
|
|
12
11
|
* @internal
|
|
13
12
|
*/
|
|
14
13
|
cleanUp(): void;
|
|
15
|
-
/**
|
|
16
|
-
* Reference to the query client
|
|
17
|
-
*/
|
|
18
|
-
queryClient: QueryClient | null;
|
|
19
14
|
}
|
|
20
15
|
export interface AuthProviderBasicConfig {
|
|
21
16
|
/**
|
|
@@ -39,30 +34,39 @@ export interface AuthProviderCustomHeaderConfig {
|
|
|
39
34
|
*/
|
|
40
35
|
value: string;
|
|
41
36
|
}
|
|
42
|
-
export interface AuthProviderBearerConfig {
|
|
37
|
+
export interface AuthProviderBearerConfig<T extends AnyQueryCreator> {
|
|
43
38
|
/**
|
|
44
39
|
* The initial jwt
|
|
45
40
|
*/
|
|
46
|
-
token
|
|
41
|
+
token?: string;
|
|
47
42
|
/**
|
|
48
43
|
* Refresh token configuration
|
|
49
44
|
*/
|
|
50
|
-
refreshConfig?: BearerRefreshConfig
|
|
45
|
+
refreshConfig?: BearerRefreshConfig<T>;
|
|
51
46
|
}
|
|
52
|
-
export interface BearerRefreshConfig {
|
|
47
|
+
export interface BearerRefreshConfig<T extends AnyQueryCreator> {
|
|
48
|
+
/**
|
|
49
|
+
* The query used to trade the refresh token for a new token response.
|
|
50
|
+
*/
|
|
51
|
+
queryCreator: T;
|
|
53
52
|
/**
|
|
54
53
|
* The initial refresh token
|
|
55
54
|
*/
|
|
56
|
-
token
|
|
55
|
+
token?: string;
|
|
56
|
+
/**
|
|
57
|
+
* The cookie name where the refresh token is stored
|
|
58
|
+
*/
|
|
59
|
+
cookieName?: string;
|
|
57
60
|
/**
|
|
58
|
-
*
|
|
59
|
-
* @
|
|
61
|
+
* Enable or disable the cookie
|
|
62
|
+
* @default true
|
|
60
63
|
*/
|
|
61
|
-
|
|
64
|
+
cookieEnabled?: boolean;
|
|
62
65
|
/**
|
|
63
|
-
* The
|
|
66
|
+
* The time in milliseconds before the token expires when the refresh should be triggered.
|
|
67
|
+
* @default 300000 (5 minutes)
|
|
64
68
|
*/
|
|
65
|
-
|
|
69
|
+
refreshBuffer?: number;
|
|
66
70
|
/**
|
|
67
71
|
* The expires in property name inside the jwt body
|
|
68
72
|
* @default 'exp'
|
|
@@ -75,18 +79,22 @@ export interface BearerRefreshConfig {
|
|
|
75
79
|
strategy?: AuthBearerRefreshStrategy;
|
|
76
80
|
/**
|
|
77
81
|
* Adapter function used to build the request body for the refresh request.
|
|
78
|
-
* @default { refreshToken: "refreshToken" }
|
|
82
|
+
* @default { body: { refreshToken: "refreshToken" } }
|
|
79
83
|
*/
|
|
80
|
-
|
|
84
|
+
requestArgsAdapter?: (tokens: {
|
|
85
|
+
token: string | null;
|
|
86
|
+
refreshToken: string;
|
|
87
|
+
}) => QueryCreatorArgs<T>;
|
|
81
88
|
/**
|
|
82
89
|
* Adapter function used to extract the token and refreshToken from the response.
|
|
83
90
|
* @default { token: "token", refreshToken: "refreshToken" }
|
|
84
91
|
*/
|
|
85
|
-
responseAdapter?: (response:
|
|
92
|
+
responseAdapter?: (response: NonNullable<QueryResponseType<QueryCreatorReturnType<T>>>) => TokenResponse;
|
|
86
93
|
}
|
|
87
94
|
export declare const enum AuthBearerRefreshStrategy {
|
|
88
95
|
/**
|
|
89
96
|
* Automatically refresh the token 5 minutes before expiration.
|
|
97
|
+
* The time can be configured with the `refreshBuffer` property.
|
|
90
98
|
*/
|
|
91
99
|
BeforeExpiration = "beforeExpiration"
|
|
92
100
|
}
|
|
@@ -94,10 +102,10 @@ export interface TokenResponse {
|
|
|
94
102
|
/**
|
|
95
103
|
* The access token used inside the authorization http header.
|
|
96
104
|
*/
|
|
97
|
-
token: string;
|
|
105
|
+
token: string | null;
|
|
98
106
|
/**
|
|
99
107
|
* The refresh token used for requesting a new token response once the current tokes is expired.
|
|
100
108
|
* This property is required if the bearer refresh config is set.
|
|
101
109
|
*/
|
|
102
|
-
refreshToken
|
|
110
|
+
refreshToken: string | null;
|
|
103
111
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { AnyQueryCreator } from '../query-client';
|
|
1
2
|
import { AuthProvider } from './auth-provider.types';
|
|
2
3
|
import { BasicAuthProvider } from './basic-auth-provider';
|
|
3
4
|
import { BearerAuthProvider } from './bearer-auth-provider';
|
|
4
5
|
import { CustomHeaderAuthProvider } from './custom-header-auth-provider';
|
|
5
6
|
export declare const isBasicAuthProvider: (authProvider: AuthProvider) => authProvider is BasicAuthProvider;
|
|
6
|
-
export declare const isBearerAuthProvider: (authProvider: AuthProvider) => authProvider is BearerAuthProvider
|
|
7
|
+
export declare const isBearerAuthProvider: <T extends AnyQueryCreator = AnyQueryCreator>(authProvider: AuthProvider) => authProvider is BearerAuthProvider<T>;
|
|
7
8
|
export declare const isCustomHeaderAuthProvider: (authProvider: AuthProvider) => authProvider is CustomHeaderAuthProvider;
|
|
8
9
|
export declare const decryptBearer: <Result = Record<string, unknown>>(token: string) => Result | null;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { QueryClient } from '../query-client';
|
|
2
1
|
import { AuthProvider, AuthProviderBasicConfig } from './auth-provider.types';
|
|
3
2
|
export declare class BasicAuthProvider implements AuthProvider {
|
|
4
3
|
private _config;
|
|
@@ -6,7 +5,6 @@ export declare class BasicAuthProvider implements AuthProvider {
|
|
|
6
5
|
Authorization: string;
|
|
7
6
|
};
|
|
8
7
|
private get _basicAuthString();
|
|
9
|
-
queryClient: QueryClient | null;
|
|
10
8
|
constructor(_config: AuthProviderBasicConfig);
|
|
11
9
|
cleanUp(): void;
|
|
12
10
|
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { QueryClient } from '../query-client';
|
|
3
|
-
import { RequestError } from '../request';
|
|
1
|
+
import { AnyQueryCreator } from '../query-client';
|
|
4
2
|
import { AuthProvider, AuthProviderBearerConfig, TokenResponse } from './auth-provider.types';
|
|
5
|
-
export declare class BearerAuthProvider implements AuthProvider {
|
|
3
|
+
export declare class BearerAuthProvider<T extends AnyQueryCreator> implements AuthProvider {
|
|
6
4
|
private _config;
|
|
7
|
-
private
|
|
8
|
-
private
|
|
9
|
-
private
|
|
5
|
+
private readonly _destroy$;
|
|
6
|
+
private readonly _currentRefreshQuery$;
|
|
7
|
+
private readonly _tokens$;
|
|
10
8
|
get header(): {
|
|
11
9
|
Authorization: string;
|
|
12
10
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
constructor(_config: AuthProviderBearerConfig);
|
|
11
|
+
get tokens$(): import("rxjs").Observable<TokenResponse>;
|
|
12
|
+
get tokens(): TokenResponse;
|
|
13
|
+
get currentRefreshQuery$(): import("rxjs").Observable<ReturnType<T["prepare"]> | null>;
|
|
14
|
+
get currentRefreshQuery(): ReturnType<T["prepare"]> | null;
|
|
15
|
+
constructor(_config: AuthProviderBearerConfig<T>);
|
|
18
16
|
cleanUp(): void;
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
enableCookie(): void;
|
|
18
|
+
disableCookie(): void;
|
|
19
|
+
private _prepareForRefresh;
|
|
20
|
+
private _refreshQuery;
|
|
21
21
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { QueryClient } from '../query-client';
|
|
2
1
|
import { AuthProvider, AuthProviderCustomHeaderConfig } from './auth-provider.types';
|
|
3
2
|
export declare class CustomHeaderAuthProvider implements AuthProvider {
|
|
4
3
|
private _config;
|
|
5
4
|
get header(): {
|
|
6
5
|
[x: string]: string;
|
|
7
6
|
};
|
|
8
|
-
queryClient: QueryClient | null;
|
|
9
7
|
constructor(_config: AuthProviderCustomHeaderConfig);
|
|
10
8
|
cleanUp(): void;
|
|
11
9
|
}
|
|
@@ -4,7 +4,6 @@ import { BaseArguments } from '../query';
|
|
|
4
4
|
import { AnyQueryCreator } from '../query-client';
|
|
5
5
|
import { RequestError } from '../request';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@ethlete/core";
|
|
8
7
|
interface InfinityQueryContext<Q extends InfinityQueryConfig<AnyQueryCreator, BaseArguments, any, unknown[]>> {
|
|
9
8
|
$implicit: Q['response']['arrayType'] | null;
|
|
10
9
|
infinityQuery: Q['response']['arrayType'] | null;
|
|
@@ -44,6 +43,6 @@ export declare class InfinityQueryDirective<Q extends InfinityQueryConfig<AnyQue
|
|
|
44
43
|
private _renderMainView;
|
|
45
44
|
private _cleanup;
|
|
46
45
|
static ɵfac: i0.ɵɵFactoryDeclaration<InfinityQueryDirective<any>, never>;
|
|
47
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<InfinityQueryDirective<any>, "[infinityQuery]", ["infinityQuery"], { "infinityQuery": "infinityQuery"; }, {}, never, never, true,
|
|
46
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<InfinityQueryDirective<any>, "[infinityQuery]", ["infinityQuery"], { "infinityQuery": "infinityQuery"; }, {}, never, never, true, never>;
|
|
48
47
|
}
|
|
49
48
|
export {};
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { ChangeDetectorRef, ErrorHandler, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { AnyQuery, QueryRawResponseType, QueryResponseType } from '../query';
|
|
3
|
-
import { RequestError } from '../request';
|
|
2
|
+
import { AnyQuery, AnyQueryCreatorCollection, AnyQueryOfCreatorCollection, QueryOf, QueryRawResponseType, QueryResponseType } from '../query';
|
|
3
|
+
import { RequestError, RequestProgress } from '../request';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
interface QueryContext<Q extends AnyQuery | null> {
|
|
6
6
|
$implicit: QueryResponseType<Q>;
|
|
7
7
|
query: QueryResponseType<Q>;
|
|
8
8
|
raw: QueryRawResponseType<Q>;
|
|
9
9
|
loading: boolean;
|
|
10
|
+
progress: RequestProgress | null;
|
|
10
11
|
error: RequestError<unknown> | null;
|
|
11
12
|
}
|
|
12
|
-
export declare class QueryDirective<Q extends AnyQuery | null> implements OnInit, OnDestroy {
|
|
13
|
+
export declare class QueryDirective<Q extends AnyQuery | AnyQueryOfCreatorCollection<AnyQueryCreatorCollection> | null> implements OnInit, OnDestroy {
|
|
13
14
|
private _mainTemplateRef;
|
|
14
15
|
private _viewContainerRef;
|
|
15
16
|
private _errorHandler;
|
|
@@ -23,8 +24,8 @@ export declare class QueryDirective<Q extends AnyQuery | null> implements OnInit
|
|
|
23
24
|
get cache(): boolean;
|
|
24
25
|
set cache(v: boolean);
|
|
25
26
|
private _cache;
|
|
26
|
-
constructor(_mainTemplateRef: TemplateRef<QueryContext<Q
|
|
27
|
-
static ngTemplateContextGuard<Q extends AnyQuery | null>(dir: QueryDirective<Q>, ctx: unknown): ctx is QueryContext<Q
|
|
27
|
+
constructor(_mainTemplateRef: TemplateRef<QueryContext<QueryOf<Q>>>, _viewContainerRef: ViewContainerRef, _errorHandler: ErrorHandler, _cdr: ChangeDetectorRef);
|
|
28
|
+
static ngTemplateContextGuard<Q extends AnyQuery | AnyQueryOfCreatorCollection<AnyQueryCreatorCollection> | null>(dir: QueryDirective<Q>, ctx: unknown): ctx is QueryContext<QueryOf<Q>>;
|
|
28
29
|
ngOnInit(): void;
|
|
29
30
|
ngOnDestroy(): void;
|
|
30
31
|
private _subscribeToQuery;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseArguments, QueryStateData } from '../query';
|
|
2
2
|
import { AnyQueryCreator, QueryCreatorArgs, QueryCreatorReturnType } from '../query-client';
|
|
3
|
-
export
|
|
4
|
-
export
|
|
3
|
+
export type InfinityQueryParamLocation = 'path' | 'query' | 'body' | 'header' | 'variable';
|
|
4
|
+
export type AppendItemsLocation = 'start' | 'end';
|
|
5
5
|
export interface PageParamCalculatorOptions {
|
|
6
6
|
page: number;
|
|
7
7
|
totalPages: number | null;
|
|
@@ -89,6 +89,6 @@ export interface InfinityQueryConfig<QueryCreator extends AnyQueryCreator, Argum
|
|
|
89
89
|
totalPagesExtractor?: (data: TotalPagesExtractorOptions<QueryResponse>) => number;
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
|
-
|
|
93
|
-
export
|
|
92
|
+
type OmitUndefined<T> = T extends undefined ? never : T;
|
|
93
|
+
export type InfinityQueryConfigType<QueryCreator extends AnyQueryCreator, InfinityResponse extends unknown[]> = InfinityQueryConfig<QueryCreator, OmitUndefined<QueryCreatorArgs<QueryCreator>>, QueryStateData<QueryCreatorReturnType<QueryCreator>['state']>, InfinityResponse>;
|
|
94
94
|
export {};
|
package/lib/query/query.d.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { DefaultResponseTransformer, QueryClient, ResponseTransformerType } from '../query-client';
|
|
2
2
|
import { Method as MethodType } from '../request';
|
|
3
|
-
import { BaseArguments, GqlQueryConfig, PollConfig,
|
|
4
|
-
export declare class Query<Response, Arguments extends BaseArguments | undefined, Route extends RouteType<Arguments>, Method extends MethodType, ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>> {
|
|
3
|
+
import { BaseArguments, GqlQueryConfig, PollConfig, QueryState, RestQueryConfig, RouteType, RunQueryOptions, WithUseResultIn } from './query.types';
|
|
4
|
+
export declare class Query<Response, Arguments extends (BaseArguments & WithUseResultIn<Response, ResponseTransformer>) | undefined, Route extends RouteType<Arguments>, Method extends MethodType, ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>> {
|
|
5
5
|
private _client;
|
|
6
6
|
private _queryConfig;
|
|
7
|
-
private
|
|
7
|
+
private _routeWithParams;
|
|
8
8
|
private _args;
|
|
9
9
|
private _currentId;
|
|
10
|
-
private _abortController;
|
|
11
10
|
private _pollingSubscription;
|
|
11
|
+
private _onAbort$;
|
|
12
12
|
private readonly _state$;
|
|
13
13
|
private get _nextId();
|
|
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
|
-
constructor(_client: QueryClient, _queryConfig:
|
|
17
|
+
constructor(_client: QueryClient, _queryConfig: RestQueryConfig<Route, Response, Arguments, ResponseTransformer> | GqlQueryConfig<Route, Response, Arguments, ResponseTransformer>, _routeWithParams: Route, _args: Arguments | undefined);
|
|
18
18
|
clone(): import("../query-client").QueryCreator<Arguments, Method, Response, Route, ResponseTransformer>;
|
|
19
19
|
execute<ComputedResponse extends ReturnType<ResponseTransformer>>(options?: RunQueryOptions): this;
|
|
20
20
|
abort(): this;
|
|
21
21
|
poll(config: PollConfig): this;
|
|
22
22
|
stopPolling(): this;
|
|
23
|
-
private
|
|
23
|
+
private _updateUseResultInDependencies;
|
|
24
24
|
}
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
import { ResponseTransformerType } from '../query-client';
|
|
3
|
-
import { Method, PathParams, QueryParams, RequestError } from '../request';
|
|
2
|
+
import { AnyQueryCreator, QueryCreatorReturnType, ResponseTransformerType } from '../query-client';
|
|
3
|
+
import { Method, PathParams, QueryParams, RequestError, RequestProgress } from '../request';
|
|
4
4
|
import { Query } from './query';
|
|
5
|
-
export interface
|
|
5
|
+
export interface 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
|
*/
|
|
9
9
|
method: Method;
|
|
10
|
-
/**
|
|
11
|
-
* The api route to use for the query.
|
|
12
|
-
*/
|
|
13
|
-
route: Route;
|
|
14
10
|
/**
|
|
15
11
|
* Determines if the auth provider should be used for this query.
|
|
16
12
|
* The query **will throw** if the query client's auth provider is unset.
|
|
@@ -21,6 +17,20 @@ export interface QueryConfig<Route extends RouteType<Arguments>, Response, Argum
|
|
|
21
17
|
* A function that transforms the response to the desired type.
|
|
22
18
|
*/
|
|
23
19
|
responseTransformer?: ResponseTransformer;
|
|
20
|
+
/**
|
|
21
|
+
* Determines if the query should emit progress events.
|
|
22
|
+
*/
|
|
23
|
+
reportProgress?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Determines the query's response type.
|
|
26
|
+
* @default 'json'
|
|
27
|
+
*/
|
|
28
|
+
responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
|
|
29
|
+
/**
|
|
30
|
+
* Whether this request should be sent with outgoing credentials (cookies).
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
withCredentials?: boolean;
|
|
24
34
|
/**
|
|
25
35
|
* Object containing the query's type information.
|
|
26
36
|
*/
|
|
@@ -36,24 +46,30 @@ export interface QueryConfig<Route extends RouteType<Arguments>, Response, Argum
|
|
|
36
46
|
* - `queryParams`: The query parameters for the query. (after the ? in the url)
|
|
37
47
|
* - `body`: The body for the query. Unavailable for GET, HEAD and OPTIONS requests.
|
|
38
48
|
* - `headers`: The headers for the query.
|
|
49
|
+
* - `variables`: The variables for the query. (graphql only)
|
|
39
50
|
*/
|
|
40
51
|
args?: Arguments;
|
|
41
52
|
};
|
|
42
53
|
}
|
|
43
|
-
export interface
|
|
44
|
-
|
|
54
|
+
export interface RestQueryConfig<Route extends RouteType<Arguments>, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> extends QueryConfigBase<Response, Arguments, ResponseTransformer> {
|
|
55
|
+
/**
|
|
56
|
+
* The api route to use for the query.
|
|
57
|
+
*/
|
|
58
|
+
route: Route;
|
|
59
|
+
}
|
|
60
|
+
export interface GqlQueryConfig<Route extends RouteType<Arguments> | undefined, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> extends QueryConfigBase<Response, Arguments, ResponseTransformer> {
|
|
61
|
+
/**
|
|
62
|
+
* The graphql query to use for the query.
|
|
63
|
+
*/
|
|
45
64
|
query: string;
|
|
65
|
+
/**
|
|
66
|
+
* Subroute to use for the query.
|
|
67
|
+
*/
|
|
46
68
|
route?: Route;
|
|
47
|
-
secure?: boolean;
|
|
48
|
-
responseTransformer?: ResponseTransformer;
|
|
49
|
-
types?: {
|
|
50
|
-
response?: Response;
|
|
51
|
-
args?: Arguments;
|
|
52
|
-
};
|
|
53
69
|
}
|
|
54
|
-
export
|
|
55
|
-
export
|
|
56
|
-
export
|
|
70
|
+
export type QueryConfigWithoutMethod<Route extends RouteType<Arguments>, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> = Omit<RestQueryConfig<Route, Response, Arguments, ResponseTransformer>, 'method'>;
|
|
71
|
+
export type GqlQueryConfigWithoutMethod<Route extends RouteType<Arguments>, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> = Omit<GqlQueryConfig<Route, Response, Arguments, ResponseTransformer>, 'method'>;
|
|
72
|
+
export type BaseArguments = WithHeaders & WithVariables & WithBody & WithQueryParams & WithPathParams;
|
|
57
73
|
export interface WithHeaders {
|
|
58
74
|
headers?: Record<string, string>;
|
|
59
75
|
}
|
|
@@ -69,14 +85,17 @@ export interface WithQueryParams {
|
|
|
69
85
|
export interface WithPathParams {
|
|
70
86
|
pathParams?: PathParams;
|
|
71
87
|
}
|
|
72
|
-
export
|
|
88
|
+
export type WithUseResultIn<Response, ResponseTransformer extends ResponseTransformerType<Response>> = {
|
|
89
|
+
useResultIn?: Query<Response, any, any, any, ResponseTransformer>[];
|
|
90
|
+
};
|
|
91
|
+
export type EmptyObject = {};
|
|
73
92
|
export interface RunQueryOptions {
|
|
74
93
|
skipCache?: boolean;
|
|
75
94
|
}
|
|
76
|
-
export
|
|
95
|
+
export type RouteType<Arguments extends BaseArguments | undefined> = Arguments extends {
|
|
77
96
|
pathParams: infer PathParams;
|
|
78
97
|
} ? (p: PathParams) => RouteString : RouteString;
|
|
79
|
-
export
|
|
98
|
+
export type RouteString = `/${string}`;
|
|
80
99
|
export interface PollConfig {
|
|
81
100
|
interval: number;
|
|
82
101
|
takeUntil: Observable<unknown>;
|
|
@@ -89,40 +108,56 @@ export declare const enum QueryStateType {
|
|
|
89
108
|
Cancelled = "CANCELLED"
|
|
90
109
|
}
|
|
91
110
|
export interface Prepared {
|
|
92
|
-
|
|
93
|
-
|
|
111
|
+
type: QueryStateType.Prepared;
|
|
112
|
+
meta: QueryStateMeta;
|
|
94
113
|
}
|
|
95
114
|
export interface Success<Response = unknown, RawResponse = unknown> {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
115
|
+
type: QueryStateType.Success;
|
|
116
|
+
response: Response;
|
|
117
|
+
rawResponse: RawResponse;
|
|
118
|
+
meta: QueryStateSuccessMeta;
|
|
100
119
|
}
|
|
101
120
|
export interface Failure {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
121
|
+
type: QueryStateType.Failure;
|
|
122
|
+
error: RequestError;
|
|
123
|
+
meta: QueryStateMeta;
|
|
105
124
|
}
|
|
106
125
|
export interface Loading {
|
|
107
|
-
|
|
108
|
-
|
|
126
|
+
type: QueryStateType.Loading;
|
|
127
|
+
meta: QueryStateMeta;
|
|
128
|
+
partialText?: string;
|
|
129
|
+
progress?: RequestProgress;
|
|
109
130
|
}
|
|
110
131
|
export interface Cancelled {
|
|
111
|
-
|
|
112
|
-
|
|
132
|
+
type: QueryStateType.Cancelled;
|
|
133
|
+
meta: QueryStateMeta;
|
|
113
134
|
}
|
|
114
135
|
export interface QueryStateMeta {
|
|
115
|
-
|
|
136
|
+
id: number;
|
|
116
137
|
}
|
|
117
138
|
export interface QueryStateSuccessMeta extends QueryStateMeta {
|
|
118
|
-
|
|
139
|
+
expiresAt?: number;
|
|
119
140
|
}
|
|
120
|
-
export
|
|
121
|
-
export
|
|
122
|
-
export
|
|
123
|
-
export
|
|
124
|
-
export
|
|
141
|
+
export type QueryState<Response = unknown, RawResponse = unknown> = Loading | Success<Response, RawResponse> | Failure | Cancelled | Prepared;
|
|
142
|
+
export type QueryStateData<T extends QueryState = QueryState> = T extends Success<infer Response> ? Response : never;
|
|
143
|
+
export type QueryStateRawData<T extends QueryState = QueryState> = T extends Success<infer Response, infer RawResponse> ? RawResponse : never;
|
|
144
|
+
export type AnyQuery = Query<any, any, any, any, any>;
|
|
145
|
+
export type QueryType<T extends {
|
|
125
146
|
prepare: (args: any) => AnyQuery;
|
|
126
147
|
}> = T['prepare'] extends () => infer R ? R : T['prepare'] extends (args: any) => infer R ? R : never;
|
|
127
|
-
export
|
|
128
|
-
export
|
|
148
|
+
export type QueryResponseType<Q extends AnyQuery | null> = Q extends AnyQuery ? QueryStateData<Q['state']> | null : null;
|
|
149
|
+
export type QueryRawResponseType<Q extends AnyQuery | null> = Q extends AnyQuery ? QueryStateRawData<Q['state']> | null : null;
|
|
150
|
+
export type AnyQueryCreatorCollection = {
|
|
151
|
+
[name: string]: AnyQueryCreator;
|
|
152
|
+
};
|
|
153
|
+
export type AnyQueryOfCreatorCollection<T extends {
|
|
154
|
+
[name: string]: AnyQueryCreator;
|
|
155
|
+
}> = {
|
|
156
|
+
[K in keyof T]: {
|
|
157
|
+
type: K;
|
|
158
|
+
query: QueryCreatorReturnType<T[K]>;
|
|
159
|
+
};
|
|
160
|
+
}[keyof T];
|
|
161
|
+
export type QueryOf<T extends AnyQueryOfCreatorCollection<AnyQueryCreatorCollection> | AnyQuery | null> = T extends AnyQuery ? T : T extends AnyQueryOfCreatorCollection<AnyQueryCreatorCollection> ? T['query'] : never;
|
|
162
|
+
export type AnyQueryResponseOfCreatorCollection<T extends AnyQueryOfCreatorCollection<AnyQueryCreatorCollection>> = QueryResponseType<T['query']>;
|
|
163
|
+
export type AnyQueryRawResponseOfCreatorCollection<T extends AnyQueryOfCreatorCollection<AnyQueryCreatorCollection>> = QueryRawResponseType<T['query']>;
|
|
@@ -1,11 +1,20 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
1
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
2
2
|
import { ResponseTransformerType } from '../query-client';
|
|
3
|
-
import { RequestHeaders } from '../request';
|
|
4
|
-
import { BaseArguments, Cancelled, Failure, GqlQueryConfig, Loading, Prepared, QueryState, QueryStateData, QueryStateRawData, RouteType, Success } from './query.types';
|
|
5
|
-
|
|
3
|
+
import { Method, RequestHeaders, RequestHeadersMethodMap } from '../request';
|
|
4
|
+
import { AnyQuery, AnyQueryCreatorCollection, AnyQueryOfCreatorCollection, BaseArguments, Cancelled, Failure, GqlQueryConfig, Loading, Prepared, QueryRawResponseType, QueryResponseType, QueryState, QueryStateData, QueryStateRawData, QueryStateType, RouteType, Success } from './query.types';
|
|
5
|
+
type OmitNull<T> = T extends null ? never : T;
|
|
6
6
|
export declare function filterSuccess(): <T extends QueryState<unknown, unknown> | null, Response_1 extends QueryStateData<OmitNull<T>>, RawResponse extends QueryStateRawData<OmitNull<T>>>(source: Observable<T>) => Observable<Success<Response_1, RawResponse>>;
|
|
7
7
|
export declare function filterFailure(): <T extends QueryState<unknown, unknown> | null>(source: Observable<T>) => Observable<Failure>;
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function filterQueryStates(allowedStates: QueryStateType[]): <T extends QueryState<unknown, unknown> | null>(source: Observable<T>) => Observable<T>;
|
|
9
|
+
export declare function takeUntilResponse(config?: {
|
|
10
|
+
excludeNull?: boolean;
|
|
11
|
+
}): <T extends QueryState<unknown, unknown> | null>(source: Observable<T>) => Observable<T>;
|
|
12
|
+
export declare function filterNull(): <T>(source: Observable<T>) => Observable<OmitNull<T>>;
|
|
13
|
+
export declare function switchQueryState(): <T extends AnyQuery | null, Response_1 extends QueryResponseType<OmitNull<T>>, RawResponse extends QueryRawResponseType<OmitNull<T>>>(source: Observable<T>) => Observable<QueryState<OmitNull<Response_1>, OmitNull<RawResponse>> | null>;
|
|
14
|
+
export declare function switchQueryCollectionState(): <T extends {
|
|
15
|
+
type: string;
|
|
16
|
+
query: import("@ethlete/query").Query<any, any, any, any, any>;
|
|
17
|
+
} | null, Response_1 extends QueryResponseType<OmitNull<T>["query"]>, RawResponse extends QueryRawResponseType<OmitNull<T>["query"]>>(source: Observable<T>) => Observable<QueryState<OmitNull<Response_1>, OmitNull<RawResponse>> | null>;
|
|
9
18
|
export declare const isQueryStateLoading: (state: QueryState | null | undefined) => state is Loading;
|
|
10
19
|
export declare const isQueryStateSuccess: (state: QueryState | null | undefined) => state is Success<unknown, unknown>;
|
|
11
20
|
export declare const isQueryStateFailure: (state: QueryState | null | undefined) => state is Failure;
|
|
@@ -13,4 +22,11 @@ export declare const isQueryStateCancelled: (state: QueryState | null | undefine
|
|
|
13
22
|
export declare const isQueryStatePrepared: (state: QueryState | null | undefined) => state is Prepared;
|
|
14
23
|
export declare const mergeHeaders: (...headers: Array<RequestHeaders | null | undefined>) => RequestHeaders | null | undefined;
|
|
15
24
|
export declare const isGqlQueryConfig: <Response_1, Arguments extends BaseArguments | undefined, Route extends RouteType<Arguments> | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> | undefined>(config: unknown) => config is GqlQueryConfig<Route, Response_1, Arguments, ResponseTransformer>;
|
|
25
|
+
export declare const isQuery: <T extends AnyQuery>(query: unknown) => query is T;
|
|
26
|
+
export declare const createQueryCollection: <T extends AnyQueryCreatorCollection, R extends AnyQueryOfCreatorCollection<T>>(queryMap: T) => BehaviorSubject<R | null>;
|
|
27
|
+
export declare const extractQuery: <T extends AnyQuery | {
|
|
28
|
+
type: string;
|
|
29
|
+
query: import("@ethlete/query").Query<any, any, any, any, any>;
|
|
30
|
+
} | null>(v: T) => import("@ethlete/query").Query<any, any, any, any, any> | null;
|
|
31
|
+
export declare const getDefaultHeaders: (headers: RequestHeaders | RequestHeadersMethodMap | null | undefined, method: Method) => RequestHeaders;
|
|
16
32
|
export {};
|
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
import { AuthProvider } from '../auth';
|
|
2
|
-
import { BaseArguments, GqlQueryConfig, GqlQueryConfigWithoutMethod,
|
|
3
|
-
import { Method as MethodType } from '../request';
|
|
2
|
+
import { BaseArguments, GqlQueryConfig, GqlQueryConfigWithoutMethod, QueryConfigWithoutMethod, RestQueryConfig, RouteType } from '../query';
|
|
3
|
+
import { Method as MethodType, RequestHeaders, RequestHeadersMethodMap } from '../request';
|
|
4
4
|
import { DefaultResponseTransformer, QueryClientConfig, QueryCreator, ResponseTransformerType } from './query-client.types';
|
|
5
5
|
export declare class QueryClient {
|
|
6
6
|
private _clientConfig;
|
|
7
7
|
private readonly _store;
|
|
8
|
-
private _authProvider;
|
|
9
8
|
get config(): QueryClientConfig;
|
|
10
9
|
get authProvider(): AuthProvider | null;
|
|
10
|
+
get authProvider$(): import("rxjs").Observable<AuthProvider | null>;
|
|
11
|
+
private readonly _authProvider$;
|
|
11
12
|
constructor(_clientConfig: QueryClientConfig);
|
|
12
|
-
get: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "GET", Response_1, Route, ResponseTransformer>;
|
|
13
|
-
post: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "POST", Response_1, Route, ResponseTransformer>;
|
|
14
|
-
put: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "PUT", Response_1, Route, ResponseTransformer>;
|
|
15
|
-
patch: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "PATCH", Response_1, Route, ResponseTransformer>;
|
|
16
|
-
delete: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "DELETE", Response_1, Route, ResponseTransformer>;
|
|
17
|
-
gqlQuery: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: GqlQueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "GQL_QUERY", Response_1, Route, ResponseTransformer>;
|
|
18
|
-
gqlMutate: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: GqlQueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "GQL_MUTATE", Response_1, Route, ResponseTransformer>;
|
|
19
|
-
fetch: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined, Method extends MethodType, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig:
|
|
13
|
+
get: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined = undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "GET", Response_1, Route, ResponseTransformer>;
|
|
14
|
+
post: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined = undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "POST", Response_1, Route, ResponseTransformer>;
|
|
15
|
+
put: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined = undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "PUT", Response_1, Route, ResponseTransformer>;
|
|
16
|
+
patch: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined = undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "PATCH", Response_1, Route, ResponseTransformer>;
|
|
17
|
+
delete: <Route extends RouteType<Arguments>, Response_1, Arguments extends BaseArguments | undefined = undefined, ResponseTransformer extends ResponseTransformerType<Response_1> = DefaultResponseTransformer<Response_1>>(queryConfig: QueryConfigWithoutMethod<Route, Response_1, Arguments, ResponseTransformer>) => QueryCreator<Arguments, "DELETE", Response_1, Route, ResponseTransformer>;
|
|
18
|
+
gqlQuery: <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_QUERY", Response_1, Route, ResponseTransformer>;
|
|
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
|
+
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>;
|
|
20
21
|
setAuthProvider: (authProvider: AuthProvider) => void;
|
|
22
|
+
setDefaultHeaders: (headers: RequestHeaders | RequestHeadersMethodMap | null) => void;
|
|
21
23
|
clearAuthProvider: () => void;
|
|
22
24
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { BehaviorSubject } from 'rxjs';
|
|
2
2
|
import { Query } from '../query/query';
|
|
3
|
-
import { BaseArguments, EmptyObject, RouteType, WithHeaders } from '../query/query.types';
|
|
4
|
-
import { CacheAdapterFn, Method as MethodType } from '../request';
|
|
3
|
+
import { BaseArguments, EmptyObject, RouteType, WithHeaders, WithUseResultIn } from '../query/query.types';
|
|
4
|
+
import { CacheAdapterFn, Method as MethodType, RequestHeaders, RequestHeadersMethodMap } from '../request';
|
|
5
|
+
import { QueryClient } from './query-client';
|
|
5
6
|
export interface QueryClientConfig {
|
|
6
7
|
/**
|
|
7
8
|
* The api base route.
|
|
@@ -31,17 +32,28 @@ export interface QueryClientConfig {
|
|
|
31
32
|
* Should return a number in seconds.
|
|
32
33
|
*/
|
|
33
34
|
cacheAdapter?: CacheAdapterFn;
|
|
35
|
+
/**
|
|
36
|
+
* Default headers to be sent with every request.
|
|
37
|
+
* Will be overridden by headers passed to the query.
|
|
38
|
+
* Do not include the `Authorization` header here. Use an `AuthProvider` instead.
|
|
39
|
+
*/
|
|
40
|
+
headers?: RequestHeaders | RequestHeadersMethodMap;
|
|
34
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* Parent query client.
|
|
44
|
+
* Used for sharing the same auth provider.
|
|
45
|
+
*/
|
|
46
|
+
parent?: QueryClient;
|
|
35
47
|
}
|
|
36
|
-
export
|
|
37
|
-
prepare: (args: Arguments & WithHeaders) => Query<Response, Arguments, Route, Method, ResponseTransformer>;
|
|
48
|
+
export type QueryCreator<Arguments extends BaseArguments | undefined, Method extends MethodType, Response, Route extends RouteType<Arguments>, ResponseTransformer extends ResponseTransformerType<Response> = DefaultResponseTransformer<Response>> = (Arguments extends BaseArguments ? {
|
|
49
|
+
prepare: (args: Arguments & WithHeaders & WithUseResultIn<Response, ResponseTransformer>) => Query<Response, Arguments, Route, Method, ResponseTransformer>;
|
|
38
50
|
} : {
|
|
39
|
-
prepare: (args?: (Arguments extends EmptyObject ? Arguments : EmptyObject) & WithHeaders) => Query<Response, Arguments, Route, Method, ResponseTransformer>;
|
|
51
|
+
prepare: (args?: (Arguments extends EmptyObject ? Arguments : EmptyObject) & WithHeaders & WithUseResultIn<Response, ResponseTransformer>) => Query<Response, Arguments, Route, Method, ResponseTransformer>;
|
|
40
52
|
}) & {
|
|
41
53
|
behaviorSubject: <T extends Query<Response, Arguments, Route, Method, ResponseTransformer>>(initialValue?: T | null) => BehaviorSubject<T | null>;
|
|
42
54
|
};
|
|
43
|
-
export
|
|
44
|
-
export
|
|
45
|
-
export
|
|
46
|
-
export
|
|
47
|
-
export
|
|
55
|
+
export type AnyQueryCreator = QueryCreator<any, any, any, any, any>;
|
|
56
|
+
export type QueryCreatorArgs<T extends AnyQueryCreator> = Parameters<T['prepare']>[0];
|
|
57
|
+
export type ResponseTransformerType<Response> = (response: Response) => unknown;
|
|
58
|
+
export type DefaultResponseTransformer<Response> = (response: Response) => Response;
|
|
59
|
+
export type QueryCreatorReturnType<T extends AnyQueryCreator> = ReturnType<T['prepare']>;
|
|
@@ -45,9 +45,9 @@ export interface QueryFieldOptions<T = unknown> {
|
|
|
45
45
|
*/
|
|
46
46
|
valueToQueryParamTransformFn?: (val: T | null) => unknown;
|
|
47
47
|
}
|
|
48
|
-
export
|
|
48
|
+
export type QueryFormGroup<T extends Record<string, QueryField<any>>> = {
|
|
49
49
|
[Property in keyof T]: T[Property]['control'];
|
|
50
50
|
};
|
|
51
|
-
export
|
|
51
|
+
export type QueryFormValue<T extends Record<string, QueryField<any>>> = {
|
|
52
52
|
[Property in keyof T]: T[Property]['control']['value'];
|
|
53
53
|
};
|
package/lib/request/request.d.ts
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
init?: RequestInit;
|
|
5
|
-
cacheAdapter?: CacheAdapterFn;
|
|
6
|
-
}) => Promise<{
|
|
7
|
-
data: Response_1;
|
|
8
|
-
expiresInTimestamp: number | null;
|
|
9
|
-
}>;
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { RequestConfig, RequestEvent } from './request.types';
|
|
3
|
+
export declare const request: <Response_1 = unknown>(config: RequestConfig) => Observable<RequestEvent<Response_1>>;
|