File tree Expand file tree Collapse file tree 2 files changed +23
-2
lines changed
Expand file tree Collapse file tree 2 files changed +23
-2
lines changed Original file line number Diff line number Diff line change 11const flatfile = require ( 'flat-file-db' )
22const promisify = require ( 'then-flat-file-db' )
33const escapeRegexp = require ( 'escape-regex' )
4+ const Observable = require ( "zen-observable" )
45
56const db = promisify ( flatfile . sync ( process . env . DB_NAME || 'views.db' ) )
67
@@ -9,8 +10,24 @@ const keyRegex = (str) => {
910 return new RegExp ( '^' + str . replace ( '*' , '.*' ) )
1011}
1112
13+
14+ let handlers = [ ] ;
15+
16+ const observable = new Observable ( ( observer ) => {
17+ handlers . push ( ( data ) => observer . next ( data ) )
18+ let index = handlers . length ;
19+ return ( ) => {
20+ handlers = [ ...handlers . slice ( 0 , index ) , ...handlers . slice ( index ) ]
21+ }
22+ } ) ;
23+
1224module . exports = {
13- put : db . put . bind ( db ) ,
25+ put : ( key , value ) => {
26+ db . put ( key , value )
27+ handlers . forEach ( handler => {
28+ handler ( { key, value} ) ;
29+ } )
30+ } ,
1431 has : ( key ) => Promise . resolve ( db . has ( key ) ) ,
1532 keys : ( ) => Promise . resolve ( db . keys ( ) ) ,
1633 // Get a value and filter it
@@ -44,5 +61,8 @@ module.exports = {
4461 await Promise . all ( keys )
4562
4663 return data
64+ } ,
65+ subscribe : ( cb ) => {
66+ return observable . subscribe ( cb ) ;
4767 }
4868}
Original file line number Diff line number Diff line change 2626 "dependencies" : {
2727 "escape-regex" : " ^1.0.7" ,
2828 "flat-file-db" : " ^1.0.0" ,
29- "then-flat-file-db" : " ^1.0.0"
29+ "then-flat-file-db" : " ^1.0.0" ,
30+ "zen-observable" : " ^0.4.0"
3031 },
3132 "peerDependencies" : {
3233 "micro-analytics-cli" : " ^1.2.0"
You can’t perform that action at this time.
0 commit comments