1+ const { filterViews, filterPaths } = require ( 'micro-analytics-adapter-utils' ) ;
12const Observable = require ( 'zen-observable' ) ;
23
34let data = { } ;
45let handlers = [ ] ;
56
6- const escapeRegexp = require ( 'escape-regex' ) ;
7-
8- const keyRegex = str => {
9- str = str . split ( '*' ) . map ( s => escapeRegexp ( s ) ) . join ( '*' ) ;
10- return new RegExp ( '^' + str . replace ( '*' , '.*' ) ) ;
11- } ;
12-
137const observable = new Observable ( observer => {
148 handlers . push ( data => observer . next ( data ) ) ;
159 let index = handlers . length ;
@@ -20,13 +14,7 @@ const observable = new Observable(observer => {
2014
2115function get ( key , options ) {
2216 const value = data [ key ] || { views : [ ] } ;
23- return Promise . resolve ( {
24- views : value . views . filter ( view => {
25- if ( options && options . before && view . time > options . before ) return false ;
26- if ( options && options . after && view . time < options . after ) return false ;
27- return true ;
28- } ) ,
29- } ) ;
17+ return Promise . resolve ( { views : filterViews ( value . views , options ) } ) ;
3018}
3119
3220function keys ( ) {
@@ -44,12 +32,7 @@ function put(key, value) {
4432
4533async function getAll ( options ) {
4634 const value = { } ;
47- const _keys = ( await keys ( ) ) . filter (
48- key =>
49- options . ignoreWildcard
50- ? key . startsWith ( options . pathname )
51- : key . match ( keyRegex ( options . pathname ) )
52- ) ;
35+ const _keys = filterPaths ( await keys ( ) , options ) ;
5336
5437 for ( let key of _keys ) {
5538 value [ key ] = await get ( key , {
0 commit comments