@ethlete/query 0.1.0-next.12 → 0.1.0-next.13

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.
@@ -1,5 +1,5 @@
1
1
  import { ChangeDetectorRef, ErrorHandler, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
2
- import { AnyQuery, QueryRawResponseType, QueryResponseType } from '../query';
2
+ import { AnyQuery, AnyQueryCreatorCollection, AnyQueryOfCreatorCollection, QueryOf, QueryRawResponseType, QueryResponseType } from '../query';
3
3
  import { RequestError } from '../request';
4
4
  import * as i0 from "@angular/core";
5
5
  interface QueryContext<Q extends AnyQuery | null> {
@@ -9,7 +9,7 @@ interface QueryContext<Q extends AnyQuery | null> {
9
9
  loading: boolean;
10
10
  error: RequestError<unknown> | null;
11
11
  }
12
- export declare class QueryDirective<Q extends AnyQuery | null> implements OnInit, OnDestroy {
12
+ export declare class QueryDirective<Q extends AnyQuery | AnyQueryOfCreatorCollection<AnyQueryCreatorCollection> | null> implements OnInit, OnDestroy {
13
13
  private _mainTemplateRef;
14
14
  private _viewContainerRef;
15
15
  private _errorHandler;
@@ -23,8 +23,8 @@ export declare class QueryDirective<Q extends AnyQuery | null> implements OnInit
23
23
  get cache(): boolean;
24
24
  set cache(v: boolean);
25
25
  private _cache;
26
- constructor(_mainTemplateRef: TemplateRef<QueryContext<Q>>, _viewContainerRef: ViewContainerRef, _errorHandler: ErrorHandler, _cdr: ChangeDetectorRef);
27
- static ngTemplateContextGuard<Q extends AnyQuery | null>(dir: QueryDirective<Q>, ctx: unknown): ctx is QueryContext<Q>;
26
+ constructor(_mainTemplateRef: TemplateRef<QueryContext<QueryOf<Q>>>, _viewContainerRef: ViewContainerRef, _errorHandler: ErrorHandler, _cdr: ChangeDetectorRef);
27
+ static ngTemplateContextGuard<Q extends AnyQuery | AnyQueryOfCreatorCollection<AnyQueryCreatorCollection> | null>(dir: QueryDirective<Q>, ctx: unknown): ctx is QueryContext<QueryOf<Q>>;
28
28
  ngOnInit(): void;
29
29
  ngOnDestroy(): void;
30
30
  private _subscribeToQuery;
@@ -1,5 +1,5 @@
1
1
  import { Observable } from 'rxjs';
2
- import { ResponseTransformerType } from '../query-client';
2
+ import { AnyQueryCreator, QueryCreatorReturnType, ResponseTransformerType } from '../query-client';
3
3
  import { Method, PathParams, QueryParams, RequestError } from '../request';
4
4
  import { Query } from './query';
5
5
  export interface RestQueryConfig<Route extends RouteType<Arguments>, Response, Arguments extends BaseArguments | undefined, ResponseTransformer extends ResponseTransformerType<Response> | undefined> {
@@ -129,3 +129,15 @@ export type QueryType<T extends {
129
129
  }> = T['prepare'] extends () => infer R ? R : T['prepare'] extends (args: any) => infer R ? R : never;
130
130
  export type QueryResponseType<Q extends AnyQuery | null> = Q extends AnyQuery ? QueryStateData<Q['state']> | null : null;
131
131
  export type QueryRawResponseType<Q extends AnyQuery | null> = Q extends AnyQuery ? QueryStateRawData<Q['state']> | null : null;
132
+ export type AnyQueryCreatorCollection = {
133
+ [name: string]: AnyQueryCreator;
134
+ };
135
+ export type AnyQueryOfCreatorCollection<T extends {
136
+ [name: string]: AnyQueryCreator;
137
+ }> = {
138
+ [K in keyof T]: {
139
+ type: K;
140
+ query: QueryCreatorReturnType<T[K]>;
141
+ };
142
+ }[keyof T];
143
+ export type QueryOf<T extends AnyQueryOfCreatorCollection<AnyQueryCreatorCollection> | AnyQuery | null> = T extends AnyQuery ? T : T extends AnyQueryOfCreatorCollection<AnyQueryCreatorCollection> ? T['query'] : never;
@@ -1,7 +1,7 @@
1
- import { Observable } from 'rxjs';
1
+ import { BehaviorSubject, Observable } from 'rxjs';
2
2
  import { ResponseTransformerType } from '../query-client';
3
3
  import { RequestHeaders } from '../request';
4
- import { AnyQuery, BaseArguments, Cancelled, Failure, GqlQueryConfig, Loading, Prepared, QueryRawResponseType, QueryResponseType, QueryState, QueryStateData, QueryStateRawData, QueryStateType, RouteType, Success } from './query.types';
4
+ import { AnyQuery, AnyQueryCreatorCollection, AnyQueryOfCreatorCollection, BaseArguments, Cancelled, Failure, GqlQueryConfig, Loading, Prepared, QueryRawResponseType, QueryResponseType, QueryState, QueryStateData, QueryStateRawData, QueryStateType, RouteType, Success } from './query.types';
5
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>;
@@ -16,4 +16,10 @@ export declare const isQueryStateCancelled: (state: QueryState | null | undefine
16
16
  export declare const isQueryStatePrepared: (state: QueryState | null | undefined) => state is Prepared;
17
17
  export declare const mergeHeaders: (...headers: Array<RequestHeaders | null | undefined>) => RequestHeaders | null | undefined;
18
18
  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>;
19
+ export declare const isQuery: <T extends AnyQuery>(query: unknown) => query is T;
20
+ export declare const createQueryCollection: <T extends AnyQueryCreatorCollection, R extends AnyQueryOfCreatorCollection<T>>(queryMap: T) => BehaviorSubject<R | null>;
21
+ export declare const extractQuery: <T extends AnyQuery | {
22
+ type: string;
23
+ query: import("@ethlete/query").Query<any, any, any, any, any>;
24
+ } | null>(v: T) => import("@ethlete/query").Query<any, any, any, any, any> | null;
19
25
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ethlete/query",
3
- "version": "0.1.0-next.12",
3
+ "version": "0.1.0-next.13",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },
@@ -8,7 +8,7 @@
8
8
  "@angular/common": "^14.2.0 || ^15.0.0",
9
9
  "@angular/core": "^14.2.0 || ^15.0.0",
10
10
  "rxjs": "7.8.0",
11
- "@ethlete/core": "0.2.0-next.10",
11
+ "@ethlete/core": "0.2.0-next.11",
12
12
  "@angular/forms": "15.1.0",
13
13
  "@angular/router": "15.1.0"
14
14
  },