{"repo":"haoliangyu/pg-reactive","free":true,"listed":false,"github":"https://github.com/haoliangyu/pg-reactive","clone":"git clone https://github.com/haoliangyu/pg-reactive.git","description":"PostgreSQL + RxJS = pg-reactive","language":"TypeScript","stars":41,"topics":["reactivex","postgresql","javascript","nodejs","rxjs","typescript"],"license":"MIT","category":"databases-storage","readme_excerpt":"pg-reactive RxJS interface for PostgreSQL in node.js Installation If you are using RxJS v5, install a previous version: Example Documentation latest (for RxJS 6+) v0.3.x (for RxJS 5) TypeScript pg-reactive is shipped with its type declaration file and it can be used in a TypeScript directly. How it works? Before using this library or reading its source code, you should know Reactive Programming & RxJS. pg-reactive wraps the low-level pg APIs and exposes a RxJS-compatible interface. The work of pg-reactive includes the following three aspects. Deferred Query Unlike Promise as the final state of an asynchronous action, Observable works as a data source of asynchronous actions. When providing a observable-based API, pg-reactive cools down the original pg functions by deferring their execution using Rx.Observable.defer(). In this way, the data stream is controllable with subscribe() / unsubscribe() without worrying data leak. The data stream is generated using the row , error , end event of the query object of pg , which ensures the query result is emitted by rows. Transaction as an Observable The tx() function of pg-reactive accepts a callback function where the user is able to organization the data flow within a transaction, which may includes different database operations. The data flow behind this function is actually query('BEGIN') - query('Your Command') - query('COMMIT') and a query('ROLLBACK') will be executed in cause of any error. Note that unlike the query observable, ","default_branch":null,"files":null,"tree":[],"storefront":"/r/haoliangyu","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/haoliangyu/pg-reactive/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}