import { Observable } from '../core/Observable' import { ArrayValues, Subscribable } from '../core/types.h' import { ExtractInnerTypes } from '../helpers/types/extractInnnerTypes' import { concat as concatObservable } from '../observable/concat' export function concat>>( ...args: TS ): (stream: Subscribable) => Observable> | T> export function concat() { const streams: Array> = Array.prototype.slice.call(arguments) return (stream: Subscribable) => { const allStreams = [stream].concat(streams) return concatObservable.apply(null, allStreams) } }