@@ -19,9 +19,9 @@ const createDataProvider = () => {
19
19
const ssrContext : SSRContext | undefined = inject ( "ssrContext" ) ;
20
20
const url = ssrContext ?. url || new URL ( window . location ?. href ) ;
21
21
const defaultDataUrl = url . pathname + url . search ;
22
- const dataUrl : string = inject ( "dataUrl" ) || defaultDataUrl ;
22
+ const dataUrl : Ref < string > = inject ( "dataUrl" ) || ref ( defaultDataUrl ) ;
23
23
24
- const cached = dataCache ?. get ( dataUrl ) ;
24
+ const cached = dataCache ?. get ( dataUrl . value ) ;
25
25
26
26
if ( cached ) {
27
27
if ( cached . data instanceof Error ) {
@@ -89,8 +89,8 @@ const createDataProvider = () => {
89
89
if ( replace && res . ok ) {
90
90
try {
91
91
const data = await res . json ( ) ;
92
- const dataCacheTtl = dataCache . get ( dataUrl ) ?. dataCacheTtl ;
93
- dataCache . set ( dataUrl , { data, dataCacheTtl, dataExpires : Date . now ( ) + ( dataCacheTtl || 1 ) * 1000 } ) ;
92
+ const dataCacheTtl = dataCache . get ( dataUrl . value ) ?. dataCacheTtl ;
93
+ dataCache . set ( dataUrl . value , { data, dataCacheTtl, dataExpires : Date . now ( ) + ( dataCacheTtl || 1 ) * 1000 } ) ;
94
94
_data . value = data ;
95
95
} catch ( _ ) {
96
96
if ( optimistic ) {
@@ -112,7 +112,7 @@ const createDataProvider = () => {
112
112
console . log ( "reload" ) ;
113
113
114
114
try {
115
- const res = await fetch ( dataUrl , { headers : { "Accept" : "application/json" } , signal, redirect : "manual" } ) ;
115
+ const res = await fetch ( dataUrl . value , { headers : { "Accept" : "application/json" } , signal, redirect : "manual" } ) ;
116
116
if ( res . type === "opaqueredirect" ) {
117
117
throw new Error ( "opaque redirect" ) ;
118
118
}
@@ -124,34 +124,34 @@ const createDataProvider = () => {
124
124
const cc = res . headers . get ( "Cache-Control" ) ;
125
125
const dataCacheTtl = cc && cc . includes ( "max-age=" ) ? parseInt ( cc . split ( "max-age=" ) [ 1 ] ) : undefined ;
126
126
const dataExpires = Date . now ( ) + ( dataCacheTtl || 1 ) * 1000 ;
127
- dataCache . set ( dataUrl , { data, dataExpires } ) ;
127
+ dataCache . set ( dataUrl . value , { data, dataExpires } ) ;
128
128
_data . value = data ;
129
129
} catch ( _e ) {
130
130
throw new FetchError ( 500 , { } , "Data must be valid JSON" ) ;
131
131
}
132
132
} catch ( error ) {
133
- throw new Error ( `Failed to reload data for ${ dataUrl } : ${ error . message } ` ) ;
133
+ throw new Error ( `Failed to reload data for ${ dataUrl . value } : ${ error . message } ` ) ;
134
134
}
135
135
} ;
136
136
137
137
const mutation = {
138
138
post : ( data ?: unknown , update ?: UpdateStrategy ) => {
139
- return action ( "post" , send ( "post" , dataUrl , data ) , update ?? "none" ) ;
139
+ return action ( "post" , send ( "post" , dataUrl . value , data ) , update ?? "none" ) ;
140
140
} ,
141
141
put : ( data ?: unknown , update ?: UpdateStrategy ) => {
142
- return action ( "put" , send ( "put" , dataUrl , data ) , update ?? "none" ) ;
142
+ return action ( "put" , send ( "put" , dataUrl . value , data ) , update ?? "none" ) ;
143
143
} ,
144
144
patch : ( data ?: unknown , update ?: UpdateStrategy ) => {
145
- return action ( "patch" , send ( "patch" , dataUrl , data ) , update ?? "none" ) ;
145
+ return action ( "patch" , send ( "patch" , dataUrl . value , data ) , update ?? "none" ) ;
146
146
} ,
147
147
delete : ( data ?: unknown , update ?: UpdateStrategy ) => {
148
- return action ( "delete" , send ( "delete" , dataUrl , data ) , update ?? "none" ) ;
148
+ return action ( "delete" , send ( "delete" , dataUrl . value , data ) , update ?? "none" ) ;
149
149
} ,
150
150
} ;
151
151
152
- watch ( ( ) => dataUrl , ( ) => {
152
+ watch ( ( ) => dataUrl . value , ( ) => {
153
153
const now = Date . now ( ) ;
154
- const cache = dataCache . get ( dataUrl ) ;
154
+ const cache = dataCache . get ( dataUrl . value ) ;
155
155
let ac : AbortController | null = null ;
156
156
if ( cache === undefined || cache . dataExpires === undefined || cache . dataExpires < now ) {
157
157
ac = new AbortController ( ) ;
0 commit comments