Permalink
c1cda32 Dec 22, 2016
928 lines (464 sloc) 35.3 KB

9.3.0 (2016-12-22)

Bug Fixes

  • take: terminate stream emission when TakeOperator recursively call itself (3581857)

Performance Improvements

  • update benchmarks (b12065d)
  • core: improve performance by encapsulating try/catch (31fab06)
  • core: merge together core.ts and index.ts (a03e418)

9.1.0 (2016-12-12)

Bug Fixes

  • fromObservable: support synchronous unsubscribe on completion (e82b8da)
  • src: update to TypeScript 2.1 (b3a0cf6)

9.0.0 (2016-11-28)

Bug Fixes

  • flattenSequentially: stop execution of interrupted inner streams (b8d6995)
  • stream: throw error when there are no error listeners (e512c3e), closes #121

BREAKING CHANGES

  • flattenSequentially: maybe won't This is likely a breaking change for people using flattenSequentially, specially given that xstream core was fixed so that errors are not swallowed. Most flattenSequentially code should still work, but upgrade carefully anyway.
  • stream: maybe
will This changes the behavior of most xstream code because errors are no longer swallowed. When you update xstream to this version, you may experience new errors thrown that you haven't seen before. Upgrade carefully, keeping in mind that these thrown errors were always there, but only now are surfaced.

8.0.0 (2016-11-17)

Bug Fixes

  • flattenSequentially: fix behaviour of outer stream completion (fd31d49)

BREAKING CHANGES

  • flattenSequentially: If your code was relying on buggy behavior, you may need to migrate carefully. Check your usages of flattenSequentially and how the outer stream completes. maybe
won't

ISSUES CLOSED: #141.

7.0.0 (2016-10-24)

Bug Fixes

  • map: remove map+map fusion optimization (1ca6a5c), closes #98 #108 #93
  • MemoryStream: fix a leaking execution bug (47e67ff), closes #53

BREAKING CHANGES

  • map: This change will remove map+map fusions. Your application code may or may not rely on the bugs that map+map fusion caused, so we advise to update carefully, testing your application code as you go. Generally this is very straightforward and safe to update, as there are no visible API changes.
  • MemoryStream: This is generally safe to update, but note that the behavior around MemoryStream, startWith, take, imitate etc may have slightly changed, so it is recommended to run tests on your application and see if it is working, in case your application code was relying on buggy behavior.

6.6.0 (2016-10-19)

Features

  • Stream: accept partially defined listeners (e9d005d)

6.5.0 (2016-10-17)

Bug Fixes

  • delay,dropRepeats,dropUnti,split: improve TypeScript typings with better inference (c96ff10)

Features

  • throttle: add throttle extra operator (8b5c211)

6.4.1 (2016-09-28)

Bug Fixes

  • debounce: improve TypeScript typings with better inference (7bbba73)

6.4.0 (2016-09-25)

Bug Fixes

  • combine: increase variadic type count to 10 (b4fb52d)
  • combine: tiny fixes and perf improvements (9090b59)
  • merge: correct typo in MergeSignature (7a7cd64)
  • sampleCombine: change API to fit compose() usage (38782d8)
  • sampleCombine: do not sample until all streams have emitted (9882e89)

Features

6.3.2 (2016-09-21)

Bug Fixes

  • pairwise: support use of pairwise in synchronous recursive situations (530dc25)

6.3.1 (2016-09-20)

Bug Fixes

  • merge: increase variadic type count to max 10 (2909a78)

6.3.0 (2016-09-15)

Bug Fixes

  • core: fix observable producer (0229338)
  • src: create Observable type for fromInput; export from index (42984ac)

Features

  • core: implement basic Observable interop. (8fe7069)

6.2.0 (2016-08-29)

Features

  • filter: support type guard predicates (34e529a)

6.1.0 (2016-08-22)

Features

  • Stream: add new method setDebugListener on streams (d0ee240)

