Rx.ts 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. /* tslint:disable:no-unused-variable */
  2. // Subject imported before Observable to bypass circular dependency issue since
  3. // Subject extends Observable and Observable references Subject in it's
  4. // definition
  5. export {Subject, AnonymousSubject} from './Subject';
  6. /* tslint:enable:no-unused-variable */
  7. export {Observable} from './Observable';
  8. // statics
  9. /* tslint:disable:no-use-before-declare */
  10. import './add/observable/bindCallback';
  11. import './add/observable/bindNodeCallback';
  12. import './add/observable/combineLatest';
  13. import './add/observable/concat';
  14. import './add/observable/defer';
  15. import './add/observable/empty';
  16. import './add/observable/forkJoin';
  17. import './add/observable/from';
  18. import './add/observable/fromEvent';
  19. import './add/observable/fromEventPattern';
  20. import './add/observable/fromPromise';
  21. import './add/observable/generate';
  22. import './add/observable/if';
  23. import './add/observable/interval';
  24. import './add/observable/merge';
  25. import './add/observable/race';
  26. import './add/observable/never';
  27. import './add/observable/of';
  28. import './add/observable/onErrorResumeNext';
  29. import './add/observable/pairs';
  30. import './add/observable/range';
  31. import './add/observable/using';
  32. import './add/observable/throw';
  33. import './add/observable/timer';
  34. import './add/observable/zip';
  35. //dom
  36. import './add/observable/dom/ajax';
  37. import './add/observable/dom/webSocket';
  38. //operators
  39. import './add/operator/buffer';
  40. import './add/operator/bufferCount';
  41. import './add/operator/bufferTime';
  42. import './add/operator/bufferToggle';
  43. import './add/operator/bufferWhen';
  44. import './add/operator/catch';
  45. import './add/operator/combineAll';
  46. import './add/operator/combineLatest';
  47. import './add/operator/concat';
  48. import './add/operator/concatAll';
  49. import './add/operator/concatMap';
  50. import './add/operator/concatMapTo';
  51. import './add/operator/count';
  52. import './add/operator/dematerialize';
  53. import './add/operator/debounce';
  54. import './add/operator/debounceTime';
  55. import './add/operator/defaultIfEmpty';
  56. import './add/operator/delay';
  57. import './add/operator/delayWhen';
  58. import './add/operator/distinct';
  59. import './add/operator/distinctUntilChanged';
  60. import './add/operator/distinctUntilKeyChanged';
  61. import './add/operator/do';
  62. import './add/operator/exhaust';
  63. import './add/operator/exhaustMap';
  64. import './add/operator/expand';
  65. import './add/operator/elementAt';
  66. import './add/operator/filter';
  67. import './add/operator/finally';
  68. import './add/operator/find';
  69. import './add/operator/findIndex';
  70. import './add/operator/first';
  71. import './add/operator/groupBy';
  72. import './add/operator/ignoreElements';
  73. import './add/operator/isEmpty';
  74. import './add/operator/audit';
  75. import './add/operator/auditTime';
  76. import './add/operator/last';
  77. import './add/operator/let';
  78. import './add/operator/every';
  79. import './add/operator/map';
  80. import './add/operator/mapTo';
  81. import './add/operator/materialize';
  82. import './add/operator/max';
  83. import './add/operator/merge';
  84. import './add/operator/mergeAll';
  85. import './add/operator/mergeMap';
  86. import './add/operator/mergeMapTo';
  87. import './add/operator/mergeScan';
  88. import './add/operator/min';
  89. import './add/operator/multicast';
  90. import './add/operator/observeOn';
  91. import './add/operator/onErrorResumeNext';
  92. import './add/operator/pairwise';
  93. import './add/operator/partition';
  94. import './add/operator/pluck';
  95. import './add/operator/publish';
  96. import './add/operator/publishBehavior';
  97. import './add/operator/publishReplay';
  98. import './add/operator/publishLast';
  99. import './add/operator/race';
  100. import './add/operator/reduce';
  101. import './add/operator/repeat';
  102. import './add/operator/repeatWhen';
  103. import './add/operator/retry';
  104. import './add/operator/retryWhen';
  105. import './add/operator/sample';
  106. import './add/operator/sampleTime';
  107. import './add/operator/scan';
  108. import './add/operator/sequenceEqual';
  109. import './add/operator/share';
  110. import './add/operator/shareReplay';
  111. import './add/operator/single';
  112. import './add/operator/skip';
  113. import './add/operator/skipLast';
  114. import './add/operator/skipUntil';
  115. import './add/operator/skipWhile';
  116. import './add/operator/startWith';
  117. import './add/operator/subscribeOn';
  118. import './add/operator/switch';
  119. import './add/operator/switchMap';
  120. import './add/operator/switchMapTo';
  121. import './add/operator/take';
  122. import './add/operator/takeLast';
  123. import './add/operator/takeUntil';
  124. import './add/operator/takeWhile';
  125. import './add/operator/throttle';
  126. import './add/operator/throttleTime';
  127. import './add/operator/timeInterval';
  128. import './add/operator/timeout';
  129. import './add/operator/timeoutWith';
  130. import './add/operator/timestamp';
  131. import './add/operator/toArray';
  132. import './add/operator/toPromise';
  133. import './add/operator/window';
  134. import './add/operator/windowCount';
  135. import './add/operator/windowTime';
  136. import './add/operator/windowToggle';
  137. import './add/operator/windowWhen';
  138. import './add/operator/withLatestFrom';
  139. import './add/operator/zip';
  140. import './add/operator/zipAll';
  141. /* tslint:disable:no-unused-variable */
  142. export {Operator} from './Operator';
  143. export {Observer} from './Observer';
  144. export {Subscription} from './Subscription';
  145. export {Subscriber} from './Subscriber';
  146. export {AsyncSubject} from './AsyncSubject';
  147. export {ReplaySubject} from './ReplaySubject';
  148. export {BehaviorSubject} from './BehaviorSubject';
  149. export {ConnectableObservable} from './observable/ConnectableObservable';
  150. export {Notification} from './Notification';
  151. export {EmptyError} from './util/EmptyError';
  152. export {ArgumentOutOfRangeError} from './util/ArgumentOutOfRangeError';
  153. export {ObjectUnsubscribedError} from './util/ObjectUnsubscribedError';
  154. export {TimeoutError} from './util/TimeoutError';
  155. export {UnsubscriptionError} from './util/UnsubscriptionError';
  156. export {TimeInterval} from './operator/timeInterval';
  157. export {Timestamp} from './operators/timestamp';
  158. export {TestScheduler} from './testing/TestScheduler';
  159. export {VirtualTimeScheduler} from './scheduler/VirtualTimeScheduler';
  160. export {AjaxRequest, AjaxResponse, AjaxError, AjaxTimeoutError} from './observable/dom/AjaxObservable';
  161. export { pipe } from './util/pipe';
  162. import { asap } from './scheduler/asap';
  163. import { async } from './scheduler/async';
  164. import { queue } from './scheduler/queue';
  165. import { animationFrame } from './scheduler/animationFrame';
  166. import { AsapScheduler } from './scheduler/AsapScheduler';
  167. import { AsyncScheduler } from './scheduler/AsyncScheduler';
  168. import { QueueScheduler } from './scheduler/QueueScheduler';
  169. import { AnimationFrameScheduler } from './scheduler/AnimationFrameScheduler';
  170. import { rxSubscriber } from './symbol/rxSubscriber';
  171. import { iterator } from './symbol/iterator';
  172. import { observable } from './symbol/observable';
  173. import * as _operators from './operators';
  174. export const operators = _operators;
  175. /* tslint:enable:no-unused-variable */
  176. /**
  177. * @typedef {Object} Rx.Scheduler
  178. * @property {Scheduler} queue Schedules on a queue in the current event frame
  179. * (trampoline scheduler). Use this for iteration operations.
  180. * @property {Scheduler} asap Schedules on the micro task queue, which uses the
  181. * fastest transport mechanism available, either Node.js' `process.nextTick()`
  182. * or Web Worker MessageChannel or setTimeout or others. Use this for
  183. * asynchronous conversions.
  184. * @property {Scheduler} async Schedules work with `setInterval`. Use this for
  185. * time-based operations.
  186. * @property {Scheduler} animationFrame Schedules work with `requestAnimationFrame`.
  187. * Use this for synchronizing with the platform's painting
  188. */
  189. let Scheduler = {
  190. asap,
  191. queue,
  192. animationFrame,
  193. async
  194. };
  195. /**
  196. * @typedef {Object} Rx.Symbol
  197. * @property {Symbol|string} rxSubscriber A symbol to use as a property name to
  198. * retrieve an "Rx safe" Observer from an object. "Rx safety" can be defined as
  199. * an object that has all of the traits of an Rx Subscriber, including the
  200. * ability to add and remove subscriptions to the subscription chain and
  201. * guarantees involving event triggering (can't "next" after unsubscription,
  202. * etc).
  203. * @property {Symbol|string} observable A symbol to use as a property name to
  204. * retrieve an Observable as defined by the [ECMAScript "Observable" spec](https://github.com/zenparsing/es-observable).
  205. * @property {Symbol|string} iterator The ES6 symbol to use as a property name
  206. * to retrieve an iterator from an object.
  207. */
  208. let Symbol = {
  209. rxSubscriber,
  210. observable,
  211. iterator
  212. };
  213. export {
  214. Scheduler,
  215. Symbol
  216. };