@@ -4,45 +4,54 @@ import Config from './app.config.js'
44import request from 'axios'
55import localforage from 'localforage'
66
7- request . defaults . baseURL = Config . wpDomain
7+ // request.defaults.baseURL = Config.wpDomain
88
99const cacheService = {
1010 store : '' ,
1111 storeCacheTime : '' ,
1212 currentTime : '' ,
1313 isBrowser : false ,
14+ networkRequest : ( path , cacheTime , resolve , reject ) => {
15+ cacheService
16+ . networkFirstStrategy ( path , cacheTime )
17+ . then ( response => resolve ( response ) )
18+ . catch ( err => reject ( err ) )
19+ } ,
1420 networkFirstStrategy : ( path , cacheTime ) => {
1521 return new Promise ( ( resolve , reject ) => {
1622 request
1723 . get ( path )
1824 . then ( response => {
1925 // Response returned, cache it and return it
2026 if ( response . status === 200 ) {
21- if ( cacheService . isBrowser ) {
22- cacheService . storeCacheTime . setItem (
23- path ,
24- cacheService . currentTime + cacheTime
25- )
26- cacheService . store
27- . setItem ( path , {
28- data : response . data ,
29- headers : response . headers
30- } )
31- . then ( response => resolve ( response ) )
32- . catch ( err => reject ( err ) )
33- } else {
27+ if ( ! cacheService . isBrowser ) {
3428 resolve ( response )
29+ return
3530 }
36- } else {
37- if ( cacheService . isBrowser ) {
38- cacheService . store
39- . getItem ( path )
40- . then ( response => resolve ( response ) )
41- . catch ( err => reject ( err ) )
42- } else {
43- reject ( new Error ( 'Cannot get ' + path ) )
44- }
31+ cacheService . storeCacheTime . setItem (
32+ path ,
33+ cacheService . currentTime + cacheTime
34+ )
35+ cacheService . store
36+ . setItem ( path , {
37+ data : response . data ,
38+ headers : response . headers
39+ } )
40+ . then ( response => resolve ( response ) )
41+ . catch ( err => reject ( err ) )
42+
43+ return
44+ }
45+
46+ if ( ! cacheService . isBrowser ) {
47+ reject ( new Error ( 'Cannot get ' + path ) )
48+ return
4549 }
50+
51+ cacheService . store
52+ . getItem ( path )
53+ . then ( response => resolve ( response ) )
54+ . catch ( err => reject ( err ) )
4655 } )
4756 . catch ( error => {
4857 console . log ( error )
@@ -56,52 +65,42 @@ const cacheService = {
5665 . then ( function ( timeLastCached ) {
5766 // Cache has expired
5867 if ( timeLastCached < cacheService . currentTime ) {
59- cacheService
60- . networkFirstStrategy ( path , cacheTime )
61- . then ( response => {
68+ cacheService . networkRequest ( path , cacheTime , resolve , reject )
69+
70+ return
71+ }
72+
73+ cacheService . store
74+ . getItem ( path )
75+ . then ( response => {
76+ if ( response ) {
77+ // Is in cache perfect!
6278 resolve ( response )
63- } )
64- . catch ( err => reject ( err ) )
65- } else {
66- // Get item from cache
67- cacheService . store
68- . getItem ( path )
69- . then ( response => {
70- if ( response ) {
71- // Is in cache perfect!
72- resolve ( response )
73- } else {
74- // Doesn't exist in cache try network
75- cacheService
76- . networkFirstStrategy ( path , cacheTime )
77- . then ( response => resolve ( response ) )
78- . catch ( err => reject ( err ) )
79- }
80- } )
81- . catch ( error => {
82- console . log ( error )
79+ } else {
8380 // Doesn't exist in cache try network
84- cacheService
85- . networkFirstStrategy ( path , cacheTime )
86- . then ( response => resolve ( response ) )
87- . catch ( err => reject ( err ) )
88- } )
89- }
81+ cacheService . networkRequest ( path , cacheTime , resolve , reject )
82+ }
83+ } )
84+ . catch ( error => {
85+ console . log ( error )
86+ // Doesn't exist in cache try network
87+ cacheService . networkRequest ( path , cacheTime , resolve , reject )
88+ } )
9089 } )
9190 . catch ( error => {
9291 console . log ( error )
9392 // Doesn't exist in cache timeouts try network
94- cacheService
95- . networkFirstStrategy ( path , cacheTime )
96- . then ( response => resolve ( response ) )
97- . catch ( err => reject ( err ) )
93+ cacheService . networkRequest ( path , cacheTime , resolve , reject )
9894 } )
9995 } )
10096 } ,
10197 get : function ( path , cacheTime ) {
98+ // path = Config.wpDomain + path
99+
102100 return new Promise ( ( resolve , reject ) => {
103101 cacheService . currentTime = Math . floor ( Date . now ( ) / 1000 )
104102 cacheService . isBrowser = typeof window !== 'undefined'
103+
105104 if ( cacheService . isBrowser ) {
106105 cacheService . store = localforage . createInstance ( {
107106 name : Config . loadDbName
@@ -110,15 +109,12 @@ const cacheService = {
110109 name : Config . loadDbName + '_cacheTime'
111110 } )
112111 }
112+
113113 if ( ! cacheTime || cacheTime === 0 ) {
114114 cacheService
115115 . networkFirstStrategy ( path , 0 )
116116 . then ( response => {
117- if ( ! response ) {
118- resolve ( '' )
119- } else {
120- resolve ( response )
121- }
117+ resolve ( response || '' )
122118 } )
123119 . catch ( err => {
124120 reject ( err )
@@ -127,11 +123,7 @@ const cacheService = {
127123 cacheService
128124 . offlineFirstStrategy ( path , cacheTime )
129125 . then ( response => {
130- if ( ! response ) {
131- resolve ( '' )
132- } else {
133- resolve ( response )
134- }
126+ resolve ( response || '' )
135127 } )
136128 . catch ( err => reject ( err ) )
137129 }
0 commit comments