1
1
use indexmap:: IndexSet ;
2
2
use lexer:: CjsModuleLexer ;
3
3
use oxc_resolver:: { ResolveError , ResolveOptions , Resolver } ;
4
- use std:: io:: { self , BufRead , Write } ;
4
+ use std:: io:: { stdout , Write } ;
5
5
use std:: path:: Path ;
6
- use std:: { fs , path } ;
6
+ use std:: { env , fs } ;
7
7
8
8
fn main ( ) {
9
- let stdin = io:: stdin ( ) ;
10
- let mut stdout = io:: stdout ( ) ;
11
- let mut iterator = stdin. lock ( ) . lines ( ) ;
12
- let wd = iterator. next ( ) . expect ( "missing wd argument" ) . unwrap ( ) ;
13
- let pkg_name = iterator. next ( ) . expect ( "missing pkg_name argument" ) . unwrap ( ) ;
14
- let specifier = iterator. next ( ) . expect ( "missing specifier argument" ) . unwrap ( ) ;
15
- let node_env = iterator. next ( ) . unwrap_or ( Ok ( "production" . to_owned ( ) ) ) . unwrap ( ) ;
16
- let js_filename = resolve ( & wd, & pkg_name, & specifier, None ) . expect ( "failed to resolve specifier" ) ;
9
+ let mut stdout = stdout ( ) ;
10
+ let specifier = env:: args ( ) . skip ( 1 ) . next ( ) . expect ( "missing specifier argument" ) ;
11
+ let node_env = env:: var ( "NODE_ENV" ) . unwrap_or ( "production" . to_owned ( ) ) ;
12
+ let wd = env:: current_dir ( )
13
+ . expect ( "failed to get current working directory" )
14
+ . to_str ( )
15
+ . unwrap ( )
16
+ . to_owned ( ) ;
17
+ let js_filename = resolve ( & wd, & specifier, None ) . expect ( "failed to resolve specifier" ) ;
17
18
let mut requires = vec ! [ ( js_filename, false ) ] ;
18
19
let mut named_exports = IndexSet :: new ( ) ;
19
20
while requires. len ( ) > 0 {
@@ -25,7 +26,6 @@ fn main() {
25
26
let reexport = reexports[ 0 ] . clone ( ) ;
26
27
if !reexport. starts_with ( "." )
27
28
&& !reexport. starts_with ( "/" )
28
- && !reexport. starts_with ( ( pkg_name. to_owned ( ) + "/" ) . as_str ( ) )
29
29
&& !reexport. ends_with ( "()" )
30
30
&& !is_node_builtin_module ( & reexport)
31
31
{
@@ -47,7 +47,7 @@ fn main() {
47
47
} ;
48
48
if !is_node_builtin_module ( & reexport) {
49
49
requires. push ( (
50
- resolve ( & wd, & pkg_name , & reexport, Some ( js_filename. clone ( ) ) ) . expect ( "failed to resolve reexport" ) ,
50
+ resolve ( & wd, & reexport, Some ( js_filename. clone ( ) ) ) . expect ( "failed to resolve reexport" ) ,
51
51
call_mode,
52
52
) ) ;
53
53
}
@@ -60,12 +60,7 @@ fn main() {
60
60
}
61
61
}
62
62
63
- fn resolve (
64
- wd : & str ,
65
- pkg_name : & str ,
66
- specifier : & str ,
67
- containing_filename : Option < String > ,
68
- ) -> Result < String , ResolveError > {
63
+ fn resolve ( wd : & str , specifier : & str , containing_filename : Option < String > ) -> Result < String , ResolveError > {
69
64
if specifier. starts_with ( "/" ) || specifier. starts_with ( "file://" ) {
70
65
return Ok ( specifier. to_owned ( ) ) ;
71
66
}
@@ -79,17 +74,9 @@ fn resolve(
79
74
let ret = resolver. resolve ( containing_dir, specifier) ?;
80
75
return Ok ( ret. path ( ) . to_str ( ) . unwrap ( ) . to_owned ( ) ) ;
81
76
}
82
- if specifier. eq ( ".." ) || specifier . starts_with ( "../ " ) {
77
+ if specifier. starts_with ( "." ) {
83
78
return Err ( ResolveError :: NotFound ( specifier. to_owned ( ) ) ) ;
84
79
}
85
- if specifier. eq ( "." ) {
86
- let ret = resolver. resolve ( wd, pkg_name) ?;
87
- return Ok ( ret. path ( ) . to_str ( ) . unwrap ( ) . to_owned ( ) ) ;
88
- }
89
- if specifier. starts_with ( "./" ) {
90
- let ret = resolver. resolve ( wd, path:: Path :: new ( pkg_name) . join ( specifier) . to_str ( ) . unwrap ( ) ) ?;
91
- return Ok ( ret. path ( ) . to_str ( ) . unwrap ( ) . to_owned ( ) ) ;
92
- }
93
80
let ret = resolver. resolve ( wd, specifier) ?;
94
81
Ok ( ret. path ( ) . to_str ( ) . unwrap ( ) . to_owned ( ) )
95
82
}
0 commit comments