Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / rxjs / src / internal / operators / publishReplay.ts
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/rxjs/src/internal/operators/publishReplay.ts b/.config/coc/extensions/node_modules/coc-prettier/node_modules/rxjs/src/internal/operators/publishReplay.ts
new file mode 100644 (file)
index 0000000..a64b52a
--- /dev/null
@@ -0,0 +1,25 @@
+import { Observable } from '../Observable';
+import { ReplaySubject } from '../ReplaySubject';
+import { multicast } from './multicast';
+import { ConnectableObservable } from '../observable/ConnectableObservable';
+import { UnaryFunction, MonoTypeOperatorFunction, OperatorFunction, SchedulerLike, ObservableInput, ObservedValueOf } from '../types';
+
+/* tslint:disable:max-line-length */
+export function publishReplay<T>(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction<T>;
+export function publishReplay<T, O extends ObservableInput<any>>(bufferSize?: number, windowTime?: number, selector?: (shared: Observable<T>) => O, scheduler?: SchedulerLike): OperatorFunction<T, ObservedValueOf<O>>;
+/* tslint:enable:max-line-length */
+
+export function publishReplay<T, R>(bufferSize?: number,
+                                    windowTime?: number,
+                                    selectorOrScheduler?: SchedulerLike | OperatorFunction<T, R>,
+                                    scheduler?: SchedulerLike): UnaryFunction<Observable<T>, ConnectableObservable<R>> {
+
+  if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {
+    scheduler = selectorOrScheduler;
+  }
+
+  const selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;
+  const subject = new ReplaySubject<T>(bufferSize, windowTime, scheduler);
+
+  return (source: Observable<T>) => multicast(() => subject, selector)(source) as ConnectableObservable<R>;
+}