@@ -41,12 +41,12 @@ extern "C" {
41
41
static SHELL_VERSION : Option < String > ;
42
42
#[ wasm_bindgen( catch, js_namespace = [ "self" ] ) ]
43
43
async fn get_location_hash ( ) -> Result < JsValue , JsValue > ;
44
- #[ wasm_bindgen( catch, js_namespace = [ "self" ] ) ]
45
- async fn local_storage_get_item ( key : String ) -> Result < JsValue , JsValue > ;
46
- #[ wasm_bindgen( catch, js_namespace = [ "self" ] ) ]
47
- async fn local_storage_set_item ( key : String , value : String ) -> Result < ( ) , JsValue > ;
48
- #[ wasm_bindgen( catch, js_namespace = [ "self" ] ) ]
49
- async fn local_storage_remove_item ( key : String ) -> Result < ( ) , JsValue > ;
44
+ // #[wasm_bindgen(catch, js_namespace = ["self"])]
45
+ // async fn local_storage_get_item(key: String) -> Result<JsValue, JsValue>;
46
+ // #[wasm_bindgen(catch, js_namespace = ["self"])]
47
+ // async fn local_storage_set_item(key: String, value: String) -> Result<(), JsValue>;
48
+ // #[wasm_bindgen(catch, js_namespace = ["self"])]
49
+ // async fn local_storage_remove_item(key: String) -> Result<(), JsValue>;
50
50
}
51
51
52
52
static INSTALLATION_ID : Lazy < RwLock < Option < String > > > = Lazy :: new ( Default :: default) ;
@@ -351,51 +351,76 @@ impl Env for WebEnv {
351
351
where
352
352
for < ' de > T : Deserialize < ' de > + ' static ,
353
353
{
354
- local_storage_get_item ( key. to_owned ( ) )
355
- . map_err ( |error| {
356
- EnvError :: StorageReadError (
357
- error
358
- . dyn_into :: < js_sys:: Error > ( )
359
- . map ( |error| String :: from ( error. message ( ) ) )
360
- . unwrap_or_else ( |_| UNKNOWN_ERROR . to_owned ( ) ) ,
361
- )
362
- } )
363
- . and_then ( |value| async move {
364
- value
365
- . as_string ( )
366
- . map ( |value| serde_json:: from_str ( & value) )
367
- . transpose ( )
368
- . map_err ( EnvError :: from)
369
- } )
370
- . boxed_local ( )
354
+ future:: ready (
355
+ web_sys:: window ( )
356
+ . unwrap ( )
357
+ . local_storage ( )
358
+ . unwrap ( )
359
+ . unwrap ( )
360
+ . get_item ( key)
361
+ // local_storage_get_item(key.to_owned())
362
+ . map_err ( |error| {
363
+ EnvError :: StorageReadError (
364
+ error
365
+ . dyn_into :: < js_sys:: Error > ( )
366
+ . map ( |error| String :: from ( error. message ( ) ) )
367
+ . unwrap_or_else ( |_| UNKNOWN_ERROR . to_owned ( ) ) ,
368
+ )
369
+ } )
370
+ . and_then ( |value| {
371
+ value
372
+ // .as_string()
373
+ . map ( |value| serde_json:: from_str ( & value) )
374
+ . transpose ( )
375
+ . map_err ( EnvError :: from)
376
+ } ) ,
377
+ )
378
+ . boxed_local ( )
371
379
}
372
380
373
381
fn set_storage < T : Serialize > ( key : & str , value : Option < & T > ) -> TryEnvFuture < ( ) > {
374
382
let key = key. to_owned ( ) ;
375
383
match value {
376
384
Some ( value) => future:: ready ( serde_json:: to_string ( value) )
377
385
. map_err ( EnvError :: from)
378
- . and_then ( |value| {
379
- local_storage_set_item ( key, value) . map_err ( |error| {
386
+ . and_then ( move |value| {
387
+ future:: ready (
388
+ web_sys:: window ( )
389
+ . unwrap ( )
390
+ . local_storage ( )
391
+ . unwrap ( )
392
+ . unwrap ( )
393
+ . set_item ( & key, & value)
394
+ // local_storage_set_item(key, value)
395
+ . map_err ( |error| {
396
+ EnvError :: StorageWriteError (
397
+ error
398
+ . dyn_into :: < js_sys:: Error > ( )
399
+ . map ( |error| String :: from ( error. message ( ) ) )
400
+ . unwrap_or_else ( |_| UNKNOWN_ERROR . to_owned ( ) ) ,
401
+ )
402
+ } ) ,
403
+ )
404
+ } )
405
+ . boxed_local ( ) ,
406
+ None => future:: ready (
407
+ web_sys:: window ( )
408
+ . unwrap ( )
409
+ . local_storage ( )
410
+ . unwrap ( )
411
+ . unwrap ( )
412
+ . delete ( & key)
413
+ // local_storage_remove_item(key)
414
+ . map_err ( |error| {
380
415
EnvError :: StorageWriteError (
381
416
error
382
417
. dyn_into :: < js_sys:: Error > ( )
383
418
. map ( |error| String :: from ( error. message ( ) ) )
384
419
. unwrap_or_else ( |_| UNKNOWN_ERROR . to_owned ( ) ) ,
385
420
)
386
- } )
387
- } )
388
- . boxed_local ( ) ,
389
- None => local_storage_remove_item ( key)
390
- . map_err ( |error| {
391
- EnvError :: StorageWriteError (
392
- error
393
- . dyn_into :: < js_sys:: Error > ( )
394
- . map ( |error| String :: from ( error. message ( ) ) )
395
- . unwrap_or_else ( |_| UNKNOWN_ERROR . to_owned ( ) ) ,
396
- )
397
- } )
398
- . boxed_local ( ) ,
421
+ } ) ,
422
+ )
423
+ . boxed_local ( ) ,
399
424
}
400
425
}
401
426
0 commit comments