@signaltree/core 9.3.0 → 9.5.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/dist/Action.js +15 -0
- package/dist/AsyncAction.js +91 -0
- package/dist/AsyncScheduler.js +37 -0
- package/dist/ObjectUnsubscribedError.js +11 -0
- package/dist/Observable.js +103 -0
- package/dist/OperatorSubscriber.js +62 -0
- package/dist/Scheduler.js +17 -0
- package/dist/Subject.js +162 -0
- package/dist/Subscriber.js +153 -0
- package/dist/Subscription.js +144 -0
- package/dist/UnsubscriptionError.js +14 -0
- package/dist/args.js +10 -0
- package/dist/arrRemove.js +8 -0
- package/dist/async.js +6 -0
- package/dist/config.js +4 -0
- package/dist/createErrorClass.js +12 -0
- package/dist/dateTimestampProvider.js +6 -0
- package/dist/debounceTime.js +46 -0
- package/dist/distinctUntilChanged.js +25 -0
- package/dist/errorContext.js +7 -0
- package/dist/executeSchedule.js +19 -0
- package/dist/filter.js +11 -0
- package/dist/from.js +8 -0
- package/dist/identity.js +5 -0
- package/dist/index.js +2 -0
- package/dist/innerFrom.js +145 -0
- package/dist/intervalProvider.js +17 -0
- package/dist/isArrayLike.js +3 -0
- package/dist/isAsyncIterable.js +7 -0
- package/dist/isFunction.js +5 -0
- package/dist/isInteropObservable.js +8 -0
- package/dist/isIterable.js +8 -0
- package/dist/isObservable.js +8 -0
- package/dist/isPromise.js +7 -0
- package/dist/isReadableStreamLike.js +40 -0
- package/dist/isScheduler.js +7 -0
- package/dist/iterator.js +9 -0
- package/dist/lib/markers/async-query.js +134 -0
- package/dist/lib/markers/async-source.js +122 -0
- package/dist/lib/rxjs-interop/rx-method.js +50 -0
- package/dist/lift.js +22 -0
- package/dist/noop.js +3 -0
- package/dist/observable2.js +3 -0
- package/dist/observeOn.js +12 -0
- package/dist/of.js +13 -0
- package/dist/pipe.js +15 -0
- package/dist/reportUnhandledError.js +11 -0
- package/dist/rxjs-interop.js +1 -0
- package/dist/scheduleArray.js +20 -0
- package/dist/scheduleAsyncIterable.js +25 -0
- package/dist/scheduleIterable.js +34 -0
- package/dist/scheduleObservable.js +9 -0
- package/dist/schedulePromise.js +9 -0
- package/dist/scheduleReadableStreamLike.js +8 -0
- package/dist/scheduled.js +39 -0
- package/dist/subscribeOn.js +10 -0
- package/dist/switchMap.js +26 -0
- package/dist/tap.js +42 -0
- package/dist/throwUnobservableError.js +5 -0
- package/dist/timeoutProvider.js +17 -0
- package/package.json +6 -1
- package/src/index.d.ts +2 -0
- package/src/lib/markers/async-query.d.ts +31 -0
- package/src/lib/markers/async-source.d.ts +27 -0
- package/src/lib/markers/index.d.ts +2 -0
- package/src/lib/rxjs-interop/index.d.ts +1 -0
- package/src/lib/rxjs-interop/rx-method.d.ts +11 -0
- package/src/lib/types.d.ts +3 -1
- package/src/rxjs-interop.d.ts +1 -0
package/src/index.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export { isDerivedMarker, type DerivedMarker, type DerivedType, } from './lib/ma
|
|
|
10
10
|
export { status, isStatusMarker, LoadingState, type StatusMarker, type StatusSignal, type StatusConfig, } from './lib/markers/status';
|
|
11
11
|
export { stored, isStoredMarker, createStorageKeys, clearStoragePrefix, type StoredMarker, type StoredSignal, type StoredOptions, } from './lib/markers/stored';
|
|
12
12
|
export { form, isFormMarker, createFormSignal, validators, FORM_MARKER, type FormMarker, type FormSignal, type FormConfig, type FormFields, type FormWizard, type WizardConfig, type WizardStepConfig, type Validator, type AsyncValidator, } from './lib/markers/form';
|
|
13
|
+
export { asyncSource, isAsyncSourceMarker, createAsyncSourceSignal, ASYNC_SOURCE_MARKER, type AsyncSourceMarker, type AsyncSourceSignal, type AsyncSourceConfig, type AsyncSourceLoader, } from './lib/markers/async-source';
|
|
14
|
+
export { asyncQuery, isAsyncQueryMarker, createAsyncQuerySignal, ASYNC_QUERY_MARKER, type AsyncQueryMarker, type AsyncQuerySignal, type AsyncQueryConfig, type AsyncQueryFn, } from './lib/markers/async-query';
|
|
13
15
|
export { registerMarkerProcessor } from './lib/internals/materialize-markers';
|
|
14
16
|
export { equal, deepEqual, isNodeAccessor, isAnySignal, toWritableSignal, parsePath, composeEnhancers, isBuiltInObject, } from './lib/utils';
|
|
15
17
|
export { getPathNotifier } from './lib/path-notifier';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type Signal, type WritableSignal } from '@angular/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
export declare const ASYNC_QUERY_MARKER: unique symbol;
|
|
4
|
+
export type AsyncQueryFn<TInput, TResult> = (input: TInput) => Observable<TResult> | Promise<TResult>;
|
|
5
|
+
export interface AsyncQueryConfig<TInput, TResult> {
|
|
6
|
+
initialInput?: TInput;
|
|
7
|
+
initialResult?: TResult;
|
|
8
|
+
query: AsyncQueryFn<TInput, TResult>;
|
|
9
|
+
debounce?: number;
|
|
10
|
+
filter?: (input: TInput) => boolean;
|
|
11
|
+
equal?: (a: TInput, b: TInput) => boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface AsyncQueryMarker<TInput, TResult> {
|
|
14
|
+
[ASYNC_QUERY_MARKER]: true;
|
|
15
|
+
config: AsyncQueryConfig<TInput, TResult>;
|
|
16
|
+
readonly __inputType?: TInput;
|
|
17
|
+
readonly __resultType?: TResult;
|
|
18
|
+
}
|
|
19
|
+
export interface AsyncQuerySignal<TInput, TResult> {
|
|
20
|
+
(): TResult | undefined;
|
|
21
|
+
readonly input: WritableSignal<TInput | undefined>;
|
|
22
|
+
readonly results: Signal<TResult | undefined>;
|
|
23
|
+
readonly data: Signal<TResult | undefined>;
|
|
24
|
+
readonly loading: Signal<boolean>;
|
|
25
|
+
readonly error: Signal<unknown | null>;
|
|
26
|
+
rerun(): void;
|
|
27
|
+
reset(): void;
|
|
28
|
+
}
|
|
29
|
+
export declare function asyncQuery<TInput, TResult>(config: AsyncQueryConfig<TInput, TResult>): AsyncQueryMarker<TInput, TResult>;
|
|
30
|
+
export declare function isAsyncQueryMarker(value: unknown): value is AsyncQueryMarker<unknown, unknown>;
|
|
31
|
+
export declare function createAsyncQuerySignal<TInput, TResult>(marker: AsyncQueryMarker<TInput, TResult>): AsyncQuerySignal<TInput, TResult>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Signal } from '@angular/core';
|
|
2
|
+
import { type Observable } from 'rxjs';
|
|
3
|
+
export declare const ASYNC_SOURCE_MARKER: unique symbol;
|
|
4
|
+
export type AsyncSourceLoader<T> = () => Observable<T> | Promise<T>;
|
|
5
|
+
export interface AsyncSourceConfig<T> {
|
|
6
|
+
initial?: T;
|
|
7
|
+
load: AsyncSourceLoader<T>;
|
|
8
|
+
lazy?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface AsyncSourceMarker<T> {
|
|
11
|
+
[ASYNC_SOURCE_MARKER]: true;
|
|
12
|
+
config: AsyncSourceConfig<T>;
|
|
13
|
+
readonly __valueType?: T;
|
|
14
|
+
}
|
|
15
|
+
export interface AsyncSourceSignal<T> {
|
|
16
|
+
(): T | undefined;
|
|
17
|
+
readonly data: Signal<T | undefined>;
|
|
18
|
+
readonly loading: Signal<boolean>;
|
|
19
|
+
readonly error: Signal<unknown | null>;
|
|
20
|
+
refresh(): void;
|
|
21
|
+
set(value: T): void;
|
|
22
|
+
update(updater: (current: T | undefined) => T): void;
|
|
23
|
+
reset(): void;
|
|
24
|
+
}
|
|
25
|
+
export declare function asyncSource<T>(config: AsyncSourceConfig<T>): AsyncSourceMarker<T>;
|
|
26
|
+
export declare function isAsyncSourceMarker(value: unknown): value is AsyncSourceMarker<unknown>;
|
|
27
|
+
export declare function createAsyncSourceSignal<T>(marker: AsyncSourceMarker<T>): AsyncSourceSignal<T>;
|
|
@@ -2,3 +2,5 @@ export { isDerivedMarker, getDerivedMarkerSymbol, type DerivedMarker, type Deriv
|
|
|
2
2
|
export { status, isStatusMarker, createStatusSignal, LoadingState, STATUS_MARKER, type StatusMarker, type StatusSignal, type StatusConfig, } from './status';
|
|
3
3
|
export { stored, isStoredMarker, createStoredSignal, createStorageKeys, clearStoragePrefix, STORED_MARKER, type StoredMarker, type StoredSignal, type StoredOptions, type MigrationFn, } from './stored';
|
|
4
4
|
export { form, isFormMarker, createFormSignal, validators, FORM_MARKER, type FormMarker, type FormSignal, type FormConfig, type FormFields, type FormWizard, type WizardConfig, type WizardStepConfig, type Validator, type AsyncValidator, } from './form';
|
|
5
|
+
export { asyncSource, isAsyncSourceMarker, createAsyncSourceSignal, ASYNC_SOURCE_MARKER, type AsyncSourceMarker, type AsyncSourceSignal, type AsyncSourceConfig, type AsyncSourceLoader, } from './async-source';
|
|
6
|
+
export { asyncQuery, isAsyncQueryMarker, createAsyncQuerySignal, ASYNC_QUERY_MARKER, type AsyncQueryMarker, type AsyncQuerySignal, type AsyncQueryConfig, type AsyncQueryFn, } from './async-query';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { rxMethod, type RxMethod, type RxMethodInput, } from './rx-method';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DestroyRef, Injector, type Signal } from '@angular/core';
|
|
2
|
+
import { type Observable, Subscription } from 'rxjs';
|
|
3
|
+
export type RxMethodInput<T> = T | Signal<T> | Observable<T>;
|
|
4
|
+
export interface RxMethod<T> {
|
|
5
|
+
(...args: [T] extends [void] ? [] | [RxMethodInput<T>] : [RxMethodInput<T>]): Subscription;
|
|
6
|
+
destroy(): void;
|
|
7
|
+
}
|
|
8
|
+
export declare function rxMethod<T = void>(generator: (source$: Observable<T>) => Observable<unknown>, options?: {
|
|
9
|
+
destroyRef?: DestroyRef;
|
|
10
|
+
injector?: Injector;
|
|
11
|
+
}): RxMethod<T>;
|
package/src/lib/types.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Signal, WritableSignal } from '@angular/core';
|
|
2
|
+
import { AsyncQueryMarker, AsyncQuerySignal } from './markers/async-query';
|
|
3
|
+
import { AsyncSourceMarker, AsyncSourceSignal } from './markers/async-source';
|
|
2
4
|
import { FormMarker, FormSignal } from './markers/form';
|
|
3
5
|
import { StatusMarker, StatusSignal } from './markers/status';
|
|
4
6
|
import { StoredMarker, StoredSignal } from './markers/stored';
|
|
@@ -30,7 +32,7 @@ export interface NodeAccessor<T> {
|
|
|
30
32
|
(updater: (current: T) => T): void;
|
|
31
33
|
}
|
|
32
34
|
export type TreeNode<T> = {
|
|
33
|
-
[K in keyof T]: T[K] extends EntityMapMarker<infer E, infer Key> ? EntitySignal<E, Key> : T[K] extends StatusMarker<infer Err> ? StatusSignal<Err> : T[K] extends StoredMarker<infer V> ? StoredSignal<V> : T[K] extends FormMarker<infer F> ? FormSignal<F> : T[K] extends Primitive ? CallableWritableSignal<T[K]> : T[K] extends readonly unknown[] ? CallableWritableSignal<T[K]> : T[K] extends Date | RegExp | Map<any, any> | Set<any> | Error | ((...args: unknown[]) => unknown) ? CallableWritableSignal<T[K]> : T[K] extends object ? NodeAccessor<T[K]> & TreeNode<T[K]> : CallableWritableSignal<T[K]>;
|
|
35
|
+
[K in keyof T]: T[K] extends EntityMapMarker<infer E, infer Key> ? EntitySignal<E, Key> : T[K] extends StatusMarker<infer Err> ? StatusSignal<Err> : T[K] extends StoredMarker<infer V> ? StoredSignal<V> : T[K] extends FormMarker<infer F> ? FormSignal<F> : T[K] extends AsyncSourceMarker<infer V> ? AsyncSourceSignal<V> : T[K] extends AsyncQueryMarker<infer In, infer Out> ? AsyncQuerySignal<In, Out> : T[K] extends Primitive ? CallableWritableSignal<T[K]> : T[K] extends readonly unknown[] ? CallableWritableSignal<T[K]> : T[K] extends Date | RegExp | Map<any, any> | Set<any> | Error | ((...args: unknown[]) => unknown) ? CallableWritableSignal<T[K]> : T[K] extends object ? NodeAccessor<T[K]> & TreeNode<T[K]> : CallableWritableSignal<T[K]>;
|
|
34
36
|
};
|
|
35
37
|
export interface ISignalTree<T> extends NodeAccessor<T> {
|
|
36
38
|
readonly state: TreeNode<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { rxMethod, type RxMethod, type RxMethodInput, } from './lib/rxjs-interop';
|