Skip to content

Commit fa25e24

Browse files
committed
Remove transpileAndExecuteProjectReturningMainExport legacy util
1 parent 113cd29 commit fa25e24

2 files changed

Lines changed: 54 additions & 146 deletions

File tree

test/legacy-utils.ts

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import * as fs from "fs";
33
import * as path from "path";
44
import * as ts from "typescript";
55
import * as tstl from "../src";
6-
import { formatPathToLuaPath } from "../src/utils";
76

87
export function transpileString(
98
str: string | { [filename: string]: string },
@@ -99,54 +98,6 @@ export function transpileAndExecute(
9998
return executeLua(lua);
10099
}
101100

102-
function getExportPath(fileName: string, options: ts.CompilerOptions): string {
103-
const rootDir = options.rootDir ? path.resolve(options.rootDir) : path.resolve(".");
104-
105-
const absolutePath = path.resolve(fileName.replace(/.ts$/, ""));
106-
const absoluteRootDirPath = path.format(path.parse(rootDir));
107-
return formatPathToLuaPath(absolutePath.replace(absoluteRootDirPath, "").slice(1));
108-
}
109-
110-
export function transpileAndExecuteProjectReturningMainExport(
111-
typeScriptFiles: Record<string, string>,
112-
exportName: string,
113-
options: tstl.CompilerOptions = {}
114-
): [any, string] {
115-
const mainFile = Object.keys(typeScriptFiles).find(typeScriptFileName => typeScriptFileName === "main.ts");
116-
if (!mainFile) {
117-
throw new Error("An entry point file needs to be specified. This should be called main.ts");
118-
}
119-
120-
const joinedTranspiledFiles = Object.keys(typeScriptFiles)
121-
.filter(typeScriptFileName => typeScriptFileName !== "main.ts")
122-
.map(typeScriptFileName => {
123-
const modulePath = getExportPath(typeScriptFileName, options);
124-
const tsCode = typeScriptFiles[typeScriptFileName];
125-
const luaCode = transpileString(tsCode, options);
126-
return `package.preload["${modulePath}"] = function()
127-
${luaCode}
128-
end`;
129-
})
130-
.join("\n");
131-
132-
const luaCode = `return (function()
133-
${joinedTranspiledFiles}
134-
${transpileString(typeScriptFiles[mainFile])}
135-
end)().${exportName}`;
136-
137-
try {
138-
return [executeLua(luaCode), luaCode];
139-
} catch (err) {
140-
throw new Error(`
141-
Encountered an error when executing the following Lua code:
142-
143-
${luaCode}
144-
145-
${err}
146-
`);
147-
}
148-
}
149-
150101
export function transpileExecuteAndReturnExport(
151102
tsStr: string,
152103
returnExport: string,

test/unit/modules.spec.ts

Lines changed: 54 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as ts from "typescript";
2-
import * as util from "../../util";
2+
import * as util from "../util";
33

44
describe("module import/export elision", () => {
55
const moduleDeclaration = `
@@ -66,130 +66,87 @@ test.each(["ke-bab", "dollar$", "singlequote'", "hash#", "s p a c e", "ɥɣɎɌ
6666
);
6767

6868
test.each(["export default value;", "export { value as default };"])("Export Default From (%p)", exportStatement => {
69-
const [result] = util.transpileAndExecuteProjectReturningMainExport(
70-
{
71-
"main.ts": `
72-
export { default } from "./module";
73-
`,
74-
"module.ts": `
69+
util.testModule`
70+
export { default } from "./module";
71+
`
72+
.addExtraFile(
73+
"module.ts",
74+
`
7575
export const value = true;
7676
${exportStatement};
77-
`,
78-
},
79-
"default"
80-
);
81-
82-
expect(result).toBe(true);
77+
`
78+
)
79+
.expectToEqual({ default: true });
8380
});
8481

8582
test("Default Import and Export Expression", () => {
86-
const [result] = util.transpileAndExecuteProjectReturningMainExport(
87-
{
88-
"main.ts": `
89-
import defaultExport from "./module";
90-
export const value = defaultExport;
91-
`,
92-
"module.ts": `
93-
export default 1 + 2 + 3;
94-
`,
95-
},
96-
"value"
97-
);
98-
99-
expect(result).toBe(6);
83+
util.testModule`
84+
import defaultExport from "./module";
85+
export const value = defaultExport;
86+
`
87+
.addExtraFile("module.ts", "export default 1 + 2 + 3;")
88+
.expectToEqual({ value: 6 });
10089
});
10190

10291
test("Import and Export Assignment", () => {
103-
const [result] = util.transpileAndExecuteProjectReturningMainExport(
104-
{
105-
"main.ts": `
106-
import * as m from "./module";
107-
export const value = m;
108-
`,
109-
"module.ts": `
110-
export = true;
111-
`,
112-
},
113-
"value"
114-
);
115-
116-
expect(result).toBe(true);
92+
util.testModule`
93+
import * as m from "./module";
94+
export const value = m;
95+
`
96+
.addExtraFile("module.ts", "export = true;")
97+
.expectToEqual({ value: true });
11798
});
11899

119100
test("Mixed Exports, Default and Named Imports", () => {
120-
const [result] = util.transpileAndExecuteProjectReturningMainExport(
121-
{
122-
"main.ts": `
123-
import defaultExport, { a, b, c } from "./module";
124-
export const value = defaultExport + b + c;
125-
`,
126-
"module.ts": `
101+
util.testModule`
102+
import defaultExport, { a, b, c } from "./module";
103+
export const value = defaultExport + b + c;
104+
`
105+
.addExtraFile(
106+
"module.ts",
107+
`
127108
export const a = 1;
128109
export const b = 2;
129110
export const c = 3;
130111
export default a;
131-
`,
132-
},
133-
"value"
134-
);
135-
136-
expect(result).toBe(6);
112+
`
113+
)
114+
.expectToEqual({ value: 6 });
137115
});
138116

139117
test("Mixed Exports, Default and Namespace Import", () => {
140-
const [result] = util.transpileAndExecuteProjectReturningMainExport(
141-
{
142-
"main.ts": `
143-
import defaultExport, * as ns from "./module";
144-
export const value = defaultExport + ns.b + ns.c;
145-
`,
146-
"module.ts": `
118+
util.testModule`
119+
import defaultExport, * as ns from "./module";
120+
export const value = defaultExport + ns.b + ns.c;
121+
`
122+
.addExtraFile(
123+
"module.ts",
124+
`
147125
export const a = 1;
148126
export const b = 2;
149127
export const c = 3;
150128
export default a;
151-
`,
152-
},
153-
"value"
154-
);
155-
156-
expect(result).toBe(6);
129+
`
130+
)
131+
.expectToEqual({ value: 6 });
157132
});
158133

159134
test("Export Default Function", () => {
160-
const [result] = util.transpileAndExecuteProjectReturningMainExport(
161-
{
162-
"main.ts": `
163-
import defaultExport from "./module";
164-
export const value = defaultExport();
165-
`,
166-
"module.ts": `
167-
export default function() {
168-
return true;
169-
}
170-
`,
171-
},
172-
"value"
173-
);
174-
175-
expect(result).toBe(true);
135+
util.testModule`
136+
import defaultExport from "./module";
137+
export const value = defaultExport();
138+
`
139+
.addExtraFile("module.ts", "export default function() { return true; }")
140+
.expectToEqual({ value: true });
176141
});
177142

178143
test("Export Equals", () => {
179-
const [result] = util.transpileAndExecuteProjectReturningMainExport(
180-
{
181-
"main.ts": `
182-
import * as module from "./module";
183-
export const value = module;
184-
`,
185-
"module.ts": `
186-
export = true;
187-
`,
188-
},
189-
"value"
190-
);
191-
192-
expect(result).toBe(true);
144+
util.testModule`
145+
import * as module from "./module";
146+
export const value = module;
147+
`
148+
.addExtraFile("module.ts", "export = true;")
149+
.expectToEqual({ value: true });
193150
});
194151

195152
const reassignmentTestCases = [

0 commit comments

Comments
 (0)