Buckets:
| import { Observable } from '../Observable'; | |
| import { Subscriber } from '../Subscriber'; | |
| import { OperatorFunction } from '../types'; | |
| import { isFunction } from './isFunction'; | |
| /** | |
| * Used to determine if an object is an Observable with a lift function. | |
| */ | |
| export function hasLift(source: any): source is { lift: InstanceType<typeof Observable>['lift'] } { | |
| return isFunction(source?.lift); | |
| } | |
| /** | |
| * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way. | |
| * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription. | |
| */ | |
| export function operate<T, R>( | |
| init: (liftedSource: Observable<T>, subscriber: Subscriber<R>) => (() => void) | void | |
| ): OperatorFunction<T, R> { | |
| return (source: Observable<T>) => { | |
| if (hasLift(source)) { | |
| return source.lift(function (this: Subscriber<R>, liftedSource: Observable<T>) { | |
| try { | |
| return init(liftedSource, this); | |
| } catch (err) { | |
| this.error(err); | |
| } | |
| }); | |
| } | |
| throw new TypeError('Unable to lift unknown Observable type'); | |
| }; | |
| } | |
Xet Storage Details
- Size:
- 1.11 kB
- Xet hash:
- f41d0e17a3276a6ae1ca6c9ec07beef3986448fcde852b7cce0210d61e7b86dc
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.