6.0.0 (2016-08-20)

Bug Fixes

  • core: teardown and stop producer before complete/error (ec8d6e8), closes #91

BREAKING CHANGES

  • core: in this version, when a stream completes or errors, its producer has already been stopped. In previous versions, the stream first completes, propagates the complete to other listeners and operators, and then its producer is stopped. You may barely notice this breaking change when updating your code. Most existing code will still work like before.

5.3.6 (2016-08-17)

Bug Fixes

  • dropRepeats: fix usage with xs.combine (4b3d65c), closes #105

5.3.5 (2016-08-17)

Bug Fixes

  • take: fix behavior for take(0) (d965294), closes #107

5.3.4 (2016-08-15)

Bug Fixes

  • flatten: do not restart inner stream if equals the previous inner (9973eca), closes #103 #103

5.3.3 (2016-08-15)

Bug Fixes

  • dropRepeats: handle circular dependencies (38052da)

5.3.2 (2016-07-23)

Bug Fixes

  • flatten: when same inner stream, restart (819bc94), closes #90

5.3.1 (2016-07-22)

Bug Fixes

  • debug: support usage with no argument given (6cefc81), closes #87

5.3.0 (2016-07-22)

Features

5.2.4 (2016-07-20)

Bug Fixes

  • filter: consecutive filtering respects original order (fdbd00a), closes #85

5.2.3 (2016-07-20)

Bug Fixes

5.2.2 (2016-07-19)

Bug Fixes

  • remember: bypass on MemoryStream (34b8ddc)

5.2.1 (2016-07-12)

Bug Fixes

  • merge: fix completion and disposal (5bbcade)
  • operators: improve resistence against disposal bugs (ff36fbd)

5.2.0 (2016-07-11)

Features

  • fromEvent: support NodeJS Event Emitters (c203801)

5.1.4 (2016-07-08)

Bug Fixes

  • MemoryStream: fix teardown of MemoryStream to forget past executions (6bdf596), closes #71

5.1.3 (2016-07-06)

Bug Fixes

  • remember: remembers also explicitly sent events (1cdef65), closes #69

5.1.2 (2016-07-06)

Bug Fixes

  • flatten: fix broken flatten on empty outer (8172ffe)

5.1.1 (2016-07-05)

Bug Fixes

  • flatten: fix automatic removal of inner listeners (1c6ed5c), closes #68
  • fromDiagram: fix support for falsey values (85c9ca7)
  • imitate: fix issue #66 with imitate() (7aa3a04)

5.1.0 (2016-07-01)

Features

  • extra: add new extra factory tween() (9ee12a7)

5.0.6 (2016-06-17)

Bug Fixes

  • imitate: fix stack overflow when pruning cycles (02b0327)

5.0.5 (2016-06-14)

Bug Fixes

  • imitate: fix against cyclic propagation of errors (1aa0549)

5.0.4 (2016-06-14)

Bug Fixes

  • imitate: fix cyclic execution leaks (8658aa0), closes #51

5.0.3 (2016-06-13)

Bug Fixes

  • imitate: fix imitate() isomorphism (d9970cc)

Performance Improvements

  • dataflow: add dataflow perf benchmark (9b8730a)

5.0.2 (2016-06-12)

Bug Fixes

  • imitate: fix cyclic execution leak, and refactor (8a432b6), closes #51 #49
  • take: remove redundant stop() call (625fb3e)

Features

  • combine: change API for combine() operator (a2aa0a6)
  • imitate: move imitate() from MimicStream to Stream (ad63372)

BREAKING CHANGES

  • combine: combine() now takes only streams as argument, no more project function. combine() will return an stream that emits arrays of the collected values from each input stream. To transform that array, you should now use map() operator after combine(), to take the array of collected values and return a combination value. See tests for examples.
  • imitate: MimicStream and xs.createMimic() were removed entirely. The imitate() method now exists on every Stream instance. To use the proxy stream technique, use xs.create() to create the proxy, then call proxy.imitate(other).

