diff --git a/server/dts_walker.go b/server/dts_walker.go index 695a1ed89..7a6e2cbc8 100644 --- a/server/dts_walker.go +++ b/server/dts_walker.go @@ -9,7 +9,7 @@ import ( ) var ( - regexpImportExportExpr = regexp.MustCompile(`^(import|export)\s*(type\s*)?('|"|\*|\{)`) + regexpImportExportExpr = regexp.MustCompile(`^(import|export)(\s+type)?\s*('|"|[a-zA-Z0-9_\$]+\s+from|\*|\{)`) regexpFromExpr = regexp.MustCompile(`(\}|\*|\s)from\s*('|")`) regexpImportPathExpr = regexp.MustCompile(`^import\s*('|")`) regexpImportCallExpr = regexp.MustCompile(`(import|require)\(('|").+?('|")\)`) diff --git a/test/issue-642/issue-642.test.ts b/test/issue-642/issue-642.test.ts new file mode 100644 index 000000000..a8ff5e717 --- /dev/null +++ b/test/issue-642/issue-642.test.ts @@ -0,0 +1,21 @@ +import { + assertEquals, + assertStringIncludes, +} from "https://deno.land/std@0.180.0/testing/asserts.ts"; + +const { version } = await fetch("http://localhost:8080/status.json").then( + (r) => r.json(), +); + +Deno.test("issue #642", async () => { + const res = await fetch( + `http://localhost:8080/v${version}/async-mutex@0.4.0/lib/Mutex.d.ts`, + { redirect: "manual" }, + ); + assertEquals(res.status, 200); + assertEquals( + res.headers.get("content-type")!, + "application/typescript; charset=utf-8", + ); + assertStringIncludes(await res.text(), "./MutexInterface.d.ts"); +});