From a5418e16039776d37c90e0b17762aa8dc65f7828 Mon Sep 17 00:00:00 2001 From: hazzard993 Date: Sun, 11 Nov 2018 08:10:56 +1000 Subject: [PATCH 1/2] lualib inline omit header when no features are used --- src/Transpiler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Transpiler.ts b/src/Transpiler.ts index 48f697fcc..fd888576a 100644 --- a/src/Transpiler.ts +++ b/src/Transpiler.ts @@ -233,7 +233,7 @@ export abstract class LuaTranspiler { } // Inline lualib features - if (this.options.luaLibImport === LuaLibImportKind.Inline) { + if (this.options.luaLibImport === LuaLibImportKind.Inline && this.luaLibFeatureSet.size > 0) { result += "\n" + "-- Lua Library Imports\n"; for (const feature of this.luaLibFeatureSet) { const featureFile = path.resolve(__dirname, `../dist/lualib/${feature}.lua`); From 83a17941917aa7ea42271e43bc4c65c283f3d275 Mon Sep 17 00:00:00 2001 From: hazzard993 Date: Sun, 11 Nov 2018 08:19:16 +1000 Subject: [PATCH 2/2] Tests to enforce no lualib text when unused, unless using always --- test/unit/modules.spec.ts | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/test/unit/modules.spec.ts b/test/unit/modules.spec.ts index 62187e060..7d2509376 100644 --- a/test/unit/modules.spec.ts +++ b/test/unit/modules.spec.ts @@ -23,15 +23,6 @@ export class LuaModuleTests { Expect(lua.startsWith(`require("lualib_bundle")`)); } - @Test("lualibRequireNoUses") - public lualibRequireNoUses(): void { - // Transpile - const lua = util.transpileString(``, { luaLibImport: LuaLibImportKind.Require, luaTarget: LuaTarget.LuaJIT }); - - // Assert - Expect(lua).toBe(``); - } - @Test("lualibRequireAlways") public lualibRequireAlways(): void { // Transpile @@ -63,4 +54,16 @@ export class LuaModuleTests { Expect(result).toBe(3); } + + @TestCase(LuaLibImportKind.Inline) + @TestCase(LuaLibImportKind.None) + @TestCase(LuaLibImportKind.Require) + @Test("LuaLib no uses? No code") + public lualibNoUsesNoCode(impKind: LuaLibImportKind): void { + // Transpile + const lua = util.transpileString(``, { luaLibImport: impKind }); + + // Assert + Expect(lua).toBe(``); + } }