4.0.4 (2016-06-09)

4.0.3 (2016-06-08)

Bug Fixes

  • remember: fix remember() on producer-less streams (cbe806d)

4.0.2 (2016-06-08)

Bug Fixes

  • Stream: fix small issue with private Stream members (61b5c12)

4.0.1 (2016-06-03)

Bug Fixes

  • compose: improve compose type signature (38b1064)

4.0.0 (2016-06-03)

Bug Fixes

  • core: remove instance combine() and merge() (00fc72c)

Features

  • core: improve signature of operators regarding types (#43) (116e9f2)

BREAKING CHANGES

  • core: Instance operators stream.combine() and stream.merge() removed. Use xs.combine() and xs.merge() instead.
  • core: debug() now returns a MemoryStream if the input was also a MemoryStream. endWhen() now returns a MemoryStream if the input was also a MemoryStream. fold() now returns always a MemoryStream, not Stream. imitate() only works on conventional Stream, will throw error on MemoryStream. map() now returns a MemoryStream if the input was also a MemoryStream. mapTo() now returns a MemoryStream if the input was also a MemoryStream. replaceError() now returns a MemoryStream if the input was also a MemoryStream. startWith() now returns always a MemoryStream, not Stream. take() now returns a MemoryStream if the input was also a MemoryStream.

3.0.0 (2016-06-02)

Bug Fixes

  • extra: change flattenSequentially and pairwise signatures (71df158)
  • extra: move flattenConcurrently from core to extra (7d0fc01)
  • imitate: fix imitate, should not add listener immediately (a6e39d2), closes #5 #5

BREAKING CHANGES

  • extra: Usage of flattenSequentially have changed, from compose(flattenSequentially()) to compose(flattenSequentially) and from compose(pairwise()) and compose(pairwise).
  • extra: flattenConcurrently must be separately imported as an extra operator and used with .compose()
  • imitate: imitate() method on Stream removed. New type introduced: MimicStream, which can be created through xs.createMimic(). A MimicStream has the method imitate(), which has the same API as before, but imitate does not trigger any Stream/Producer to start.

2.6.2 (2016-05-25)

Bug Fixes

  • debug: improve printing of objects from debug() (9cf630b), closes #38

2.6.1 (2016-05-23)

Bug Fixes

  • MemoryStream: fix tear down logic to reset memory (524d68e), closes #36

2.6.0 (2016-05-21)

Features

  • debug: add support for label argument to debug() (9231851)

2.5.0 (2016-05-21)

Features

  • extra: add new extra factory fromDiagram (d6c4ae5)

2.4.3 (2016-05-16)

Bug Fixes

  • extra: add safety check against nulls for next() etc (cf82a8b)

Performance Improvements

  • debounce: improve debounce speed/rate (8bf7903)

2.4.2 (2016-05-13)

Bug Fixes

  • flatten: fix map+flatten fusion to respect filter+map fusion (6520550)

2.4.1 (2016-05-13)

Bug Fixes

  • operators: add safety check against nulls for next() etc (5d433c3)
  • operators: improve type metadata for operators with fusion (fb1e81c)

2.4.0 (2016-05-12)

Bug Fixes

  • flatten: add ins field as metadata to flatten (cbc1f8b)

Features

  • extra: implement new extra operator: dropUntil (e06d502)
  • extra: implement new extra operator: split (84742e8)

2.3.0 (2016-05-09)

Bug Fixes

  • combine: fix combine() to export its Producer class (700a129)

Features

  • operators: add type metadata string to all operators/producers (a734fd4)

2.2.1 (2016-05-03)

Performance Improvements

  • combine: apply some perf optimizations to combine (ee4ec4c)

2.2.0 (2016-05-02)

Features

  • combine: support zero streams args to combine() (1b3ca90)

2.1.4 (2016-05-02)

Bug Fixes

  • combine: guard CombineListener against invalid out stream (74c6061)

Performance Improvements

  • flatten: avoid cut() method in flattening (28afee9)

2.1.3 (2016-04-30)

Bug Fixes

  • remember: return MemoryStream, not Stream (4f50922)

2.1.2 (2016-04-30)

Bug Fixes

  • combine: fix CombineFactorySignature (c65bd0b)

2.1.1 (2016-04-30)

Bug Fixes

  • remember: build safety against map+map fusion (079602c)

2.1.0 (2016-04-30)

Bug Fixes

  • flatten: fix TypeScript output type (26f2241), closes #4
  • flattenConcurrently: fix TypeScript output type (b5445a5), closes #4

Features

  • create: Throw an error if for incomplete producer (39c7c80)

2.0.2 (2016-04-28)

Bug Fixes

  • filter: fix filter fusion logic. (8c417f9)

Performance Improvements

  • Stream: improve way of fixing ils array concurrency (accd2d0)

2.0.1 (2016-04-28)

Bug Fixes

  • take: fix take() behavior when stopping (438fc0f)

2.0.0 (2016-04-27)

Bug Fixes

  • package: put extra operators in xstream/extra (2735a74)

BREAKING CHANGES

  • package: Import extra operators from xstream/extra/the-operator-you-want not from xstream/lib/extra/the-operator-you-want

1.1.1 (2016-04-27)

Features

  • addListener: throw an error if next, error or complete functions are missing (b6e9df3)

1.1.0 (2016-04-26)

Bug Fixes

  • core: export all operator classes (10ef8f3)
  • package: fix TS dependency on es6-promise, and bump (4c8adb8)
  • package.json: add typings field, bump to 1.0.4 (bffd84b)
  • typings: fix usage of ambient es6-promise (6b4ae8e)
  • typings: make es6-promise an ambient dep, and bump (49edd74)

Features

  • extra: implement new flattenSequentially() extra operator (4a6e63e)

1.0.1 (2016-04-22)

Bug Fixes

  • compose2: fix type signature errors (5c77ff9)
  • core: fix map type signature (133c400)
  • dropRepeats: move dropRepeats from core to extra (78851c8)
  • filterMap: properly catch errors that could be thrown (8ff48a5)
  • flattenConcurrently: fix inner management when optimization is off (da1f379)
  • fromArray: rename from() producer to fromArray() (05f519a)
  • fromEvent: rename static domEvent() to fromEvent() as extra (c481cc8)
  • MemoryStream: fix how MemoryStream handles late sync emissions (00de09d)
  • operator: add more tear down logic in _stop() in operators (2483107)
  • operator: fix all operators redirection of error/complete (2caa2ca)
  • package.json: no postinstall npm script anymore (4011aa1)
  • periodic: rename interval() factory to periodic() (6a2adc5)
  • src: make index be an import facade for core.ts (180f7c4)
  • Stream: fix unsubscription semantics w.r.t. restarting (9a0f3af)
  • Stream: stop the producer syncly after stream completes (faba7bf)
  • Stream: stop the producer syncly after the Stream errors (6c803ac)
  • Stream: use underscore for pseudo-private fields in Stream (95f2ebb)
  • take: fix take() operator, and also combine and merge (c5fdfc0)

Features

  • concat: implement extra concat() operator (7652011)
  • core: flatten and flattenConcurrently should optimize for FilterMapOperator (e1bebff)
  • core: implement filter + map fusion (b0507e6)
  • core: use filterMap fusion for map() + filter (a723fa4)
  • createWithMemory: rename xs.MemoryStream to xs.createWithMemory (c88d6c2)
  • debounce: implement debounce operator (7dfb709)
  • debounce: make debounce an extra operator (34fd6c1)
  • delay: implement extra operator delay() and compose() (48c5abc)
  • domEvent: implement domEvent stream constructor (ad40a08)
  • drop: rename skip() to drop() (cab26a9)
  • dropRepeats: implement core instance operator dropRepeats() (b7dccf9)
  • emptyObserver: makes emptyObserver noop functions instead of null (e1d2537)
  • endWhen: implement operator endWhen(), add tests (23099ef)
  • factory: add factory from() with FromMachine (e76acef)
  • factory: implement merge() with MergeProducer (42b6f12)
  • filterMap: implement all combinations of filter and map fusion (5eb5822)
  • flatten: implement flatten operator, a.k.a. switch() (6255e53)
  • flattenConcurrently: rename flatten to flattenConcurrently (b3a87ee)
  • fromPromise: implement factory fromPromise() (ad0ccfd)
  • imitate: implement imitate() operator for circular dependencies (6545670)
  • index: export new domEvent constructor (870fdc6)
  • mapTo: implement mapTo (f73bc8e)
  • MapTo: adjust to more private variables (a5ed5ab)
  • Observer: rename complete() callback to end() (d282684)
  • operator: implement combine(), both static and instance (f65a6a3)
  • operator: implement debug() operator with DebugMachine (e2a0342)
  • operator: implement filter operator with FilterMachine (a74f160)
  • operator: implement flatten() operator (4800873)
  • operator: implement fold operator with FoldMachine (57453f2)
  • operator: implement last() operator with LastMachine (747e255)
  • operator: implement map operator with MapMachine (76df500)
  • operator: implement skip operator with SkipMachine (32dd8ac)
  • operator: implement take operator with TakeMachine (6e1d0db)
  • pairwise: implement extra operator pairwise() (5b1ec51)
  • remember: implement RememeberProducer (7279ad8)
  • RememberOperator: adjust to work with MemoryStream (0898404)
  • replaceError: implement replaceError(), wrap code with try-catch (ffa5976)
  • shamefullySendNext: introduce shamefullySendNext and hide _next callback (552caff)
  • startWith: implement startWith operator (3489ce3)
  • Stream: add a concept of current value (cc5650f)
  • Stream: add debounce to Stream prototype (f44b819)
  • Stream: add mapTo to Stream prototype (58c83f9)
  • Stream: add never() and empty() stream factories (04f59b0)
  • Stream: implement really simply Stream and interval() factory (a3a08e7)
  • Stream: implement Stream (86d68ff)
  • Stream: implement xs.of() (f86fd49)
  • takeUntil: implement and test takeUntil() (304bed1)
  • throw: implement new static factory throw() (76879a5)

Performance Improvements

  • core: have FilterMapOperator extend MapOperator (e0c153a)
  • debug: improve performance of debug() operator, using Proxy class (9f766af)
  • filter-map-reduce: add preliminary perf micro benchmarks (8b1f2d3)
  • filter-map-reduce: improve filter-map-reduce test to actually do reduce() too (7ff9fd0)
  • fold: improve performance by using shorter names (8a25fe7)
  • from: improve from factory perf by renaming a var (a814c8a)
  • fromArray: rename/fix from() to fromArray() in perf benchmarks (a433dd5)
  • merge: add merge performance benchmark (de9f002)
  • operator: fix all operators to refer this.proxy initially to emptyObserver (ad210fc)
  • operator: replace operator proxies with class, improves perf (2e6ec27)
  • perf: fix xstream perf benchmark for merge() (4758a1d)
  • scan: add performance benchmark for fold (5d5ef94)
  • skip: improve skip perf by using Proxy Observer class (5233f43)
  • Stream: improve performance of Observer methods in Stream (465f22d)
  • Stream: remove this.num in Stream to improve perf (53bcaad)
  • Stream: squeeze kB size in map and filter fusion (23ac9d0)
  • Stream: tiny saving of lookups and source code size (6527129)
  • take: improve take() perf by using Proxy Observer class (6eae1a9)

Reverts

  • takeUntil: revert takeUntil implementation (6f62fc1)