View Issue Details

IDProjectCategoryView StatusLast Update
0004353Talerwallet (WebExtensions)public2016-11-20 03:26
ReporterFlorian DoldAssigned ToFlorian Dold 
PrioritynormalSeveritytweakReproducibilityN/A
Status closedResolutionfixed 
Product Version0.0 
Target Version0.2Fixed in Version0.2 
Summary0004353: Use RxJS instead of ad-hoc abstractions for event streams
DescriptionCurrently we use our own stream abstraction for things that come from the wallet's database, which can only be queried asynchronously.

Instead of using our own API for streams, we should use RxJS, which is widely used, comes with TypeScript typings and implements the helper functions we're currently implementing ourselves. These helper functions had bugs before, and are a pain to debug.

Another place where RxJS would be useful is the event handling for the UI. Currently we're doing e.g. debouncing of events in the mint selection dialog manually, using observables (which do provide a debounce function) would make that code much shorter and readable.
TagsNo tags attached.

Activities

Florian Dold

2016-09-26 19:07

manager   ~0011180

Right now it doesn't make sense to switch, also it's a really fat dependency. Our own, small abstractions are good for now.

Florian Dold

2016-10-17 23:57

manager   ~0011338

Our use is too specific to databases to use RxJS.

Alternatives to our own query mini-language would be Google's lovefield [1], but it's a very large dependency and doesn't support types very well out of the box.


[1] https://github.com/google/lovefield

Florian Dold

2016-10-17 23:58

manager   ~0011339

Resolving this for now, our UI code doesn't use any streams right now, once we really need this we can think about using a library like RxJS for it.

Issue History

Date Modified Username Field Change
2016-03-31 01:57 Florian Dold New Issue
2016-03-31 01:57 Florian Dold Status new => assigned
2016-03-31 01:57 Florian Dold Assigned To => Florian Dold
2016-04-14 00:57 Christian Grothoff Product Version => 0.0
2016-04-14 00:57 Christian Grothoff Target Version => 0.1
2016-09-26 19:07 Florian Dold Note Added: 0011180
2016-09-26 19:07 Florian Dold Target Version 0.1 => 0.2
2016-10-17 23:57 Florian Dold Note Added: 0011338
2016-10-17 23:58 Florian Dold Note Added: 0011339
2016-10-17 23:58 Florian Dold Status assigned => resolved
2016-10-17 23:58 Florian Dold Resolution open => fixed
2016-11-15 16:03 Christian Grothoff Fixed in Version => 0.2
2016-11-20 03:26 Christian Grothoff Status resolved => closed