X Tutup
Skip to content

Commit cb24c17

Browse files
authored
Fix incorrect require searching pattern (#1151)
1 parent f5b8c01 commit cb24c17

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

src/transpilation/resolve.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ function isBuildModeLibrary(program: ts.Program) {
293293
function findRequiredPaths(code: string): string[] {
294294
// Find all require("<path>") paths in a lua code string
295295
const paths: string[] = [];
296-
const pattern = /(^|\s|;|=)require\("(.+)"\)/g;
296+
const pattern = /(^|\s|;|=)require\("(.+?)"\)/g;
297297
// eslint-disable-next-line @typescript-eslint/ban-types
298298
let match: RegExpExecArray | null;
299299
while ((match = pattern.exec(code))) {

test/transpile/module-resolution.spec.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,3 +503,16 @@ test("includes lualib_bundle when external lua requests it", () => {
503503
foo: ["foo", "bar"],
504504
});
505505
});
506+
507+
// https://github.com/TypeScriptToLua/TypeScriptToLua/issues/1146
508+
test("require matches correct pattern", () => {
509+
util.testModule`
510+
declare function require(this: void, module: string): any;
511+
export const addResult = require("a").foo + require("b").foo;
512+
export const callResult = require("c")("foo");
513+
`
514+
.addExtraFile("a.lua", "return { foo = 3 }")
515+
.addExtraFile("b.lua", "return { foo = 5 }")
516+
.addExtraFile("c.lua", "return function(self, a) return a end")
517+
.expectToEqual({ addResult: 3 + 5, callResult: "foo" });
518+
});

0 commit comments

Comments
 (0)
X Tutup