{"ast":null,"code":"import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nexport function interval() {\n  var period = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n  var scheduler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : async;\n\n  if (!isNumeric(period) || period < 0) {\n    period = 0;\n  }\n\n  if (!scheduler || typeof scheduler.schedule !== 'function') {\n    scheduler = async;\n  }\n\n  return new Observable(function (subscriber) {\n    subscriber.add(scheduler.schedule(dispatch, period, {\n      subscriber: subscriber,\n      counter: 0,\n      period: period\n    }));\n    return subscriber;\n  });\n}\n\nfunction dispatch(state) {\n  var subscriber = state.subscriber,\n      counter = state.counter,\n      period = state.period;\n  subscriber.next(counter);\n  this.schedule({\n    subscriber: subscriber,\n    counter: counter + 1,\n    period: period\n  }, period);\n} //# sourceMappingURL=interval.js.map","map":null,"metadata":{},"sourceType":"module"}