11.14.0 (2020-10-12)
11.13.0 (2020-09-07)
11.12.0 (2020-05-28)
- debounce: clear emit timer interval on stop (719bcd9), closes #296
- fromDiagram: save timers (f65f6b7)
- imitate: use null for unset this._target (baf37aa)
11.11.0 (2019-05-04)
- combine: add type signature for homogenous input streams (5ee4037), closes #270
- flatten: support TypeScript 3.4 (1325bbf), closes #278
11.10.0 (2019-01-15)
11.9.0 (2019-01-10)
- extras: fix inclusion of new operator flattenConcurrentlyAtMost (089e661)
11.8.0 (2019-01-10)
- dropUntil: align with rxjs skipUntil (0c0cf40), closes staltz/xstream#237
- debounce: emit pending value on completion (7ab4b17), closes staltz/xstream#257
- flattenConcurrentlyAtMost: add new extra (ef8ed44), closes staltz/xstream#161
11.7.0 (2018-06-23)
- fromEvent: Improve typings (1d265c9)
11.6.0 (2018-06-23)
- subscribe: allow partial listeners (in TypeScript) (8bfaad7)
11.5.0 (2018-06-22)
- types: do not use arrow syntax for _start (78272ef)
11.4.0 (2018-05-29)
11.3.0 (2018-05-18)
- fromObservable: use Symbol.observable to get observable (3a4271c)
- package: inline source maps and inline sources (b4abefd), closes #220
11.2.0 (2018-01-29)
11.1.0 (2017-12-12)
- package: add yarn.lock file to avoid ambiguities (d745aa6)
- package: lock symbol-observable to 1.0.4 (9de613a), closes #234 benlesh/symbol-observable#34
11.0.0 (2017-09-27)
- delay: simplify delay (extra operator) generics (a78ed05)
- extra: Simplify extra operator generics (20e2cc3), closes #202
- package: update TypeScript to v2.5 (7bd9d3b)
- types: update TypeScript to v2.4.x (65c70b8)
- types: if you use TypeScript, update carefully since TypeScript v2.4 is used in this version of xstream which might not support TypeScript v2.3 or lower. If you use JavaScript, there are zero breaking changes.
10.9.0 (2017-07-13)
10.8.0 (2017-05-12)
- buffer: fix semantics of buffer when source completes (3063ae9)
- extra: buffer operator that splits input stream into arrays by separator stream (6df1974)
10.7.0 (2017-05-02)
10.6.0 (2017-04-27)
10.5.0 (2017-04-07)
10.4.0 (2017-04-03)
10.3.0 (2017-03-03)
- combine: do array cloning to avoid several bugs (e8b2eef), closes /github.com/cyclejs/cyclejs/issues/537#issuecomment-283935639
- dist: use Google Closure Compiler instead of uglify-js (ed6f793)
10.2.0 (2017-02-03)
- fromObservable: avoid converting from xs stream to xs stream (04031c6)
- index: drop curly braces wherever possible (26d0299)
- Stream: speed up Stream next, error, complete handlers (b32ffe3)
10.1.0 (2017-01-31)
- flatten: fix type inference hinting (df6d720)
9.3.0 (2016-12-22)
- update benchmarks (b12065d)
- core: improve performance by encapsulating try/catch (31fab06)
- core: merge together core.ts and index.ts (a03e418)
10.0.0 (2016-12-21)
- src: usage of TypeScript v2.1 is a breaking change (c69327e)
- src: This version of xstream can only be used with TypeScript v2.1 or higher.
9.1.0 (2016-12-12)
- fromObservable: support synchronous unsubscribe on completion (e82b8da)
- src: update to TypeScript 2.1 (b3a0cf6)
9.0.0 (2016-11-28)
- flattenSequentially: stop execution of interrupted inner streams (b8d6995)
- stream: throw error when there are no error listeners (e512c3e), closes #121
- flattenSequentially: 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: 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)
- 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.
7.0.0 (2016-10-24)
- map: remove map+map fusion optimization (1ca6a5c), closes #98 #108 #93 #98 #108 #93
- MemoryStream: fix a leaking execution bug (47e67ff), closes #53
- 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)
6.5.0 (2016-10-17)
- delay,dropRepeats,dropUnti,split: improve TypeScript typings with better inference (c96ff10)
- throttle: add throttle extra operator (8b5c211)
6.4.1 (2016-09-28)
- debounce: improve TypeScript typings with better inference (7bbba73)
6.4.0 (2016-09-25)
- 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)
- sampleCombine: add sampleCombine extra (d3aceed), closes staltz/xstream#102
6.3.2 (2016-09-21)
- pairwise: support use of pairwise in synchronous recursive situations (530dc25)
6.3.1 (2016-09-20)
- merge: increase variadic type count to max 10 (2909a78)
6.3.0 (2016-09-15)
- core: fix observable producer (0229338)
- src: create Observable type for fromInput; export from index (42984ac)
- core: implement basic Observable interop. (8fe7069)
6.2.0 (2016-08-29)
6.1.0 (2016-08-22)
- Stream: add new method setDebugListener on streams (d0ee240)
6.0.0 (2016-08-20)
- 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)
5.3.5 (2016-08-17)
5.3.4 (2016-08-15)
5.3.3 (2016-08-15)
5.3.2 (2016-07-23)
5.3.1 (2016-07-22)
5.3.0 (2016-07-22)
- fromEvent: Aggregate multiple arguments (714dd01), closes staltz/xstream#84 #89
5.2.4 (2016-07-20)
5.2.3 (2016-07-20)
- merge: support union types (5327cb0), closes #82 staltz/xstream#80
5.2.2 (2016-07-19)
5.2.1 (2016-07-12)
- merge: fix completion and disposal (5bbcade), closes #76
- operators: improve resistence against disposal bugs (ff36fbd)
5.2.0 (2016-07-11)
- fromEvent: support NodeJS Event Emitters (c203801), closes #73 staltz/xstream#65
5.1.4 (2016-07-08)
5.1.3 (2016-07-06)
5.1.2 (2016-07-06)
- flatten: fix broken flatten on empty outer (8172ffe)
5.1.1 (2016-07-05)
- 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)
- extra: add new extra factory tween() (9ee12a7)
5.0.6 (2016-06-17)
- imitate: fix stack overflow when pruning cycles (02b0327)
5.0.5 (2016-06-14)
- imitate: fix against cyclic propagation of errors (1aa0549)
5.0.4 (2016-06-14)
5.0.3 (2016-06-13)
- imitate: fix imitate() isomorphism (d9970cc)
- dataflow: add dataflow perf benchmark (9b8730a)
5.0.2 (2016-06-12)
- imitate: fix cyclic execution leak, and refactor (8a432b6), closes #51 #49
- take: remove redundant stop() call (625fb3e)
- combine: change API for combine() operator (a2aa0a6)
- imitate: move imitate() from MimicStream to Stream (ad63372)
- 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)
- remember: fix remember() on producer-less streams (cbe806d)
4.0.2 (2016-06-08)
- Stream: fix small issue with private Stream members (61b5c12)
4.0.1 (2016-06-03)
- compose: improve compose type signature (38b1064)
4.0.0 (2016-06-03)
- core: remove instance combine() and merge() (00fc72c)
- 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)
- 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
- 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)
2.6.1 (2016-05-23)
2.6.0 (2016-05-21)
- debug: add support for label argument to debug() (9231851)
2.5.0 (2016-05-21)
- extra: add new extra factory fromDiagram (d6c4ae5)
2.4.3 (2016-05-16)
- extra: add safety check against nulls for next() etc (cf82a8b)
- debounce: improve debounce speed/rate (8bf7903)
2.4.2 (2016-05-13)
- flatten: fix map+flatten fusion to respect filter+map fusion (6520550)
2.4.1 (2016-05-13)
- 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)
- flatten: add ins field as metadata to flatten (cbc1f8b)
- extra: implement new extra operator: dropUntil (e06d502)
- extra: implement new extra operator: split (84742e8)
2.3.0 (2016-05-09)
- combine: fix combine() to export its Producer class (700a129)
- operators: add type metadata string to all operators/producers (a734fd4)
2.2.1 (2016-05-03)
2.2.0 (2016-05-02)
- combine: support zero streams args to combine() (1b3ca90)
2.1.4 (2016-05-02)
- combine: guard CombineListener against invalid out stream (74c6061)
- flatten: avoid cut() method in flattening (28afee9)
2.1.3 (2016-04-30)
2.1.2 (2016-04-30)
2.1.1 (2016-04-30)
2.1.0 (2016-04-30)
- flatten: fix TypeScript output type (26f2241), closes #4
- flattenConcurrently: fix TypeScript output type (b5445a5), closes #4
2.0.2 (2016-04-28)
- filter: fix filter fusion logic. (8c417f9)
- Stream: improve way of fixing ils array concurrency (accd2d0)
2.0.1 (2016-04-28)
- take: fix take() behavior when stopping (438fc0f)
2.0.0 (2016-04-27)
- package: put extra operators in xstream/extra (2735a74)
- 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)
- addListener: throw an error if next, error or complete functions are missing (b6e9df3)
1.1.0 (2016-04-26)
- 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)
- extra: implement new flattenSequentially() extra operator (4a6e63e)
1.0.1 (2016-04-22)
- 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)
- 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)
- 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)
- takeUntil: revert takeUntil implementation (6f62fc1)