typescript-to-lua 1.13.0 → 1.13.2

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.
Files changed (38) hide show
  1. package/dist/lualib/5.0/Await.lua +5 -11
  2. package/dist/lualib/5.0/Decorate.lua +1 -1
  3. package/dist/lualib/5.0/Error.lua +12 -18
  4. package/dist/lualib/5.0/Map.lua +3 -3
  5. package/dist/lualib/5.0/MathModf.lua +1 -7
  6. package/dist/lualib/5.0/ObjectDefineProperty.lua +21 -27
  7. package/dist/lualib/5.0/ParseFloat.lua +2 -8
  8. package/dist/lualib/5.0/ParseInt.lua +9 -21
  9. package/dist/lualib/5.0/Set.lua +3 -3
  10. package/dist/lualib/5.0/SetDescriptor.lua +2 -2
  11. package/dist/lualib/5.0/SourceMapTraceBack.lua +4 -4
  12. package/dist/lualib/5.0/StringReplace.lua +1 -7
  13. package/dist/lualib/5.0/SymbolRegistry.lua +1 -0
  14. package/dist/lualib/5.0/lualib_bundle.lua +65 -112
  15. package/dist/lualib/universal/Await.lua +5 -11
  16. package/dist/lualib/universal/Decorate.lua +1 -1
  17. package/dist/lualib/universal/Error.lua +12 -18
  18. package/dist/lualib/universal/Map.lua +3 -3
  19. package/dist/lualib/universal/ObjectDefineProperty.lua +21 -27
  20. package/dist/lualib/universal/ParseFloat.lua +2 -8
  21. package/dist/lualib/universal/ParseInt.lua +3 -15
  22. package/dist/lualib/universal/Set.lua +3 -3
  23. package/dist/lualib/universal/SetDescriptor.lua +2 -2
  24. package/dist/lualib/universal/SourceMapTraceBack.lua +5 -5
  25. package/dist/lualib/universal/StringReplace.lua +1 -7
  26. package/dist/lualib/universal/SymbolRegistry.lua +1 -0
  27. package/dist/lualib/universal/lualib_bundle.lua +59 -100
  28. package/dist/transformation/builtins/array.js +4 -3
  29. package/dist/transformation/builtins/math.js +4 -3
  30. package/dist/transformation/builtins/string.js +7 -4
  31. package/dist/transformation/utils/diagnostics.d.ts +4 -0
  32. package/dist/transformation/utils/diagnostics.js +3 -1
  33. package/dist/transformation/utils/lua-ast.js +10 -8
  34. package/dist/transformation/visitors/binary-expression/assignments.js +10 -4
  35. package/dist/transformation/visitors/language-extensions/multi.js +10 -9
  36. package/dist/transformation/visitors/spread.js +18 -3
  37. package/dist/transpilation/resolve.js +3 -0
  38. package/package.json +7 -7
@@ -4,6 +4,7 @@ exports.transformSpreadElement = exports.isOptimizedVarArgSpread = void 0;
4
4
  const ts = require("typescript");
5
5
  const CompilerOptions_1 = require("../../CompilerOptions");
6
6
  const lua = require("../../LuaAST");
7
+ const utils_1 = require("../../utils");
7
8
  const language_extensions_1 = require("../utils/language-extensions");
8
9
  const lua_ast_1 = require("../utils/lua-ast");
9
10
  const lualib_1 = require("../utils/lualib");
@@ -63,10 +64,24 @@ const transformSpreadElement = (node, context) => {
63
64
  const innerExpression = context.transformExpression(node.expression);
64
65
  if ((0, multi_1.isMultiReturnCall)(context, tsInnerExpression))
65
66
  return innerExpression;
66
- const type = context.checker.getTypeAtLocation(node.expression); // not ts-inner expression, in case of casts
67
- if ((0, language_extensions_1.isLuaIterable)(context, type)) {
68
- return (0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.LuaIteratorSpread, node, innerExpression);
67
+ const iterableExtensionType = (0, language_extensions_1.getIterableExtensionKindForNode)(context, node.expression);
68
+ if (iterableExtensionType) {
69
+ if (iterableExtensionType === language_extensions_1.IterableExtensionKind.Iterable) {
70
+ return (0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.LuaIteratorSpread, node, innerExpression);
71
+ }
72
+ else if (iterableExtensionType === language_extensions_1.IterableExtensionKind.Pairs) {
73
+ const objectEntries = (0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.ObjectEntries, node, innerExpression);
74
+ return (0, lua_ast_1.createUnpackCall)(context, objectEntries, node);
75
+ }
76
+ else if (iterableExtensionType === language_extensions_1.IterableExtensionKind.PairsKey) {
77
+ const objectKeys = (0, lualib_1.transformLuaLibFunction)(context, lualib_1.LuaLibFeature.ObjectKeys, node, innerExpression);
78
+ return (0, lua_ast_1.createUnpackCall)(context, objectKeys, node);
79
+ }
80
+ else {
81
+ (0, utils_1.assertNever)(iterableExtensionType);
82
+ }
69
83
  }
84
+ const type = context.checker.getTypeAtLocation(node.expression); // not ts-inner expression, in case of casts
70
85
  if ((0, typescript_1.isArrayType)(context, type)) {
71
86
  return (0, lua_ast_1.createUnpackCall)(context, innerExpression, node);
72
87
  }
@@ -278,6 +278,9 @@ function replaceRequireInSourceMap(file, originalRequire, newRequire, extension)
278
278
  }
279
279
  }
280
280
  function requirePathForFile(filePath, extension = ".lua") {
281
+ if (!extension.startsWith(".")) {
282
+ extension = `.${extension}`;
283
+ }
281
284
  if (filePath.endsWith(extension)) {
282
285
  return (0, utils_1.formatPathToLuaPath)(filePath.substring(0, filePath.length - extension.length));
283
286
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typescript-to-lua",
3
- "version": "1.13.0",
3
+ "version": "1.13.2",
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/",
@@ -56,15 +56,15 @@
56
56
  "@types/jest": "^27.5.2",
57
57
  "@types/node": "^13.7.7",
58
58
  "@types/resolve": "1.14.0",
59
- "@typescript-eslint/eslint-plugin": "^5.36.1",
60
- "@typescript-eslint/parser": "^5.36.1",
61
- "eslint": "^8.23.0",
62
- "eslint-plugin-import": "^2.26.0",
63
- "eslint-plugin-jest": "^26.8.7",
59
+ "@typescript-eslint/eslint-plugin": "^5.52.0",
60
+ "@typescript-eslint/parser": "^5.52.0",
61
+ "eslint": "^8.34.0",
62
+ "eslint-plugin-import": "^2.27.5",
63
+ "eslint-plugin-jest": "^26.9.0",
64
64
  "fs-extra": "^8.1.0",
65
65
  "javascript-stringify": "^2.0.1",
66
66
  "jest": "^28.1.3",
67
- "jest-circus": "^29.0.1",
67
+ "jest-circus": "^29.4.2",
68
68
  "lua-types": "^2.13.0",
69
69
  "lua-wasm-bindings": "^0.3.1",
70
70
  "prettier": "^2.3.2",