@@ -6,7 +6,7 @@ use std::env;
66use rquickjs:: {
77 module:: { Declarations , Exports , ModuleDef } ,
88 prelude:: Func ,
9- Ctx , Result ,
9+ Ctx , Exception , Result ,
1010} ;
1111use rquickjs_extra_utils:: {
1212 module:: export_default,
@@ -23,6 +23,12 @@ mod unix;
2323#[ cfg( windows) ]
2424mod windows;
2525
26+ fn get_home_dir ( ctx : Ctx < ' _ > ) -> Result < String > {
27+ home:: home_dir ( )
28+ . map ( |val| val. to_string_lossy ( ) . into_owned ( ) )
29+ . ok_or_else ( || Exception :: throw_message ( & ctx, "Could not determine home directory" ) )
30+ }
31+
2632fn get_tmp_dir ( ) -> String {
2733 env:: temp_dir ( ) . to_string_lossy ( ) . to_string ( )
2834}
@@ -35,14 +41,15 @@ pub struct OsModule;
3541
3642impl ModuleDef for OsModule {
3743 fn declare ( declare : & Declarations ) -> Result < ( ) > {
38- declare. declare ( "type" ) ?;
44+ declare. declare ( "arch" ) ?;
45+ declare. declare ( "availableParallelism" ) ?;
46+ declare. declare ( "EOL" ) ?;
47+ declare. declare ( "platform" ) ?;
48+ declare. declare ( "homedir" ) ?;
3949 declare. declare ( "release" ) ?;
4050 declare. declare ( "tmpdir" ) ?;
41- declare. declare ( "platform " ) ?;
51+ declare. declare ( "type " ) ?;
4252 declare. declare ( "version" ) ?;
43- declare. declare ( "EOL" ) ?;
44- declare. declare ( "availableParallelism" ) ?;
45- declare. declare ( "arch" ) ?;
4653
4754 declare. declare ( "default" ) ?;
4855
@@ -51,17 +58,18 @@ impl ModuleDef for OsModule {
5158
5259 fn evaluate < ' js > ( ctx : & Ctx < ' js > , exports : & Exports < ' js > ) -> Result < ( ) > {
5360 export_default ( ctx, exports, |default| {
54- default. set ( "type" , Func :: from ( get_type) ) ?;
55- default. set ( "release" , Func :: from ( get_release) ) ?;
56- default. set ( "tmpdir" , Func :: from ( get_tmp_dir) ) ?;
57- default. set ( "platform" , Func :: from ( get_platform) ) ?;
58- default. set ( "version" , Func :: from ( get_version) ) ?;
59- default. set ( "EOL" , EOL ) ?;
61+ default. set ( "arch" , Func :: from ( get_arch) ) ?;
6062 default. set (
6163 "availableParallelism" ,
6264 Func :: from ( get_available_parallelism) ,
6365 ) ?;
64- default. set ( "arch" , Func :: from ( get_arch) ) ?;
66+ default. set ( "EOL" , EOL ) ?;
67+ default. set ( "homedir" , Func :: from ( get_home_dir) ) ?;
68+ default. set ( "platform" , Func :: from ( get_platform) ) ?;
69+ default. set ( "release" , Func :: from ( get_release) ) ?;
70+ default. set ( "tmpdir" , Func :: from ( get_tmp_dir) ) ?;
71+ default. set ( "type" , Func :: from ( get_type) ) ?;
72+ default. set ( "version" , Func :: from ( get_version) ) ?;
6573
6674 Ok ( ( ) )
6775 } )
0 commit comments