Socket
Socket
Sign inDemoInstall

typescript-to-lua

Package Overview
Dependencies
Maintainers
2
Versions
156
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

typescript-to-lua - npm Package Compare versions

Comparing version 0.0.12 to 0.0.13

5

dist/Compiler.js

@@ -134,5 +134,4 @@ #!/usr/bin/env node

}
var validLuaTargets = ['JIT', '5.3', '5.2', '5.1'];
if (!validLuaTargets.some(function (val) { return val === argv.luaTarget; })) {
console.error("Invalid lua target valid targets are: " + validLuaTargets.toString());
if (!Transpiler_1.LuaTranspiler.AvailableLuaTargets.some(function (val) { return val === argv.luaTarget; })) {
console.error("Invalid lua target valid targets are: " + Transpiler_1.LuaTranspiler.AvailableLuaTargets.toString());
}

@@ -139,0 +138,0 @@ // Remove tstl options otherwise ts will emit an error

168

dist/Transpiler.js

@@ -27,2 +27,7 @@ "use strict";

exports.TranspileError = TranspileError;
var Target;
(function (Target) {
Target["Lua53"] = "5.3";
Target["LuaJIT"] = "JIT";
})(Target = exports.Target || (exports.Target = {}));
var LuaTranspiler = /** @class */ (function () {

@@ -464,62 +469,89 @@ function LuaTranspiler(checker, options, sourceFile) {

var result = "";
switch (node.operatorToken.kind) {
case ts.SyntaxKind.PlusEqualsToken:
result = lhs + "=" + lhs + "+" + rhs;
break;
case ts.SyntaxKind.MinusEqualsToken:
result = lhs + "=" + lhs + "-" + rhs;
break;
case ts.SyntaxKind.AsteriskEqualsToken:
result = lhs + "=" + lhs + "*" + rhs;
break;
case ts.SyntaxKind.SlashEqualsToken:
result = lhs + "=" + lhs + "/" + rhs;
break;
case ts.SyntaxKind.AmpersandAmpersandToken:
result = lhs + " and " + rhs;
break;
case ts.SyntaxKind.BarBarToken:
result = lhs + " or " + rhs;
break;
case ts.SyntaxKind.AmpersandToken:
result = "bit.band(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.AmpersandEqualsToken:
result = lhs + "=bit.band(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.BarToken:
result = "bit.bor(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.BarEqualsToken:
result = lhs + "=bit.bor(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.LessThanLessThanToken:
result = "bit.lshift(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.LessThanLessThanEqualsToken:
result = lhs + "=bit.lshift(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.GreaterThanGreaterThanToken:
result = "bit.arshift(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.GreaterThanGreaterThanEqualsToken:
result = lhs + "=bit.arshift(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.GreaterThanGreaterThanGreaterThanToken:
result = "bit.rshift(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken:
result = lhs + "=bit.rshift(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.PlusToken:
// Replace string + with ..
var typeLeft = this.checker.getTypeAtLocation(node.left);
var typeRight = this.checker.getTypeAtLocation(node.right);
if (typeLeft.flags & ts.TypeFlags.String || ts.isStringLiteral(node.left))
return lhs + ".." + rhs;
if (typeRight.flags & ts.TypeFlags.String || ts.isStringLiteral(node.right))
return lhs + ".." + rhs;
default:
result = lhs + this.transpileOperator(node.operatorToken) + rhs;
// Transpile Bitops
if (this.options.luaTarget === Target.LuaJIT) {
switch (node.operatorToken.kind) {
case ts.SyntaxKind.AmpersandToken:
result = "bit.band(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.AmpersandEqualsToken:
result = lhs + "=bit.band(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.BarToken:
result = "bit.bor(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.BarEqualsToken:
result = lhs + "=bit.bor(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.LessThanLessThanToken:
result = "bit.lshift(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.LessThanLessThanEqualsToken:
result = lhs + "=bit.lshift(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.GreaterThanGreaterThanToken:
result = "bit.arshift(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.GreaterThanGreaterThanEqualsToken:
result = lhs + "=bit.arshift(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.GreaterThanGreaterThanGreaterThanToken:
result = "bit.rshift(" + lhs + "," + rhs + ")";
break;
case ts.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken:
result = lhs + "=bit.rshift(" + lhs + "," + rhs + ")";
break;
}
}
else {
switch (node.operatorToken.kind) {
case ts.SyntaxKind.AmpersandEqualsToken:
result = lhs + "=" + lhs + "&" + rhs;
break;
case ts.SyntaxKind.BarEqualsToken:
result = lhs + "=" + lhs + "|" + rhs;
break;
case ts.SyntaxKind.LessThanLessThanEqualsToken:
result = lhs + "=" + lhs + "<<" + rhs;
break;
case ts.SyntaxKind.GreaterThanGreaterThanEqualsToken:
result = lhs + "=" + lhs + ">>" + rhs;
break;
case ts.SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken:
result = lhs + "=" + lhs + ">>>" + rhs;
break;
}
}
// Transpile operators
if (result === "") {
switch (node.operatorToken.kind) {
case ts.SyntaxKind.PlusEqualsToken:
result = lhs + "=" + lhs + "+" + rhs;
break;
case ts.SyntaxKind.MinusEqualsToken:
result = lhs + "=" + lhs + "-" + rhs;
break;
case ts.SyntaxKind.AsteriskEqualsToken:
result = lhs + "=" + lhs + "*" + rhs;
break;
case ts.SyntaxKind.SlashEqualsToken:
result = lhs + "=" + lhs + "/" + rhs;
break;
case ts.SyntaxKind.AmpersandAmpersandToken:
result = lhs + " and " + rhs;
break;
case ts.SyntaxKind.BarBarToken:
result = lhs + " or " + rhs;
break;
case ts.SyntaxKind.PlusToken:
// Replace string + with ..
var typeLeft = this.checker.getTypeAtLocation(node.left);
var typeRight = this.checker.getTypeAtLocation(node.right);
if (typeLeft.flags & ts.TypeFlags.String || ts.isStringLiteral(node.left))
return lhs + ".." + rhs;
if (typeRight.flags & ts.TypeFlags.String || ts.isStringLiteral(node.right))
return lhs + ".." + rhs;
default:
result = lhs + this.transpileOperator(node.operatorToken) + rhs;
}
}
// Optionally put brackets around result

@@ -625,3 +657,6 @@ if (brackets) {

var funcName = node.expression.name.escapedText;
var funcHolder = TSHelper_1.TSHelper.findMemberHolder(expType, funcName);
var funcHolder = TSHelper_1.TSHelper.findMemberHolder(expType, funcName, this.checker);
if (funcHolder === undefined) {
throw new TranspileError("Could not find func " + funcName + " on " + expType.symbol.name, node);
}
var callPath_2 = funcHolder + "." + funcName;

@@ -680,5 +715,3 @@ var params_4 = this.transpileArguments(node.arguments, node.expression.expression);

};
// TODO at check if compiler options is LUA 5.3
// should throw an exception if codepoint is used sub 5.3
if (identifier.escapedText === "fromCodePoint" && this.options.luaTarget !== '5.3') {
if (identifier.escapedText === "fromCodePoint" && this.options.luaTarget !== Target.Lua53) {
throw new TranspileError("Unsupported string property " + identifier.escapedText + " is only supported for lua 5.3.", identifier);

@@ -705,2 +738,4 @@ }

return "TS_forEach(" + caller + ", " + params + ")";
case "indexOf":
return "TS_indexOf(" + caller + ", " + params + ")";
case "map":

@@ -993,8 +1028,2 @@ return "TS_map(" + caller + ", " + params + ")";

});
// Check if the class should be returned
var isExport = node.modifiers && node.modifiers.some(function (_) { return _.kind == ts.SyntaxKind.ExportKeyword; });
var isDefault = node.modifiers && node.modifiers.some(function (_) { return _.kind == ts.SyntaxKind.DefaultKeyword; });
if (isExport && isDefault) {
result += this.indent + ("return " + className + "\n");
}
return result;

@@ -1089,2 +1118,3 @@ };

};
LuaTranspiler.AvailableLuaTargets = [Target.LuaJIT, Target.Lua53];
return LuaTranspiler;

@@ -1091,0 +1121,0 @@ }());

