typescript-to-lua 1.3.1 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/LuaLib.d.ts +1 -0
- package/dist/LuaLib.js +1 -0
- package/dist/lualib/MathSign.lua +8 -0
- package/dist/lualib/lualib_bundle.lua +9 -0
- package/dist/transformation/builtins/math.js +7 -1
- package/dist/transformation/visitors/class/members/fields.js +12 -8
- package/dist/transpilation/resolve.js +2 -2
- package/package.json +1 -1
package/dist/LuaLib.d.ts
CHANGED
package/dist/LuaLib.js
CHANGED
|
@@ -46,6 +46,7 @@ var LuaLibFeature;
|
|
|
46
46
|
LuaLibFeature["Iterator"] = "Iterator";
|
|
47
47
|
LuaLibFeature["Map"] = "Map";
|
|
48
48
|
LuaLibFeature["MathAtan2"] = "MathAtan2";
|
|
49
|
+
LuaLibFeature["MathSign"] = "MathSign";
|
|
49
50
|
LuaLibFeature["New"] = "New";
|
|
50
51
|
LuaLibFeature["Number"] = "Number";
|
|
51
52
|
LuaLibFeature["NumberIsFinite"] = "NumberIsFinite";
|
|
@@ -1335,6 +1335,15 @@ Map = Map
|
|
|
1335
1335
|
|
|
1336
1336
|
__TS__MathAtan2 = math.atan2 or math.atan
|
|
1337
1337
|
|
|
1338
|
+
function __TS__MathSign(val)
|
|
1339
|
+
if val > 0 then
|
|
1340
|
+
return 1
|
|
1341
|
+
elseif val < 0 then
|
|
1342
|
+
return -1
|
|
1343
|
+
end
|
|
1344
|
+
return 0
|
|
1345
|
+
end
|
|
1346
|
+
|
|
1338
1347
|
function __TS__Number(value)
|
|
1339
1348
|
local valueType = type(value)
|
|
1340
1349
|
if valueType == "number" then
|
|
@@ -57,6 +57,10 @@ function transformMathCall(context, node) {
|
|
|
57
57
|
const add = lua.createBinaryExpression(one, params[0], lua.SyntaxKind.AdditionOperator);
|
|
58
58
|
return lua.createCallExpression(lua.createTableIndexExpression(math, log), [add], node);
|
|
59
59
|
}
|
|
60
|
+
case "pow": {
|
|
61
|
+
// Translate to base ^ power
|
|
62
|
+
return lua.createBinaryExpression(params[0], params[1], lua.SyntaxKind.PowerOperator, node);
|
|
63
|
+
}
|
|
60
64
|
// math.floor(x + 0.5)
|
|
61
65
|
case "round": {
|
|
62
66
|
const floor = lua.createStringLiteral("floor");
|
|
@@ -64,6 +68,9 @@ function transformMathCall(context, node) {
|
|
|
64
68
|
const add = lua.createBinaryExpression(params[0], half, lua.SyntaxKind.AdditionOperator);
|
|
65
69
|
return lua.createCallExpression(lua.createTableIndexExpression(math, floor), [add], node);
|
|
66
70
|
}
|
|
71
|
+
case "sign": {
|
|
72
|
+
return (0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.MathSign, node, ...params);
|
|
73
|
+
}
|
|
67
74
|
case "abs":
|
|
68
75
|
case "acos":
|
|
69
76
|
case "asin":
|
|
@@ -75,7 +82,6 @@ function transformMathCall(context, node) {
|
|
|
75
82
|
case "log":
|
|
76
83
|
case "max":
|
|
77
84
|
case "min":
|
|
78
|
-
case "pow":
|
|
79
85
|
case "random":
|
|
80
86
|
case "sin":
|
|
81
87
|
case "sqrt":
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.transformStaticPropertyDeclaration = exports.transformClassInstanceFields = exports.createPropertyDecoratingExpression = void 0;
|
|
4
4
|
const lua = require("../../../../LuaAST");
|
|
5
5
|
const lua_ast_1 = require("../../../utils/lua-ast");
|
|
6
|
+
const preceding_statements_1 = require("../../../utils/preceding-statements");
|
|
6
7
|
const literal_1 = require("../../literal");
|
|
7
8
|
const decorators_1 = require("../decorators");
|
|
8
9
|
const method_1 = require("./method");
|
|
@@ -17,14 +18,17 @@ exports.createPropertyDecoratingExpression = createPropertyDecoratingExpression;
|
|
|
17
18
|
function transformClassInstanceFields(context, instanceFields) {
|
|
18
19
|
const statements = [];
|
|
19
20
|
for (const f of instanceFields) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
const [precedingStatements, statement] = (0, preceding_statements_1.transformInPrecedingStatementScope)(context, () => {
|
|
22
|
+
// Get identifier
|
|
23
|
+
const fieldName = (0, literal_1.transformPropertyName)(context, f.name);
|
|
24
|
+
const value = f.initializer ? context.transformExpression(f.initializer) : undefined;
|
|
25
|
+
// self[fieldName]
|
|
26
|
+
const selfIndex = lua.createTableIndexExpression((0, lua_ast_1.createSelfIdentifier)(), fieldName);
|
|
27
|
+
// self[fieldName] = value
|
|
28
|
+
const assignClassField = lua.createAssignmentStatement(selfIndex, value, f);
|
|
29
|
+
return assignClassField;
|
|
30
|
+
});
|
|
31
|
+
statements.push(...precedingStatements, statement);
|
|
28
32
|
}
|
|
29
33
|
return statements;
|
|
30
34
|
}
|
|
@@ -135,14 +135,14 @@ function resolveFileDependencies(file, context) {
|
|
|
135
135
|
dependencies.push(...resolvedDependency.resolvedFiles);
|
|
136
136
|
diagnostics.push(...resolvedDependency.diagnostics);
|
|
137
137
|
}
|
|
138
|
-
return { resolvedFiles: dependencies, diagnostics };
|
|
138
|
+
return { resolvedFiles: deduplicateResolvedFiles(dependencies), diagnostics };
|
|
139
139
|
}
|
|
140
140
|
function resolveDependency(requiringFile, dependency, program, emitHost) {
|
|
141
141
|
var _a;
|
|
142
142
|
const options = program.getCompilerOptions();
|
|
143
143
|
const fileDirectory = path.dirname(requiringFile.fileName);
|
|
144
144
|
if (options.tstlVerbose) {
|
|
145
|
-
console.log(`Resolving "${dependency}" from ${(0, utils_1.normalizeSlashes)(
|
|
145
|
+
console.log(`Resolving "${dependency}" from ${(0, utils_1.normalizeSlashes)(requiringFile.fileName)}`);
|
|
146
146
|
}
|
|
147
147
|
// Check if the import is relative
|
|
148
148
|
const isRelative = ["/", "./", "../"].some(p => dependency.startsWith(p));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typescript-to-lua",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.4",
|
|
4
4
|
"description": "A generic TypeScript to Lua transpiler. Write your code in TypeScript and publish Lua!",
|
|
5
5
|
"repository": "https://github.com/TypeScriptToLua/TypeScriptToLua",
|
|
6
6
|
"homepage": "https://typescripttolua.github.io/",
|