ÿØÿà JFIF H H ÿÛ C GIF89;
| System: Linux srv913213 5.15.0-190-generic #200-Ubuntu SMP Fri Aug 7 15:06:04 UTC 2026 x86_64 Current Path : /var/www/talentgenesis_admin_backend/node_modules/rxjs/src/internal/operators/ |
| Current File : /var/www/talentgenesis_admin_backend/node_modules/rxjs/src/internal/operators/publishBehavior.ts |
import { Observable } from '../Observable';
import { BehaviorSubject } from '../BehaviorSubject';
import { ConnectableObservable } from '../observable/ConnectableObservable';
import { UnaryFunction } from '../types';
/**
* Creates a {@link ConnectableObservable} that utilizes a {@link BehaviorSubject}.
*
* @param initialValue The initial value passed to the {@link BehaviorSubject}.
* @return A function that returns a {@link ConnectableObservable}
* @deprecated Will be removed in v8. To create a connectable observable that uses a
* {@link BehaviorSubject} under the hood, use {@link connectable}.
* `source.pipe(publishBehavior(initValue))` is equivalent to
* `connectable(source, { connector: () => new BehaviorSubject(initValue), resetOnDisconnect: false })`.
* If you're using {@link refCount} after `publishBehavior`, use the {@link share} operator instead.
* `source.pipe(publishBehavior(initValue), refCount())` is equivalent to
* `source.pipe(share({ connector: () => new BehaviorSubject(initValue), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }))`.
* Details: https://rxjs.dev/deprecations/multicasting
*/
export function publishBehavior<T>(initialValue: T): UnaryFunction<Observable<T>, ConnectableObservable<T>> {
// Note that this has *never* supported the selector function.
return (source) => {
const subject = new BehaviorSubject<T>(initialValue);
return new ConnectableObservable(source, () => subject);
};
}