@@ -42,6 +42,17 @@ function _keep (name, properties) {
4242 localStorage . setItem ( 'events' , JSON . stringify ( events ) )
4343}
4444
45+ function _keepUnique ( name , properties ) {
46+ let events = _fetch ( )
47+ properties . time = new Date ( )
48+ events = events . filter ( ( event ) => event . name !== name )
49+ events . push ( {
50+ name,
51+ properties
52+ } )
53+ localStorage . setItem ( 'events' , JSON . stringify ( events ) )
54+ }
55+
4556function _flush ( ) {
4657 let events = _fetch ( )
4758 let spliced = events . splice ( 0 , 50 )
@@ -79,10 +90,19 @@ function _flush () {
7990setInterval ( _flush , 1000 * 60 * 60 )
8091
8192function track ( name , properties ) {
82- properties = Object . assign ( { } , properties , {
83- distinct_id : _getClientKey ( )
84- } )
85- _keep ( name , properties )
93+ switch ( name ) {
94+ case 'MAIN_FOCUSED' :
95+ properties = Object . assign ( { } , properties , {
96+ distinct_id : _getClientKey ( )
97+ } )
98+ _keepUnique ( name , properties )
99+ break
100+ default :
101+ properties = Object . assign ( { } , properties , {
102+ distinct_id : _getClientKey ( )
103+ } )
104+ _keep ( name , properties )
105+ }
86106}
87107
88108module . exports = {
0 commit comments