import{Operator}from'../Operator';import{Subscriber}from'../Subscriber';import{Subscription}from'../Subscription';import{Observable}from'../Observable';import{MonoTypeOperatorFunction,TeardownLogic}from'../types';/** * Returns an Observable that mirrors the source Observable, but will call a specified function when * the source terminates on complete or error. * @param {function} callback Function to be called when source terminates. * @return {Observable} An Observable that mirrors the source, but will call the specified function on termination. * @method finally * @owner Observable */exportfunctionfinalize<T>(callback:()=>void):MonoTypeOperatorFunction<T>{return(source:Observable<T>)=>source.lift(newFinallyOperator(callback));}classFinallyOperator<T>implementsOperator<T,T>{constructor(privatecallback:()=>void){}call(subscriber:Subscriber<T>,source:any):TeardownLogic{returnsource.subscribe(newFinallySubscriber(subscriber,this.callback));}}/** * We need this JSDoc comment for affecting ESDoc. * @ignore * @extends {Ignored} */classFinallySubscriber<T>extendsSubscriber<T>{constructor(destination:Subscriber<T>,callback:()=>void){super(destination);this.add(newSubscription(callback));}}