Skip to content

Commit 28cc8cd

Browse files
committed
style: refactor lualib resolution into common function
1 parent ced3532 commit 28cc8cd

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

src/LuaLib.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,16 @@ export interface LuaLibFeatureInfo {
112112
}
113113
export type LuaLibModulesInfo = Record<LuaLibFeature, LuaLibFeatureInfo>;
114114

115+
export function resolveLuaLibDir(luaTarget: LuaTarget) {
116+
const luaLibDir = luaTarget === LuaTarget.Lua50 ? "lualib-lua50" : "lualib";
117+
return path.resolve(__dirname, path.join("..", "dist", luaLibDir));
118+
}
119+
115120
export const luaLibModulesInfoFileName = "lualib_module_info.json";
116121
let luaLibModulesInfo: LuaLibModulesInfo | undefined;
117122
export function getLuaLibModulesInfo(luaTarget: LuaTarget, emitHost: EmitHost): LuaLibModulesInfo {
118123
if (luaLibModulesInfo === undefined) {
119-
const lualibDir = `../dist/${luaTarget === LuaTarget.Lua50 ? "lualib-lua50" : "lualib"}`;
120-
const lualibPath = path.resolve(__dirname, `${lualibDir}/${luaLibModulesInfoFileName}`);
124+
const lualibPath = path.join(resolveLuaLibDir(luaTarget), luaLibModulesInfoFileName);
121125
const result = emitHost.readFile(lualibPath);
122126
if (result !== undefined) {
123127
luaLibModulesInfo = JSON.parse(result) as LuaLibModulesInfo;
@@ -129,8 +133,7 @@ export function getLuaLibModulesInfo(luaTarget: LuaTarget, emitHost: EmitHost):
129133
}
130134

131135
export function readLuaLibFeature(feature: LuaLibFeature, luaTarget: LuaTarget, emitHost: EmitHost): string {
132-
const lualibDir = `../dist/${luaTarget === LuaTarget.Lua50 ? "lualib-lua50" : "lualib"}`;
133-
const featurePath = path.resolve(__dirname, `${lualibDir}/${feature}.lua`);
136+
const featurePath = path.join(resolveLuaLibDir(luaTarget), `${feature}.lua`);
134137
const luaLibFeature = emitHost.readFile(featurePath);
135138
if (luaLibFeature === undefined) {
136139
throw new Error(`Could not load lualib feature from '${featurePath}'`);
@@ -215,8 +218,7 @@ export function loadImportedLualibFeatures(
215218
let luaLibBundleContent: string;
216219
export function getLuaLibBundle(luaTarget: LuaTarget, emitHost: EmitHost): string {
217220
if (luaLibBundleContent === undefined) {
218-
const lualibDir = `../dist/${luaTarget === LuaTarget.Lua50 ? "lualib-lua50" : "lualib"}`;
219-
const lualibPath = path.resolve(__dirname, `${lualibDir}/lualib_bundle.lua`);
221+
const lualibPath = path.join(resolveLuaLibDir(luaTarget), "lualib_bundle.lua");
220222
const result = emitHost.readFile(lualibPath);
221223
if (result !== undefined) {
222224
luaLibBundleContent = result;

test/util.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ import * as ts from "typescript";
99
import * as vm from "vm";
1010
import * as tstl from "../src";
1111
import { createEmitOutputCollector } from "../src/transpilation/output-collector";
12-
import { EmitHost, getEmitOutDir, LuaTarget, transpileProject } from "../src";
12+
import { EmitHost, getEmitOutDir, transpileProject } from "../src";
1313
import { formatPathToLuaPath, normalizeSlashes } from "../src/utils";
14+
import { resolveLuaLibDir } from "../src/LuaLib";
1415

1516
function readLuaLib(target: tstl.LuaTarget) {
16-
const luaLibDir = `../dist/${target === LuaTarget.Lua50 ? "lualib-lua50" : "lualib"}`;
17-
return fs.readFileSync(path.resolve(__dirname, `${luaLibDir}/lualib_bundle.lua`), "utf8");
17+
return fs.readFileSync(path.join(resolveLuaLibDir(target), "lualib_bundle.lua"), "utf8");
1818
}
1919

2020
function jsonLib(target: tstl.LuaTarget): string {

0 commit comments

Comments
 (0)