transformers.d.ts 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /**
  2. * Transformers change and combine streams, similar to operators.
  3. * urx comes with two combinators - [[combineLatest]] and [[merge]], and one convenience filter - [[duc]].
  4. *
  5. * @packageDocumentation
  6. */
  7. import { Emitter } from './actions';
  8. import { Comparator } from './pipe';
  9. /**
  10. * Merges one or more emitters from the same type into a new Emitter which emits values from any of the source emitters.
  11. * ```ts
  12. * const foo = stream<number>()
  13. * const bar = stream<number>()
  14. *
  15. * subscribe(merge(foo, bar), (value) => console.log(value)) // 42, 43
  16. *
  17. * publish(foo, 42)
  18. * publish(bar, 43)
  19. * ```
  20. */
  21. export declare function merge<T>(...sources: Emitter<T>[]): Emitter<T>;
  22. /**
  23. * A convenience wrapper that emits only the distinct values from the passed Emitter. Wraps [[pipe]] and [[distinctUntilChanged]].
  24. *
  25. * ```ts
  26. * const foo = stream<number>()
  27. *
  28. * // this line...
  29. * const a = duc(foo)
  30. *
  31. * // is equivalent to this
  32. * const b = pipe(distinctUntilChanged(foo))
  33. * ```
  34. *
  35. * @param source The source emitter.
  36. * @param comparator optional custom comparison function for the two values.
  37. *
  38. * @typeParam T the type of the value emitted by the source.
  39. *
  40. * @returns the resulting emitter.
  41. */
  42. export declare function duc<T>(source: Emitter<T>, comparator?: Comparator<T>): Emitter<T>;
  43. /**
  44. * Creates an emitter with the latest values from all passed emitters as an array.
  45. *
  46. * `combineLatest` acts as a Depot. Using it on stateless streams persists the last emitted value of each [[Emitter]].
  47. * Provided that all emitters have emitted at least once, subscribing to the resulting emitter will immediately receive their combined latest values.
  48. *
  49. * ```ts
  50. * const foo = stream<number>()
  51. * const bar = stream<number>()
  52. *
  53. * subscribe(combineLatest(foo, bar), ([foo, bar]) => console.log({ foo, bar }))
  54. *
  55. * publish(foo, 42)
  56. * publish(bar, 43) // { foo: 42, bar: 43 }
  57. * publish(foo, 44) // { foo: 44, bar: 43 }
  58. * publish(bar, 45) // { foo: 44, bar: 45 }
  59. * ```
  60. */
  61. export declare function combineLatest<O1, O2>(...emitters: [Emitter<O1>, Emitter<O2>]): Emitter<[O1, O2]>;
  62. export declare function combineLatest<O1, O2, O3>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>]): Emitter<[O1, O2, O3]>;
  63. export declare function combineLatest<O1, O2, O3, O4>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>]): Emitter<[O1, O2, O3, O4]>;
  64. export declare function combineLatest<O1, O2, O3>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>]): Emitter<[O1, O2, O3]>;
  65. export declare function combineLatest<O1, O2, O3, O4, O5>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>]): Emitter<[O1, O2, O3, O4, O5]>;
  66. export declare function combineLatest<O1, O2, O3, O4, O5, O6>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>, Emitter<O6>]): Emitter<[O1, O2, O3, O4, O5, O6]>;
  67. export declare function combineLatest<O1, O2, O3, O4, O5, O6, O7>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>, Emitter<O6>, Emitter<O7>]): Emitter<[O1, O2, O3, O4, O5, O6, O7]>;
  68. export declare function combineLatest<O1, O2, O3, O4, O5, O6, O7, O8>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>, Emitter<O6>, Emitter<O7>, Emitter<O8>]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8]>;
  69. export declare function combineLatest<O1, O2, O3, O4, O5, O6, O7, O8, O9>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>, Emitter<O6>, Emitter<O7>, Emitter<O8>, Emitter<O9>]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8, O9]>;
  70. export declare function combineLatest<O1, O2, O3, O4, O5, O6, O7, O8, O9, O10>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>, Emitter<O6>, Emitter<O7>, Emitter<O8>, Emitter<O9>, Emitter<O10>]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8, O9, O10]>;
  71. export declare function combineLatest<O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11>(...emitters: [Emitter<O1>, Emitter<O2>, Emitter<O3>, Emitter<O4>, Emitter<O5>, Emitter<O6>, Emitter<O7>, Emitter<O8>, Emitter<O9>, Emitter<O10>, Emitter<O11>]): Emitter<[O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11]>;