123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- /**
- * @license Angular v16.2.9
- * (c) 2010-2022 Google LLC. https://angular.io/
- * License: MIT
- */
- import { DestroyRef } from '@angular/core';
- import { Injector } from '@angular/core';
- import { MonoTypeOperatorFunction } from 'rxjs';
- import { Observable } from 'rxjs';
- import { Signal } from '@angular/core';
- import { Subscribable } from 'rxjs';
- /**
- * Operator which completes the Observable when the calling context (component, directive, service,
- * etc) is destroyed.
- *
- * @param destroyRef optionally, the `DestroyRef` representing the current context. This can be
- * passed explicitly to use `takeUntilDestroyed` outside of an [injection
- * context](guide/dependency-injection-context). Otherwise, the current `DestroyRef` is injected.
- *
- * @developerPreview
- */
- export declare function takeUntilDestroyed<T>(destroyRef?: DestroyRef): MonoTypeOperatorFunction<T>;
- /**
- * Exposes the value of an Angular `Signal` as an RxJS `Observable`.
- *
- * The signal's value will be propagated into the `Observable`'s subscribers using an `effect`.
- *
- * `toObservable` must be called in an injection context unless an injector is provided via options.
- *
- * @developerPreview
- */
- export declare function toObservable<T>(source: Signal<T>, options?: ToObservableOptions): Observable<T>;
- /**
- * Options for `toObservable`.
- *
- * @developerPreview
- */
- export declare interface ToObservableOptions {
- /**
- * The `Injector` to use when creating the underlying `effect` which watches the signal.
- *
- * If this isn't specified, the current [injection context](guide/dependency-injection-context)
- * will be used.
- */
- injector?: Injector;
- }
- /**
- * Get the current value of an `Observable` as a reactive `Signal`.
- *
- * `toSignal` returns a `Signal` which provides synchronous reactive access to values produced
- * by the given `Observable`, by subscribing to that `Observable`. The returned `Signal` will always
- * have the most recent value emitted by the subscription, and will throw an error if the
- * `Observable` errors.
- *
- * Before the `Observable` emits its first value, the `Signal` will return `undefined`. To avoid
- * this, either an `initialValue` can be passed or the `requireSync` option enabled.
- *
- * By default, the subscription will be automatically cleaned up when the current [injection
- * context](guide/dependency-injection-context) is destroyed. For example, when `toObservable` is
- * called during the construction of a component, the subscription will be cleaned up when the
- * component is destroyed. If an [injection context](/guide/dependency-injection-context) is not
- * available, an explicit `Injector` can be passed instead.
- *
- * If the subscription should persist until the `Observable` itself completes, the `manualCleanup`
- * option can be specified instead, which disables the automatic subscription teardown. No injection
- * context is needed in this configuration as well.
- */
- export declare function toSignal<T>(source: Observable<T> | Subscribable<T>): Signal<T | undefined>;
- /**
- * Get the current value of an `Observable` as a reactive `Signal`.
- *
- * `toSignal` returns a `Signal` which provides synchronous reactive access to values produced
- * by the given `Observable`, by subscribing to that `Observable`. The returned `Signal` will always
- * have the most recent value emitted by the subscription, and will throw an error if the
- * `Observable` errors.
- *
- * Before the `Observable` emits its first value, the `Signal` will return the configured
- * `initialValue`, or `undefined` if no `initialValue` is provided. If the `Observable` is
- * guaranteed to emit synchronously, then the `requireSync` option can be passed instead.
- *
- * By default, the subscription will be automatically cleaned up when the current [injection
- * context](/guide/dependency-injection-context) is destroyed. For example, when `toObservable` is
- * called during the construction of a component, the subscription will be cleaned up when the
- * component is destroyed. If an injection context is not available, an explicit `Injector` can be
- * passed instead.
- *
- * If the subscription should persist until the `Observable` itself completes, the `manualCleanup`
- * option can be specified instead, which disables the automatic subscription teardown. No injection
- * context is needed in this configuration as well.
- *
- * @developerPreview
- */
- export declare function toSignal<T>(source: Observable<T> | Subscribable<T>, options?: ToSignalOptions<undefined> & {
- requireSync?: false;
- }): Signal<T | undefined>;
- /**
- * Get the current value of an `Observable` as a reactive `Signal`.
- *
- * `toSignal` returns a `Signal` which provides synchronous reactive access to values produced
- * by the given `Observable`, by subscribing to that `Observable`. The returned `Signal` will always
- * have the most recent value emitted by the subscription, and will throw an error if the
- * `Observable` errors.
- *
- * Before the `Observable` emits its first value, the `Signal` will return the configured
- * `initialValue`. If the `Observable` is guaranteed to emit synchronously, then the `requireSync`
- * option can be passed instead.
- *
- * By default, the subscription will be automatically cleaned up when the current [injection
- * context](guide/dependency-injection-context) is destroyed. For example, when `toObservable` is
- * called during the construction of a component, the subscription will be cleaned up when the
- * component is destroyed. If an [injection context](/guide/dependency-injection-context) is not
- * available, an explicit `Injector` can be passed instead.
- *
- * If the subscription should persist until the `Observable` itself completes, the `manualCleanup`
- * option can be specified instead, which disables the automatic subscription teardown. No injection
- * context is needed in this configuration as well.
- *
- * @developerPreview
- */
- export declare function toSignal<T, U extends T | null | undefined>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions<U> & {
- initialValue: U;
- requireSync?: false;
- }): Signal<T | U>;
- /**
- * Get the current value of an `Observable` as a reactive `Signal`.
- *
- * `toSignal` returns a `Signal` which provides synchronous reactive access to values produced
- * by the given `Observable`, by subscribing to that `Observable`. The returned `Signal` will always
- * have the most recent value emitted by the subscription, and will throw an error if the
- * `Observable` errors.
- *
- * With `requireSync` set to `true`, `toSignal` will assert that the `Observable` produces a value
- * immediately upon subscription. No `initialValue` is needed in this case, and the returned signal
- * does not include an `undefined` type.
- *
- * By default, the subscription will be automatically cleaned up when the current [injection
- * context](/guide/dependency-injection-context) is destroyed. For example, when `toObservable` is
- * called during the construction of a component, the subscription will be cleaned up when the
- * component is destroyed. If an injection context is not available, an explicit `Injector` can be
- * passed instead.
- *
- * If the subscription should persist until the `Observable` itself completes, the `manualCleanup`
- * option can be specified instead, which disables the automatic subscription teardown. No injection
- * context is needed in this configuration as well.
- *
- * @developerPreview
- */
- export declare function toSignal<T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions<undefined> & {
- requireSync: true;
- }): Signal<T>;
- /**
- * Options for `toSignal`.
- *
- * @publicApi
- */
- export declare interface ToSignalOptions<T> {
- /**
- * Initial value for the signal produced by `toSignal`.
- *
- * This will be the value of the signal until the observable emits its first value.
- */
- initialValue?: T;
- /**
- * Whether to require that the observable emits synchronously when `toSignal` subscribes.
- *
- * If this is `true`, `toSignal` will assert that the observable produces a value immediately upon
- * subscription. Setting this option removes the need to either deal with `undefined` in the
- * signal type or provide an `initialValue`, at the cost of a runtime error if this requirement is
- * not met.
- */
- requireSync?: boolean;
- /**
- * `Injector` which will provide the `DestroyRef` used to clean up the Observable subscription.
- *
- * If this is not provided, a `DestroyRef` will be retrieved from the current [injection
- * context](/guide/dependency-injection-context), unless manual cleanup is requested.
- */
- injector?: Injector;
- /**
- * Whether the subscription should be automatically cleaned up (via `DestroyRef`) when
- * `toObservable`'s creation context is destroyed.
- *
- * If manual cleanup is enabled, then `DestroyRef` is not used, and the subscription will persist
- * until the `Observable` itself completes.
- */
- manualCleanup?: boolean;
- }
- export { }
|