@@ -18,7 +18,7 @@ use deno_tls::rustls::RootCertStore;
18
18
use deno_tls:: RootCertStoreProvider ;
19
19
use futures_util:: future:: poll_fn;
20
20
use log:: { error, trace} ;
21
- use once_cell:: sync:: OnceCell ;
21
+ use once_cell:: sync:: { Lazy , OnceCell } ;
22
22
use sb_core:: conn_sync:: ConnSync ;
23
23
use sb_core:: util:: sync:: AtomicFlag ;
24
24
use serde:: de:: DeserializeOwned ;
@@ -80,6 +80,14 @@ fn get_error_class_name(e: &AnyError) -> &'static str {
80
80
}
81
81
82
82
pub static MAYBE_DENO_VERSION : OnceCell < String > = OnceCell :: new ( ) ;
83
+ static SUPABASE_UA : Lazy < String > = Lazy :: new ( || {
84
+ let deno_version = MAYBE_DENO_VERSION . get ( ) . map ( |it| & * * it) . unwrap_or ( "1.0.0" ) ;
85
+ let supabase_version = option_env ! ( "GIT_V_TAG" ) . unwrap_or ( "0.1.0" ) ;
86
+ format ! (
87
+ "Deno/{} (variant; SupabaseEdgeRuntime/{})" ,
88
+ deno_version, supabase_version
89
+ )
90
+ } ) ;
83
91
84
92
pub struct DenoRuntime {
85
93
pub js_runtime : JsRuntime ,
@@ -108,7 +116,6 @@ impl DenoRuntime {
108
116
..
109
117
} = opts;
110
118
111
- let user_agent = "supabase-edge-runtime" . to_string ( ) ;
112
119
let base_dir_path = std:: env:: current_dir ( ) . map ( |p| p. join ( & service_path) ) ?;
113
120
let base_url = Url :: from_directory_path ( & base_dir_path) . unwrap ( ) ;
114
121
@@ -250,12 +257,12 @@ impl DenoRuntime {
250
257
deno_webgpu:: deno_webgpu:: init_ops( ) ,
251
258
deno_canvas:: deno_canvas:: init_ops( ) ,
252
259
deno_fetch:: deno_fetch:: init_ops:: <Permissions >( deno_fetch:: Options {
253
- user_agent: user_agent . clone( ) ,
260
+ user_agent: SUPABASE_UA . clone( ) ,
254
261
root_cert_store_provider: Some ( root_cert_store_provider. clone( ) ) ,
255
262
..Default :: default ( )
256
263
} ) ,
257
264
deno_websocket:: deno_websocket:: init_ops:: <Permissions >(
258
- user_agent ,
265
+ SUPABASE_UA . clone ( ) ,
259
266
Some ( root_cert_store_provider. clone( ) ) ,
260
267
None ,
261
268
) ,
0 commit comments