@@ -51,5 +51,2 @@ "use strict";

};
TSHelper.isValueType = function (node) {
return ts.isIdentifier(node) || ts.isLiteralExpression(node) || ts.isArrayLiteralExpression(node) || ts.isObjectLiteralExpression(node);
};
TSHelper.isArrayType = function (type) {

@@ -94,10 +91,10 @@ return (type.flags & ts.TypeFlags.Object) != 0

// Depth-First-Search up the inheritance tree for the name of the symbol containing the member
TSHelper.findMemberHolder = function (type, memberName) {
if (type.symbol.members.has(memberName)) {
TSHelper.findMemberHolder = function (type, memberName, typeChecker) {
if (type.symbol.members.has(memberName) || (type.symbol.exports && type.symbol.exports.has(memberName))) {
return type.symbol.name;
}
else {
for (var _i = 0, _a = type.getBaseTypes(); _i < _a.length; _i++) {
for (var _i = 0, _a = typeChecker.getBaseTypes(type); _i < _a.length; _i++) {
var parent_1 = _a[_i];
var parentMember = this.findMemberHolder(parent_1, memberName);
var parentMember = this.findMemberHolder(parent_1, memberName, typeChecker);
if (parentMember)

@@ -104,0 +101,0 @@ return parentMember;

{
"name": "typescript-to-lua",
"license": "MIT",
"version": "0.0.12",
"version": "0.0.13",
"repository": "https://github.com/Perryvw/TypescriptToLua",

@@ -6,0 +6,0 @@ "scripts": {

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc