@@ -9,10 +9,6 @@ var _header = require('utilise/header');
99
1010var _header2 = _interopRequireDefault ( _header ) ;
1111
12- var _client = require ( 'utilise/client' ) ;
13-
14- var _client2 = _interopRequireDefault ( _client ) ;
15-
1612var _values = require ( 'utilise/values' ) ;
1713
1814var _values2 = _interopRequireDefault ( _values ) ;
@@ -21,9 +17,9 @@ var _noop = require('utilise/noop');
2117
2218var _noop2 = _interopRequireDefault ( _noop ) ;
2319
24- var _key = require ( 'utilise/key ' ) ;
20+ var _keys = require ( 'utilise/keys ' ) ;
2521
26- var _key2 = _interopRequireDefault ( _key ) ;
22+ var _keys2 = _interopRequireDefault ( _keys ) ;
2723
2824var _not = require ( 'utilise/not' ) ;
2925
@@ -33,6 +29,10 @@ var _is = require('utilise/is');
3329
3430var _is2 = _interopRequireDefault ( _is ) ;
3531
32+ var _to = require ( 'utilise/to' ) ;
33+
34+ var _to2 = _interopRequireDefault ( _to ) ;
35+
3636/* istanbul ignore next */
3737function _interopRequireDefault ( obj ) { return obj && obj . __esModule ? obj : { default : obj } ; }
3838
@@ -43,21 +43,22 @@ function db(ripple) {
4343 /* istanbul ignore next */
4444var _ref = arguments . length <= 1 || arguments [ 1 ] === undefined ? { } : arguments [ 1 ] ;
4545
46- var db = _ref . db ;
46+ var _ref$db = _ref . db ;
47+ var db = _ref$db === undefined ? { } : _ref$db ;
4748
4849 log ( 'creating' ) ;
49- ripple . adaptors = ripple . adaptors || { } ;
50- ripple . connections = [ ] ;
5150 ripple . on ( 'change.db' , crud ( ripple ) ) ;
52- connection ( ripple ) ( db ) ;
51+ ripple . adaptors = ripple . adaptors || { } ;
52+ ripple . connections = ( 0 , _keys2 . default ) ( db ) . map ( function ( k ) {
53+ return connect ( ripple ) ( k , db [ k ] ) ;
54+ } ) . reduce ( _to2 . default . obj , { } ) ;
5355 return ripple ;
5456}
5557
56- var connection = function connection ( ripple ) {
57- return function ( config ) {
58- if ( ! config ) return ripple ;
58+ var connect = function connect ( ripple ) {
59+ return function ( id , config ) {
60+ if ( ! config ) return { id : id , invalid : err ( 'no connection string' , id ) } ;
5961
60- // TODO Use built-in url parse
6162 _is2 . default . str ( config ) && ( config = {
6263 type : ( config = config . split ( '://' ) ) . shift ( ) ,
6364 user : ( config = config . join ( '://' ) . split ( ':' ) ) . shift ( ) ,
@@ -67,13 +68,11 @@ var connection = function connection(ripple) {
6768 password : config . join ( '@' )
6869 } ) ;
6970
70- if ( ( 0 , _values2 . default ) ( config ) . some ( ( 0 , _not2 . default ) ( Boolean ) ) ) return err ( 'incorrect connection string' , config ) , ripple ;
71-
72- var con = ( ripple . adaptors [ config . type ] || _noop2 . default ) ( config ) ;
71+ if ( ( 0 , _values2 . default ) ( config ) . some ( ( 0 , _not2 . default ) ( Boolean ) ) ) return { id : id , invalid : err ( 'incorrect connection string' , id , config ) } ;
7372
74- con && ripple . connections . push ( con ) ;
73+ var connection = ( ripple . adaptors [ config . type ] || _noop2 . default ) ( config ) ;
7574
76- return ripple ;
75+ return connection ? ( connection . id = id , connection ) : { id : id , invalid : err ( 'invalid connection' , id ) } ;
7776 } ;
7877} ;
7978
@@ -89,17 +88,13 @@ var crud = function crud(ripple) {
8988 if ( ! ( 0 , _header2 . default ) ( 'content-type' , 'application/data' ) ( res ) ) return ;
9089 if ( ( 0 , _header2 . default ) ( 'silentdb' ) ( res ) ) return delete res . headers . silentdb ;
9190 if ( ! type ) return ;
92- log ( 'crud' , name , type ) ;
93-
94- ripple . connections . forEach ( function ( con ) {
95- return con [ type ] ( silent ( ripple ) ) ( res , key , value ) ;
91+ var updated = ( 0 , _values2 . default ) ( ripple . connections ) . filter ( function ( con ) {
92+ return con . change && con . change ( type ) ( res , change ) ;
93+ } ) . map ( function ( d ) {
94+ return d . id ;
9695 } ) ;
97- } ;
98- } ;
9996
100- var silent = function silent ( ripple ) {
101- return function ( res ) {
102- return ( 0 , _key2 . default ) ( 'headers.silentdb' , true ) ( res ) , ripple ( res ) ;
97+ if ( updated . length ) log ( 'crud' , type , name , updated . join ( ',' ) . grey ) ;
10398 } ;
10499} ;
105100
0 commit comments