Skip to content

Commit cc6f684

Browse files
authored
Fix dts_lexer: bufio.Scanner: token too long (#1139)
1 parent 8b0cd0d commit cc6f684

File tree

5 files changed

+18
-9
lines changed

5 files changed

+18
-9
lines changed

server/cjs_module_lexer.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,19 +98,26 @@ func cjsModuleLexer(b *BuildContext, cjsEntry string) (ret cjsModuleLexerResult,
9898
cmd := exec.Command(
9999
path.Join(config.WorkDir, "bin/deno"),
100100
"run",
101+
"--allow-env",
101102
"--no-prompt",
102103
"--no-config",
103104
"--no-lock",
104105
"--quiet",
105106
js)
106-
cmd.Env = append(os.Environ(), "DENO_NO_UPDATE_CHECK=1", "DENO_NO_PACKAGE_JSON=1")
107-
data, err = cmd.Output()
107+
cmd.Env = []string{"DENO_NO_UPDATE_CHECK=1"}
108+
data, err = cmd.CombinedOutput()
108109
if err != nil {
110+
msg := err.Error()
111+
if data != nil {
112+
msg = string(data)
113+
}
114+
err = errors.New("cjsModuleLexer(fallback mode): " + msg)
109115
return
110116
}
111117
var namedExports []string
112118
err = json.Unmarshal(data, &namedExports)
113119
if err != nil {
120+
err = errors.New("cjsModuleLexer(fallback mode): " + err.Error())
114121
return
115122
}
116123
for _, name := range namedExports {

server/dts_lexer.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ func parseDts(r io.Reader, w *bytes.Buffer, resolve func(specifier string, kind
4242
var multiLineComment bool
4343
var importOrExportDeclFound bool
4444
scanner := bufio.NewScanner(r)
45+
scanner.Buffer(nil, 1024*1024)
4546
for scanner.Scan() {
4647
line, trimedSpaces := trimSpace(scanner.Bytes())
4748
w.Write(trimedSpaces)
@@ -99,6 +100,7 @@ func parseDts(r io.Reader, w *bytes.Buffer, resolve func(specifier string, kind
99100
} else {
100101
var i int
101102
stmtScanner := bufio.NewScanner(bytes.NewReader(line))
103+
stmtScanner.Buffer(nil, 1024*1024)
102104
stmtScanner.Split(splitJSStmt)
103105
for stmtScanner.Scan() {
104106
if i > 0 {
@@ -205,7 +207,7 @@ func parseDts(r io.Reader, w *bytes.Buffer, resolve func(specifier string, kind
205207
func splitJSStmt(data []byte, atEOF bool) (advance int, token []byte, err error) {
206208
var commentScope bool
207209
var stringScope byte
208-
for i := 0; i < len(data); i++ {
210+
for i := range data {
209211
var prev, next byte
210212
if i > 0 {
211213
prev = data[i-1]

server/loader_implements.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"errors"
55
"fmt"
66
"net/url"
7-
"os"
87
"os/exec"
98
"path"
109
"strconv"
@@ -174,7 +173,7 @@ func resolveVueVersion(npmrc *NpmRC, importMap importmap.ImportMap) (vueVersion
174173
}
175174

176175
func generateUnoCSS(npmrc *NpmRC, configCSS string, content string) (out *LoaderOutput, err error) {
177-
loaderVersion := "0.5.0-beta.3"
176+
loaderVersion := "0.5.0"
178177
loaderExecPath := path.Join(config.WorkDir, "bin", "unocss-"+loaderVersion)
179178

180179
err = doOnce(loaderExecPath, func() (err error) {
@@ -282,14 +281,15 @@ func compileUnocssLoader(npmrc *NpmRC, loaderVersion string, loaderExecPath stri
282281
"--no-check",
283282
"--include=jsr:@std/tar/untar-stream",
284283
"--no-prompt",
284+
"--allow-env",
285285
"--allow-read="+config.WorkDir+"/cache",
286286
"--allow-write="+config.WorkDir+"/cache",
287287
"--allow-net=registry.npmjs.org,fonts.googleapis.com",
288288
"--quiet",
289289
"--output", loaderExecPath,
290290
path.Join(wd, "loader.js"),
291291
)
292-
cmd.Env = append(os.Environ(), "DENO_NO_UPDATE_CHECK=1", "DENO_NO_PACKAGE_JSON=1")
292+
cmd.Env = []string{"DENO_NO_UPDATE_CHECK=1"}
293293
_, err = cmd.Output()
294294
if err != nil {
295295
err = fmt.Errorf("failed to compile %s: %s", path.Base(loaderExecPath), err.Error())

server/router.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1635,8 +1635,8 @@ func esmRouter(db Database, buildStorage storage.Storage, logger *log.Logger) re
16351635
// then re-build the module
16361636
key := npmrc.zoneId + ":" + build.Path()
16371637
db.Delete(key)
1638-
cacheStore.Delete("lru:" + key)
1639-
return rex.Status(500, "Storage error")
1638+
cacheLRU.Remove(key)
1639+
return rex.Status(500, "Storage error, please try again")
16401640
}
16411641
return rex.Status(500, err.Error())
16421642
}

web/internal/loader.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ async function unocss(_id, content, config) {
143143
}
144144
let uno = once.unoGenerators.get(generatorId);
145145
if (!uno || uno.configCSS !== config?.css) {
146-
uno = import("npm:@esm.sh/unocss@0.5.0-beta.3").then(({ init }) => init({ configCSS: config?.css }));
146+
uno = import("npm:@esm.sh/unocss@0.5.0").then(({ init }) => init({ configCSS: config?.css }));
147147
uno.configCSS = config?.css;
148148
once.unoGenerators.set(generatorId, uno);
149149
}

0 commit comments

Comments
 (0)