@ethlete/query 4.6.0 → 4.6.1
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/esm2022/lib/directives/infinity-query-trigger.directive.mjs +3 -3
- package/esm2022/lib/directives/infinity-query.directive.mjs +3 -3
- package/esm2022/lib/directives/query.directive.mjs +3 -3
- package/esm2022/lib/entity/entity-store.mjs +28 -12
- package/esm2022/lib/entity/entity.types.mjs +1 -1
- package/esm2022/lib/entity/entity.utils.mjs +26 -2
- package/esm2022/lib/query-form/query-form.mjs +10 -5
- package/esm2022/lib/request/request.util.mjs +2 -1
- package/fesm2022/ethlete-query.mjs +71 -25
- package/fesm2022/ethlete-query.mjs.map +1 -1
- package/lib/auth/auth-provider.types.d.ts +0 -5
- package/lib/auth/bearer-auth-provider.d.ts +0 -4
- package/lib/entity/entity-store.d.ts +4 -0
- package/lib/entity/entity.types.d.ts +20 -0
- package/lib/entity/entity.utils.d.ts +10 -0
- package/lib/query/query.d.ts +0 -16
- package/lib/query/query.types.d.ts +0 -14
- package/package.json +1 -1
|
@@ -5,11 +5,6 @@ export interface AuthProvider {
|
|
|
5
5
|
* This will automatically get injected into every query that has the `secure` property set to `true`.
|
|
6
6
|
*/
|
|
7
7
|
header: Record<string, string>;
|
|
8
|
-
/**
|
|
9
|
-
* Cleanup function that gets called once the auth provider gets destroyed.
|
|
10
|
-
* @internal
|
|
11
|
-
*/
|
|
12
|
-
cleanUp(): void;
|
|
13
8
|
}
|
|
14
9
|
export interface AuthProviderBasicConfig {
|
|
15
10
|
/**
|
|
@@ -18,8 +18,4 @@ export declare class BearerAuthProvider<T extends AnyQueryCreator> implements Au
|
|
|
18
18
|
enableCookie(): void;
|
|
19
19
|
disableCookie(): void;
|
|
20
20
|
private _prepareForRefresh;
|
|
21
|
-
/**
|
|
22
|
-
* @internal
|
|
23
|
-
*/
|
|
24
|
-
_refreshQuery(): import("../query").Query<any, any, any, any, any, any> | null | undefined;
|
|
25
21
|
}
|
|
@@ -7,17 +7,21 @@ export declare class EntityStore<T> {
|
|
|
7
7
|
constructor(_config: EntityStoreConfig);
|
|
8
8
|
select(key: EntityKey): Observable<T | null>;
|
|
9
9
|
select(keys: EntityKey[]): Observable<T[]>;
|
|
10
|
+
select(keys: EntityKey[][]): Observable<T[]>;
|
|
10
11
|
/**
|
|
11
12
|
* **Note:** Prefer `select` over `selectWhere` when possible.
|
|
12
13
|
*/
|
|
13
14
|
selectWhere(predicate: (value: T) => boolean): Observable<T[]>;
|
|
14
15
|
set(key: EntityKey, value: T): void;
|
|
15
16
|
set(keys: EntityKey[], values: T[]): void;
|
|
17
|
+
set(keys: EntityKey[][], values: T[][]): void;
|
|
16
18
|
remove(key: EntityKey): void;
|
|
17
19
|
remove(keys: EntityKey[]): void;
|
|
20
|
+
remove(keys: EntityKey[][]): void;
|
|
18
21
|
logState(): void;
|
|
19
22
|
private _select;
|
|
20
23
|
private _selectMany;
|
|
21
24
|
private _set;
|
|
22
25
|
private _remove;
|
|
26
|
+
private _normalizeKeys;
|
|
23
27
|
}
|
|
@@ -3,3 +3,23 @@ export interface EntityStoreConfig {
|
|
|
3
3
|
name: string;
|
|
4
4
|
logActions?: boolean;
|
|
5
5
|
}
|
|
6
|
+
export interface InsertFromConfig<OriginStoreType, OriginKeys extends keyof NonNullable<OriginStoreType>, IdFn extends (value: NonNullable<OriginStoreType>) => EntityKey | EntityKey[]> {
|
|
7
|
+
/**
|
|
8
|
+
* The property key of which the value should be replaced.
|
|
9
|
+
*/
|
|
10
|
+
for: OriginKeys;
|
|
11
|
+
/**
|
|
12
|
+
* A function that returns the id of the entity. Can also return an array of ids.
|
|
13
|
+
*/
|
|
14
|
+
id: IdFn;
|
|
15
|
+
}
|
|
16
|
+
export interface RemoveFromConfig<T> {
|
|
17
|
+
/**
|
|
18
|
+
* The where function to select the entities to remove.
|
|
19
|
+
*/
|
|
20
|
+
where: (entity: T) => boolean;
|
|
21
|
+
/**
|
|
22
|
+
* A function that returns the id of the entity.
|
|
23
|
+
*/
|
|
24
|
+
id: (entity: T) => EntityKey;
|
|
25
|
+
}
|
|
@@ -1,2 +1,12 @@
|
|
|
1
1
|
import { Paginated } from '@ethlete/types';
|
|
2
|
+
import { EntityStore } from './entity-store';
|
|
3
|
+
import { EntityKey, InsertFromConfig, RemoveFromConfig } from './entity.types';
|
|
2
4
|
export declare function mapToPaginated<T>(response: Paginated<T>): import("rxjs").OperatorFunction<unknown, Paginated<T>>;
|
|
5
|
+
/**
|
|
6
|
+
* Use an other store to represent a property of the current entity.
|
|
7
|
+
*/
|
|
8
|
+
export declare const insertFrom: <OriginStoreType, OriginKeys extends keyof NonNullable<OriginStoreType>, SubStoreType extends NonNullable<OriginStoreType>[OriginKeys] extends (infer U)[] ? U : NonNullable<OriginStoreType>[OriginKeys], IdFn extends (value: NonNullable<OriginStoreType>) => EntityKey | EntityKey[], ComputedEntityType extends ReturnType<IdFn> extends unknown[] ? OriginStoreType : Omit<OriginStoreType, OriginKeys> & { [K in OriginKeys]: SubStoreType | null; }>(store: EntityStore<SubStoreType>, { for: key, id }: InsertFromConfig<OriginStoreType, OriginKeys, IdFn>) => import("rxjs").OperatorFunction<OriginStoreType, ComputedEntityType | null>;
|
|
9
|
+
/**
|
|
10
|
+
* Remove entities from a store based on a where function.
|
|
11
|
+
*/
|
|
12
|
+
export declare const removeFrom: <T>(store: EntityStore<T>, { where, id }: RemoveFromConfig<T>) => void;
|
package/lib/query/query.d.ts
CHANGED
|
@@ -12,10 +12,6 @@ export declare class Query<Response, Arguments extends BaseArguments | undefined
|
|
|
12
12
|
private _requestSubscription;
|
|
13
13
|
private _onAbort$;
|
|
14
14
|
private _currentPollConfig;
|
|
15
|
-
/**
|
|
16
|
-
* @internal
|
|
17
|
-
*/
|
|
18
|
-
_isPollingPaused: boolean;
|
|
19
15
|
private readonly _state$;
|
|
20
16
|
private get _nextId();
|
|
21
17
|
get state$(): Observable<QueryState<Data>>;
|
|
@@ -30,14 +26,6 @@ export declare class Query<Response, Arguments extends BaseArguments | undefined
|
|
|
30
26
|
get isInUse(): boolean;
|
|
31
27
|
get isPolling(): boolean;
|
|
32
28
|
get autoRefreshOnConfig(): Readonly<QueryAutoRefreshConfig>;
|
|
33
|
-
/**
|
|
34
|
-
* @internal
|
|
35
|
-
*/
|
|
36
|
-
get _enableSmartPolling(): boolean;
|
|
37
|
-
/**
|
|
38
|
-
* @internal
|
|
39
|
-
*/
|
|
40
|
-
get _arguments(): Arguments;
|
|
41
29
|
get store(): Store | null;
|
|
42
30
|
constructor(_client: QueryClient, _queryConfig: RestQueryConfig<Route, Response, Arguments, Store, Data, Id> | GqlQueryConfig<Route, Response, Arguments, Store, Data, Id>, _routeWithParams: Route, _args: Arguments);
|
|
43
31
|
execute(options?: ExecuteQueryOptions): this;
|
|
@@ -46,10 +34,6 @@ export declare class Query<Response, Arguments extends BaseArguments | undefined
|
|
|
46
34
|
stopPolling(): this;
|
|
47
35
|
pausePolling(): this;
|
|
48
36
|
resumePolling(): this;
|
|
49
|
-
/**
|
|
50
|
-
* @internal
|
|
51
|
-
*/
|
|
52
|
-
_destroy(): void;
|
|
53
37
|
private _getBearerAuthProvider;
|
|
54
38
|
private _updateEntityState;
|
|
55
39
|
private _transformState;
|
|
@@ -196,20 +196,6 @@ export interface ExecuteQueryOptions {
|
|
|
196
196
|
* @default false
|
|
197
197
|
*/
|
|
198
198
|
skipCache?: boolean;
|
|
199
|
-
/**
|
|
200
|
-
* The trigger type for this query.
|
|
201
|
-
* - `program`: The query was triggered by the user.
|
|
202
|
-
* - `poll`: The query was triggered by polling.
|
|
203
|
-
* - `auto`: The query was triggered by an auto refresh event.
|
|
204
|
-
* @default 'program'
|
|
205
|
-
* @internal
|
|
206
|
-
*/
|
|
207
|
-
_triggeredVia?: QueryTrigger;
|
|
208
|
-
/**
|
|
209
|
-
* Whether this is a retry of an unauthorized request.
|
|
210
|
-
* @internal
|
|
211
|
-
*/
|
|
212
|
-
_isUnauthorizedRetry?: boolean;
|
|
213
199
|
}
|
|
214
200
|
export type RouteType<Arguments extends BaseArguments | undefined> = Arguments extends {
|
|
215
201
|
pathParams: infer PathParams;
|