@one-paragon/angular-utilities 2.0.19 → 2.0.21-beta.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.
@@ -0,0 +1,17 @@
1
+ import { OnDestroy } from "@angular/core";
2
+ import { RequestFactory, RequestStateOptions, RequestCreatorOptions } from "./types";
3
+ import { RequestStateStore } from './RequestStateStore';
4
+ import { Observable } from "rxjs";
5
+ import * as i0 from "@angular/core";
6
+ export declare class RequestStateFactory implements OnDestroy {
7
+ constructor();
8
+ ngOnDestroy(): void;
9
+ private requestors;
10
+ create<TParam extends any[], V>(req: RequestFactory<TParam, V>, options?: RequestStateOptions<TParam>): RequestStateStore<TParam, V>;
11
+ create<TParam extends any[], V, R, T = R>(req: RequestFactory<TParam, V>, project: (v: V) => R, options?: RequestStateOptions<TParam>): RequestStateStore<TParam, V, T>;
12
+ createHttpClient<T>(r: (o: Observable<T>) => Observable<T>, options?: RequestStateOptions<any>): RequestStateStore<[o: Observable<T>], T, null, T>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<RequestStateFactory, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<RequestStateFactory>;
15
+ }
16
+ export declare function createRequestor<TParam extends any[], V>(req: RequestFactory<TParam, V>, options?: RequestCreatorOptions<TParam>): RequestStateStore<TParam, V>;
17
+ export declare function createRequestor<TParam extends any[], V, R, T = R>(req: RequestFactory<TParam, V>, project: (v: V) => R, options?: RequestCreatorOptions<TParam>): RequestStateStore<TParam, V, T>;
@@ -1,28 +1,32 @@
1
1
  import { Observable, Subscription } from 'rxjs';
2
- import { ComponentStore } from '@ngrx/component-store';
3
- import { HttpRequestFactory, HttpRequestStatus, HttpRequestState, RequestStateOptions } from './types';
2
+ import { RequestFactory as RequestFactory, RequestStatus, RequestState, RequestStateOptions } from './types';
4
3
  import { HttpErrorResponse } from '@angular/common/http';
5
4
  import { Signal } from '@angular/core';
6
- import * as i0 from "@angular/core";
7
5
  export interface RequestResponse<TParam extends any[], T> {
8
6
  requestParams: [...TParam];
9
- response: HttpRequestState<T>;
7
+ response: RequestState<T>;
10
8
  }
11
- export declare class HttpRequestStateStore<TParam extends any[], V, R = null, T = R extends null ? V : R> extends ComponentStore<RequestResponse<TParam, T>> {
9
+ export declare class RequestStateStore<TParam extends any[], V, R = null, T = R extends null ? V : R> {
10
+ private _state;
11
+ private setState;
12
+ state: Signal<RequestResponse<TParam, T>>;
13
+ state$: Observable<RequestResponse<TParam, T>>;
12
14
  private options?;
13
15
  private project?;
14
16
  private req;
15
- private injector?;
16
- constructor(req: HttpRequestFactory<TParam, V>, options?: RequestStateOptions<TParam>, project?: (v: V) => R);
17
+ private injector;
18
+ private destroy$;
19
+ constructor(req: RequestFactory<TParam, V>, options?: RequestStateOptions<TParam>, project?: (v: V) => R);
17
20
  reset(): void;
18
21
  private flatteningStrategy;
19
- private requestEffect;
22
+ private createRequestPipeline;
23
+ private requestPipeLine;
20
24
  private flattenedRequest;
21
25
  private singleUseRequest;
22
- $selectHttpState: Signal<HttpRequestState<T>>;
23
- selectHttpState$: Observable<HttpRequestState<T>>;
24
- $selectStatus: Signal<HttpRequestStatus>;
25
- selectStatus$: Observable<HttpRequestStatus>;
26
+ $selectRequestState: Signal<RequestState<T>>;
27
+ selectRequestState$: Observable<RequestState<T>>;
28
+ $selectStatus: Signal<RequestStatus>;
29
+ selectStatus$: Observable<RequestStatus>;
26
30
  $isSuccess: Signal<boolean>;
27
31
  $isError: Signal<boolean>;
28
32
  $isInProgress: Signal<boolean>;
@@ -31,7 +35,7 @@ export declare class HttpRequestStateStore<TParam extends any[], V, R = null, T
31
35
  $selectError: Signal<any>;
32
36
  selectResponse$: Observable<T>;
33
37
  $selectResponse: Signal<T | undefined>;
34
- selectSuccessOrError$: Observable<null>;
38
+ private selectSuccessOrError$;
35
39
  errorHandled: boolean;
36
40
  onError(cb: (error: HttpErrorResponse) => void): this;
37
41
  onSuccess(cb: (body?: T) => void): this;
@@ -45,16 +49,11 @@ export declare class HttpRequestStateStore<TParam extends any[], V, R = null, T
45
49
  requestParams: [...TParam];
46
50
  }) => void): this;
