@@ -10,8 +10,12 @@ import (
10
10
"path"
11
11
"strings"
12
12
"time"
13
+
14
+ "github.com/evanw/esbuild/pkg/api"
13
15
)
14
16
17
+ const cjsLexerPkg = "esm-cjs-lexer@0.10.0"
18
+
15
19
// allowlist for _invoke_ mode
16
20
var requireModeAllowList = []string {
17
21
"@babel/types" ,
@@ -39,14 +43,13 @@ var requireModeAllowList = []string{
39
43
}
40
44
41
45
func initCJSLexerNodeApp () (err error ) {
42
- wd := path .Join (cfg .WorkDir , "ns" )
46
+ wd := path .Join (cfg .WorkDir , "npm/" + cjsLexerPkg )
43
47
err = ensureDir (wd )
44
48
if err != nil {
45
49
return err
46
50
}
47
51
48
- // install dependencies
49
- cmd := exec .Command ("pnpm" , "i" , "enhanced-resolve@5.16.0" , "esm-cjs-lexer@0.10.0" )
52
+ cmd := exec .Command ("pnpm" , "add" , "--prefer-offline" , cjsLexerPkg )
50
53
cmd .Dir = wd
51
54
var output []byte
52
55
output , err = cmd .CombinedOutput ()
@@ -55,12 +58,17 @@ func initCJSLexerNodeApp() (err error) {
55
58
return
56
59
}
57
60
58
- // create cjs_lexer.js
59
61
js , err := embedFS .ReadFile ("server/embed/cjs_lexer.js" )
60
62
if err != nil {
61
- panic (err )
63
+ return
64
+ }
65
+
66
+ minJs , err := minify (string (js ), api .ESNext , api .LoaderJS )
67
+ if err != nil {
68
+ return
62
69
}
63
- err = os .WriteFile (path .Join (wd , "cjs_lexer.js" ), js , 0644 )
70
+
71
+ err = os .WriteFile (path .Join (wd , "cjs_lexer.js" ), minJs , 0644 )
64
72
return
65
73
}
66
74
@@ -72,10 +80,10 @@ type cjsLexerResult struct {
72
80
Stack string `json:"stack"`
73
81
}
74
82
75
- func cjsLexer (cwd string , specifier string , nodeEnv string ) (ret cjsLexerResult , err error ) {
83
+ func cjsLexer (wd string , specifier string , nodeEnv string ) (ret cjsLexerResult , err error ) {
76
84
start := time .Now ()
77
85
args := map [string ]interface {}{
78
- "cwd " : cwd ,
86
+ "wd " : wd ,
79
87
"specifier" : specifier ,
80
88
"nodeEnv" : nodeEnv ,
81
89
}
@@ -94,8 +102,14 @@ func cjsLexer(cwd string, specifier string, nodeEnv string) (ret cjsLexerResult,
94
102
var outBuf bytes.Buffer
95
103
var errBuf bytes.Buffer
96
104
97
- cmd := exec .CommandContext (ctx , "node" , "--experimental-permission" , "--allow-fs-read=*" , "cjs_lexer.js" )
98
- cmd .Dir = path .Join (cfg .WorkDir , "ns" )
105
+ cmd := exec .CommandContext (
106
+ ctx ,
107
+ "node" ,
108
+ "--experimental-permission" ,
109
+ "--allow-fs-read=" + cfg .WorkDir + "/npm/*" ,
110
+ "cjs_lexer.js" ,
111
+ )
112
+ cmd .Dir = path .Join (cfg .WorkDir , "npm/" + cjsLexerPkg )
99
113
cmd .Stdin = bytes .NewBuffer (mustEncodeJSON (args ))
100
114
cmd .Stdout = & outBuf
101
115
cmd .Stderr = & errBuf
0 commit comments