import { async } from '../scheduler/async'; import { OperatorFunction, SchedulerLike, Timestamp as TimestampInterface } from '../types'; import { map } from './map'; /** * @param scheduler * @return {Observable>|WebSocketSubject|Observable} * @method timestamp * @owner Observable */ export function timestamp(scheduler: SchedulerLike = async): OperatorFunction> { return map((value: T) => new Timestamp(value, scheduler.now())); // return (source: Observable) => source.lift(new TimestampOperator(scheduler)); } export class Timestamp implements TimestampInterface { constructor(public value: T, public timestamp: number) { } }