47
51
  private createRequest;
48
- onUpdate(func: (state: {
49
- requestParams: [...TParam];
50
- response: HttpRequestState<T>;
51
- }) => void): void;
52
- on: <V_1>(srcObservable: Observable<V_1>, func: (obj: V_1) => void) => Subscription;
52
+ private on;
53
53
  request: (...value: [...TParam]) => Subscription;
54
- ngOnDestroy(): void;
55
54
  requestWith: (params: Observable<[...TParam]> | Signal<[...TParam]>) => this;
56
- static ɵfac: i0.ɵɵFactoryDeclaration<HttpRequestStateStore<any, any, any, any>, never>;
57
- static ɵdir: i0.ɵɵDirectiveDeclaration<HttpRequestStateStore<any, any, any, any>, never, never, {}, {}, never, never, true, never>;
55
+ private assertInjectionContext;
56
+ destroy(): void;
58
57
  }
59
58
  export declare class CancellationToken {
60
59
  }
@@ -1,5 +1,5 @@
1
1
  import { TemplateRef, ViewContainerRef } from '@angular/core';
2
- import { HttpRequestState } from '../types';
2
+ import { RequestState } from '../types';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare abstract class HttpStateDirectiveBase<V, R = null> {
5
5
  hasView: boolean;
@@ -8,7 +8,7 @@ export declare abstract class HttpStateDirectiveBase<V, R = null> {
8
8
  protected viewContainer: ViewContainerRef;
9
9
  ngOnInit(): void;
10
10
  private baseRender;
11
- abstract render: (state: HttpRequestState) => boolean;
11
+ abstract render: (state: RequestState) => boolean;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<HttpStateDirectiveBase<any, any>, never>;
13
13
  static ɵdir: i0.ɵɵDirectiveDeclaration<HttpStateDirectiveBase<any, any>, never, never, {}, {}, never, never, true, never>;
14
14
  }
@@ -1,8 +1,8 @@
1
- import { HttpRequestState } from '../types';
1
+ import { RequestState } from '../types';
2
2
  import { HttpStateDirectiveBase } from './HttpStateDirectiveBase';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class HttpErrorStateDirective<V, R = null> extends HttpStateDirectiveBase<V, R> {
5
- render: (state: HttpRequestState<any>) => boolean;
5
+ render: (state: RequestState<any>) => boolean;
6
6
  ngOnInit(): void;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<HttpErrorStateDirective<any, any>, never>;
8
8
  static ɵdir: i0.ɵɵDirectiveDeclaration<HttpErrorStateDirective<any, any>, "[httpErrorState]", never, {}, {}, never, never, true, never>;
@@ -1,8 +1,8 @@
1
1
  import { HttpStateDirectiveBase } from './HttpStateDirectiveBase';
2
- import { HttpRequestState } from '../types';
2
+ import { RequestState } from '../types';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class HttpInProgressStateDirective<V, R = null> extends HttpStateDirectiveBase<V, R> {
5
- render: (state: HttpRequestState<any>) => boolean;
5
+ render: (state: RequestState<any>) => boolean;
6
6
  ngOnInit(): void;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<HttpInProgressStateDirective<any, any>, never>;
8
8
  static ɵdir: i0.ɵɵDirectiveDeclaration<HttpInProgressStateDirective<any, any>, "[httpInProgressState]", never, {}, {}, never, never, true, never>;
@@ -1,8 +1,8 @@
1
- import { HttpRequestState } from '../types';
1
+ import { RequestState } from '../types';
2
2
  import { HttpStateDirectiveBase } from './HttpStateDirectiveBase';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class HttpNotStartedStateDirective<V, R = null> extends HttpStateDirectiveBase<V, R> {
5
- render: (state: HttpRequestState<any>) => boolean;
5
+ render: (state: RequestState<any>) => boolean;
6
6
  ngOnInit(): void;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<HttpNotStartedStateDirective<any, any>, never>;
8
8
  static ɵdir: i0.ɵɵDirectiveDeclaration<HttpNotStartedStateDirective<any, any>, "[httpNotStartedState]", never, {}, {}, never, never, true, never>;
@@ -1,14 +1,14 @@
1
1
  import { HttpStateDirectiveBase } from './HttpStateDirectiveBase';
2
- import { HttpRequestState } from '../types';
3
- import { HttpRequestStateStore } from '../HttpRequestStateStore';
2
+ import { RequestState } from '../types';
3
+ import { RequestStateStore } from '../RequestStateStore';
4
4
  import { Observable } from 'rxjs';
5
5
  import * as i0 from "@angular/core";
6
6
  export interface HttpSuccessStateViewContext<T> {
7
7
  $implicit: T;
8
8
  }
9
9
  export declare class HttpSuccessStateDirective<V, R = null> extends HttpStateDirectiveBase<V, R> {
10
- httpSuccessStateTypeSafety?: HttpRequestStateStore<any, V, R> | Observable<HttpRequestState<V>>;
11
- render: (state: HttpRequestState<R extends null ? V : R>) => boolean;
10
+ httpSuccessStateTypeSafety?: RequestStateStore<any, V, R> | Observable<RequestState<V>>;
11
+ render: (state: RequestState<R extends null ? V : R>) => boolean;
12
12
  ngOnInit(): void;
13
13
  static ngTemplateContextGuard<V, R>(dir: HttpSuccessStateDirective<V, R>, ctx: any): ctx is HttpSuccessStateViewContext<R extends null ? V : R>;
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<HttpSuccessStateDirective<any, any>, never>;
@@ -1,7 +1,7 @@
1
1
  import { TemplateRef, ViewContainerRef } from '@angular/core';
2
2
  import { Observable, Subject, Unsubscribable } from 'rxjs';
3
- import { HttpRequestStateStore } from '../HttpRequestStateStore';
4
- import { HttpRequestState, HttpRequestStatus } from '../types';
3
+ import { RequestStateStore } from '../RequestStateStore';
4
+ import { RequestState, RequestStatus } from '../types';
5
5
  import * as i0 from "@angular/core";
6
6
  export interface HttpRequestStateViewContext<T> {
7
7
  $implicit?: HttpRequestStateAny<T>;
@@ -16,11 +16,11 @@ export interface HttpRequestStateViewContext<T> {
16
16
  export declare class HttpRequestStateDirective<TParam extends any[], V, R, T = R extends null ? V : R> {
17
17
  private viewContainer;
18
18
  readonly ViewContext: HttpRequestStateViewContext<T>;
19
- subject: Subject<Observable<HttpRequestState<T>>>;
20
- state: Observable<HttpRequestState<T>>;
19
+ subject: Subject<Observable<RequestState<T>>>;
20
+ state: Observable<RequestState<T>>;
21
21
  subscription: Unsubscribable;
22
- hooks: ((state: HttpRequestState<T>) => void)[];
23
- set stateStore(store: HttpRequestStateStore<TParam, V, R, T> | Observable<HttpRequestState<T>>);
22
+ hooks: ((state: RequestState<T>) => void)[];
23
+ set stateStore(store: RequestStateStore<TParam, V, R, T> | Observable<RequestState<T>>);
24
24
  constructor(templateRef: TemplateRef<any>, viewContainer: ViewContainerRef);
25
25
  ngOnDestroy(): void;
26
26
  static ngTemplateContextGuard<V, R>(dir: HttpRequestStateDirective<any, V, R>, ctx: any): ctx is HttpRequestStateViewContext<R extends null ? V : R>;
@@ -28,7 +28,7 @@ export declare class HttpRequestStateDirective<TParam extends any[], V, R, T = R
28
28
  static ɵdir: i0.ɵɵDirectiveDeclaration<HttpRequestStateDirective<any, any, any, any>, "[httpRequestState]", never, { "stateStore": { "alias": "httpRequestState"; "required": false; }; }, {}, never, never, true, never>;
29
29
  }
30
30
  export type HttpRequestStateAny<T> = {
31
- status: HttpRequestStatus;
31
+ status: RequestStatus;
32
32
  body?: T;
33
33
  error?: any;
34
34
  };
@@ -1,9 +1,9 @@
1
- import { HttpRequestState, HttpRequestStateError, HttpRequestStateInProgress, HttpRequestStateNotStarted, HttpRequestStateSuccess, HttpRequestStatus } from "./types";
2
- export declare function isErrorState<T>(state: HttpRequestState<T>): state is HttpRequestStateError;
3
- export declare function isSuccessState<T>(state: HttpRequestState<T>): state is HttpRequestStateSuccess<T>;
4
- export declare function isSuccessOrErrorState<T>(state: HttpRequestState<T>): state is (HttpRequestStateSuccess<T> | HttpRequestStateError);
5
- export declare function createSuccess<T>(body: T): HttpRequestStateSuccess<T>;
6
- export declare function createFailure(error: any): HttpRequestStateError;
7
- export declare const notStarted: HttpRequestStateNotStarted;
8
- export declare const inProgress: HttpRequestStateInProgress;
9
- export declare function statusIsSuccessOrInProgress(status: HttpRequestStatus): boolean;
1
+ import { RequestState, RequestStateError, RequestStateInProgress, RequestStateNotStarted, RequestStateSuccess, RequestStatus } from "./types";
2
+ export declare function isErrorState<T>(state: RequestState<T>): state is RequestStateError;
3
+ export declare function isSuccessState<T>(state: RequestState<T>): state is RequestStateSuccess<T>;
4
+ export declare function isSuccessOrErrorState<T>(state: RequestState<T>): state is (RequestStateSuccess<T> | RequestStateError);
5
+ export declare function createSuccess<T>(body: T): RequestStateSuccess<T>;
6
+ export declare function createFailure(error: any): RequestStateError;
7
+ export declare const notStarted: RequestStateNotStarted;
8
+ export declare const inProgress: RequestStateInProgress;
9
+ export declare function statusIsSuccessOrInProgress(status: RequestStatus): boolean;
@@ -1,6 +1,6 @@
1
1
  export * from './helpers';
2
- export * from './http-request-state';
2
+ export * from './request-state';
3
3
  export * from './http-state-module';
4
- export * from './HttpRequestStateFactory';
5
- export * from './HttpRequestStateStore';
4
+ export * from './RequestStateFactory';
5
+ export * from './RequestStateStore';
6
6
  export * from './types';
@@ -0,0 +1,12 @@
1
+ import { Observable } from 'rxjs';
2
+ import { RequestFactory, RequestState, RequestStatus } from './types';
3
+ export type HttpRequestState$<T> = Observable<RequestState<T>>;
4
+ export interface HttpRequestor<Res, Req> {
5
+ httpState$: Observable<RequestState<Res>>;
6
+ status$: Observable<RequestStatus>;
7
+ body$: Observable<Res>;
8
+ request: Req;
9
+ }
10
+ export declare function httpRequest<T = any>(req: Observable<T>): HttpRequestState$<T>;
11
+ export declare function httpRequestor<TParam extends any[], T>(req: RequestFactory<TParam, T>): HttpRequestor<T, (...params: [...TParam]) => Observable<RequestState<T>>>;
12
+ export declare function chainRequest<TParam extends any[], T, TT>(httpState$: Observable<RequestState<T>>, request: RequestFactory<TParam, TT>, requestParams: ((responseFromPrevious: T) => [...TParam]) | (() => [...TParam])): Observable<RequestState<TT>>;
@@ -1,3 +1,3 @@
1
- import { HttpRequestState } from '../types';
1
+ import { RequestState } from '../types';
2
2
  import { Observable } from 'rxjs';
3
- export declare const getRequestorBody: <T>(source: Observable<HttpRequestState<T>>) => Observable<T>;
3
+ export declare const getRequestorBody: <T>(source: Observable<RequestState<T>>) => Observable<T>;
@@ -1,3 +1,3 @@
1
- import { HttpRequestState } from '../types';
1
+ import { RequestState } from '../types';
2
2
  import { Observable } from 'rxjs';
3
- export declare const getRequestorStatus: <T>(source: Observable<HttpRequestState<T>>) => Observable<import("../types").HttpRequestStatus>;
3
+ export declare const getRequestorStatus: <T>(source: Observable<RequestState<T>>) => Observable<import("../types").RequestStatus>;
@@ -1,3 +1,3 @@
1
1
  import { Observable } from 'rxjs';
2
- import { HttpRequestState } from '../types';
3
- export declare function tapError(onError: (error: any) => void): (src: Observable<HttpRequestState>) => Observable<HttpRequestState>;
2
+ import { RequestState } from '../types';
3
+ export declare function tapError(onError: (error: any) => void): (src: Observable<RequestState>) => Observable<RequestState>;
@@ -1,3 +1,3 @@
1
1
  import { Observable } from 'rxjs';
2
- import { HttpRequestState } from '../types';
3
- export declare function tapSuccess<T>(onSuccess: (body: T) => void): (src: Observable<HttpRequestState<T>>) => Observable<HttpRequestState<T>>;
2
+ import { RequestState } from '../types';
3
+ export declare function tapSuccess<T>(onSuccess: (body: T) => void): (src: Observable<RequestState<T>>) => Observable<RequestState<T>>;
@@ -1,41 +1,41 @@
1
1
  import { Injector } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
- export declare enum HttpRequestStatus {
3
+ export declare enum RequestStatus {
4
4
  notStarted = 0,
5
5
  inProgress = 1,
6
6
  success = 2,
7
7
  fail = 3,
8
8
  cancelled = 4
9
9
  }
10
- export type HttpRequestStateCancelled = {
11
- status: HttpRequestStatus.cancelled;
10
+ export type RequestStateCancelled = {
11
+ status: RequestStatus.cancelled;
12
12
  };
13
- export type HttpRequestStateNotStarted = {
14
- status: HttpRequestStatus.notStarted;
13
+ export type RequestStateNotStarted = {
14
+ status: RequestStatus.notStarted;
15
15
  };
16
- export type HttpRequestStateInProgress = {
17
- status: HttpRequestStatus.inProgress;
16
+ export type RequestStateInProgress = {
17
+ status: RequestStatus.inProgress;
18
18
  };
19
- export type HttpRequestStateSuccess<T> = {
20
- status: HttpRequestStatus.success;
19
+ export type RequestStateSuccess<T> = {
20
+ status: RequestStatus.success;
21
21
  body: T;
22
22
  };
23
- export type HttpRequestStateError = {
24
- status: HttpRequestStatus.fail;
23
+ export type RequestStateError = {
24
+ status: RequestStatus.fail;
25
25
  error: any;
26
26
  };
27
- export type HttpRequestState<T = any> = HttpRequestStateCancelled | HttpRequestStateNotStarted | HttpRequestStateInProgress | HttpRequestStateSuccess<T> | HttpRequestStateError;
28
- export declare enum HttpRequestStrategy {
27
+ export type RequestState<T = any> = RequestStateCancelled | RequestStateNotStarted | RequestStateInProgress | RequestStateSuccess<T> | RequestStateError;
28
+ export declare enum RequestStrategy {
29
29
  concurrent = 1,
30
30
  singleUse = 2,
31
31
  cancelPrevious = 3,
32
32
  sequential = 4
33
33
  }
34
34
  export interface RequestStateOptions<TParam extends any[] = any> {
35
- strategy?: HttpRequestStrategy;
36
- autoRequestWith?: [...TParam];
37
- injector?: Injector;
35
+ strategy?: RequestStrategy;
36
+ autoRequest?: TParam extends never[] ? true : never;
38
37
  }
39
38
  export interface RequestCreatorOptions<TParam extends any[] = any> extends RequestStateOptions<TParam> {
39
+ injector?: Injector;
40
40
  }
41
- export type HttpRequestFactory<TParam extends any[], T> = (...params: [...TParam]) => Observable<T>;
41
+ export type RequestFactory<TParam extends any[], T> = (...params: [...TParam]) => Observable<T>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@one-paragon/angular-utilities",
3
- "version": "2.0.19",
3
+ "version": "2.0.21-beta.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "19.0.0",
6
6
  "@angular/core": "19.0.0",
@@ -1,17 +0,0 @@
1
- import { OnDestroy } from "@angular/core";
2
- import { HttpRequestFactory, RequestStateOptions, RequestCreatorOptions } from "./types";
3
- import { HttpRequestStateStore } from './HttpRequestStateStore';
4
- import { Observable } from "rxjs";
5
- import * as i0 from "@angular/core";
6
- export declare class HttpRequestStateFactory implements OnDestroy {
7
- constructor();
8
- ngOnDestroy(): void;
9
- private requestors;
10
- create<TParam extends any[], V>(req: HttpRequestFactory<TParam, V>, options?: RequestStateOptions<TParam>): HttpRequestStateStore<TParam, V>;
11
- create<TParam extends any[], V, R, T = R>(req: HttpRequestFactory<TParam, V>, project: (v: V) => R, options?: RequestStateOptions<TParam>): HttpRequestStateStore<TParam, V, T>;
12
- createHttpClient<T>(r: (o: Observable<T>) => Observable<T>, options?: RequestStateOptions<any>): HttpRequestStateStore<[o: Observable<T>], T, null, T>;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<HttpRequestStateFactory, never>;
14
- static ɵprov: i0.ɵɵInjectableDeclaration<HttpRequestStateFactory>;
15
- }
16
- export declare function createRequestor<TParam extends any[], V>(req: HttpRequestFactory<TParam, V>, options?: RequestCreatorOptions<TParam>): HttpRequestStateStore<TParam, V>;
17
- export declare function createRequestor<TParam extends any[], V, R, T = R>(req: HttpRequestFactory<TParam, V>, project: (v: V) => R, options?: RequestCreatorOptions<TParam>): HttpRequestStateStore<TParam, V, T>;
@@ -1,12 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { HttpRequestFactory, HttpRequestState, HttpRequestStatus } from './types';
3
- export type HttpRequestState$<T> = Observable<HttpRequestState<T>>;
4
- export interface HttpRequestor<Res, Req> {
5
- httpState$: Observable<HttpRequestState<Res>>;
6
- status$: Observable<HttpRequestStatus>;
7
- body$: Observable<Res>;
8
- request: Req;
9
- }
10
- export declare function httpRequest<T = any>(req: Observable<T>): HttpRequestState$<T>;
11
- export declare function httpRequestor<TParam extends any[], T>(req: HttpRequestFactory<TParam, T>): HttpRequestor<T, (...params: [...TParam]) => Observable<HttpRequestState<T>>>;
12
- export declare function chainRequest<TParam extends any[], T, TT>(httpState$: Observable<HttpRequestState<T>>, request: HttpRequestFactory<TParam, TT>, requestParams: ((responseFromPrevious: T) => [...TParam]) | (() => [...TParam])): Observable<HttpRequestState<TT>>;