From 82796778e2c96189dd5161127aa4c0adc4364890 Mon Sep 17 00:00:00 2001 From: Tom <26638278+tomblind@users.noreply.github.com> Date: Fri, 12 Apr 2019 05:24:31 -0600 Subject: [PATCH 1/2] fixed commenting of inline sourcemaps and added test --- src/LuaPrinter.ts | 2 +- test/unit/sourcemaps.spec.ts | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/LuaPrinter.ts b/src/LuaPrinter.ts index f4a68dcdc..3d6af0049 100644 --- a/src/LuaPrinter.ts +++ b/src/LuaPrinter.ts @@ -83,7 +83,7 @@ export class LuaPrinter { const map = sourceMap.toString(); const base64Map = Buffer.from(map).toString('base64'); - return `//# sourceMappingURL=data:application/json;base64,${base64Map}\n`; + return `--# sourceMappingURL=data:application/json;base64,${base64Map}\n`; } private printStackTraceOverride(rootNode: SourceNode): string { diff --git a/test/unit/sourcemaps.spec.ts b/test/unit/sourcemaps.spec.ts index e8a374780..758d1316f 100644 --- a/test/unit/sourcemaps.spec.ts +++ b/test/unit/sourcemaps.spec.ts @@ -1,5 +1,5 @@ import * as util from "../util"; -import { LuaLibImportKind } from "../../src/CompilerOptions"; +import { LuaLibImportKind, CompilerOptions } from "../../src/CompilerOptions"; import { SourceMapConsumer, Position } from "source-map"; test.each([ @@ -109,6 +109,31 @@ test("sourceMapTraceback saves sourcemap in _G", () => { } }); +test("Inline sourcemaps", () => { + const typeScriptSource = ` + function abc() { + return def(); + } + function def() { + return "foo"; + } + return abc();`; + + const compilerOptions: CompilerOptions = { + inlineSourceMap: true + }; + + const { lua, sourceMap } = util.transpileStringResult(typeScriptSource, compilerOptions); + + const inlineSourceMapMatch = lua.match(/--# sourceMappingURL=data:application\/json;base64,([A-Za-z0-9+/=]+)/); + expect(inlineSourceMapMatch !== null && inlineSourceMapMatch !== undefined).toBe(true); + + const inlineSourceMap = Buffer.from(inlineSourceMapMatch[1], "base64").toString(); + expect(sourceMap).toBe(inlineSourceMap); + + expect(util.executeLua(lua)).toBe("foo"); +}); + // Helper functions function lineAndColumnOf(text: string, pattern: string): Position { From b2f7fbd680fe17015a126684c99b1a4a0283d0e6 Mon Sep 17 00:00:00 2001 From: Tom <26638278+tomblind@users.noreply.github.com> Date: Fri, 12 Apr 2019 05:28:03 -0600 Subject: [PATCH 2/2] forgot to run prettier --- test/unit/sourcemaps.spec.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/unit/sourcemaps.spec.ts b/test/unit/sourcemaps.spec.ts index 758d1316f..e6e6fe766 100644 --- a/test/unit/sourcemaps.spec.ts +++ b/test/unit/sourcemaps.spec.ts @@ -120,12 +120,14 @@ test("Inline sourcemaps", () => { return abc();`; const compilerOptions: CompilerOptions = { - inlineSourceMap: true + inlineSourceMap: true, }; const { lua, sourceMap } = util.transpileStringResult(typeScriptSource, compilerOptions); - const inlineSourceMapMatch = lua.match(/--# sourceMappingURL=data:application\/json;base64,([A-Za-z0-9+/=]+)/); + const inlineSourceMapMatch = lua.match( + /--# sourceMappingURL=data:application\/json;base64,([A-Za-z0-9+/=]+)/, + ); expect(inlineSourceMapMatch !== null && inlineSourceMapMatch !== undefined).toBe(true); const inlineSourceMap = Buffer.from(inlineSourceMapMatch[1], "base64").toString();