From 7c3ab5984e45abdc6a32f05039a7f1102ac2d91f Mon Sep 17 00:00:00 2001 From: Nate Maninger Date: Fri, 22 Mar 2024 00:10:28 -0700 Subject: [PATCH] nextjs: fix handler overwrite --- internal/nextjs/nextjs.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/internal/nextjs/nextjs.go b/internal/nextjs/nextjs.go index 041816e6f..b7004710a 100644 --- a/internal/nextjs/nextjs.go +++ b/internal/nextjs/nextjs.go @@ -144,20 +144,21 @@ func traverse(fs fs.ReadDirFS, fp string, segments []string, parent *node) error name = "[]" } - var handler http.Handler - if !child.IsDir() { - handler = httpFileHandler(fs, childPath) - } - // files may share the same name as a directory, so we need to check if the node already exists childNode, ok := parent.sub[name] if !ok { childNode = node{ - h: handler, sub: make(map[string]node), } } + if !child.IsDir() { + if childNode.h != nil { + return fmt.Errorf("failed to add route %q: route already exists", childPath) + } + childNode.h = httpFileHandler(fs, childPath) + } + if child.IsDir() { if err := traverse(fs, childPath, append(segments, name), &childNode); err != nil { return err