typescript-to-lua 1.6.3 → 1.7.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 (98) hide show
  1. package/dist/CompilerOptions.d.ts +1 -0
  2. package/dist/cli/parse.js +5 -0
  3. package/dist/lualib/ArraySlice.lua +10 -2
  4. package/dist/lualib/ArraySplice.lua +5 -1
  5. package/dist/lualib/Generator.lua +8 -1
  6. package/dist/lualib/ParseFloat.lua +5 -1
  7. package/dist/lualib/SparseArraySpread.lua +5 -1
  8. package/dist/lualib/StringCharCodeAt.lua +5 -1
  9. package/dist/lualib/lualib_bundle.lua +38 -7
  10. package/dist/lualib-build/plugin.js +1 -2
  11. package/dist/measure-performance.d.ts +15 -0
  12. package/dist/measure-performance.js +83 -0
  13. package/dist/transformation/builtins/array.js +2 -1
  14. package/dist/transformation/builtins/function.js +1 -1
  15. package/dist/transformation/builtins/global.d.ts +1 -1
  16. package/dist/transformation/builtins/global.js +13 -12
  17. package/dist/transformation/builtins/index.d.ts +2 -2
  18. package/dist/transformation/builtins/index.js +87 -89
  19. package/dist/transformation/builtins/object.d.ts +1 -1
  20. package/dist/transformation/builtins/object.js +4 -4
  21. package/dist/transformation/builtins/promise.js +4 -2
  22. package/dist/transformation/builtins/string.js +2 -0
  23. package/dist/transformation/context/context.d.ts +15 -0
  24. package/dist/transformation/context/context.js +66 -24
  25. package/dist/transformation/context/visitors.d.ts +1 -1
  26. package/dist/transformation/index.js +6 -5
  27. package/dist/transformation/utils/annotations.d.ts +1 -17
  28. package/dist/transformation/utils/annotations.js +48 -88
  29. package/dist/transformation/utils/assignment-validation.js +27 -23
  30. package/dist/transformation/utils/diagnostics.d.ts +1 -4
  31. package/dist/transformation/utils/diagnostics.js +2 -3
  32. package/dist/transformation/utils/function-context.d.ts +1 -1
  33. package/dist/transformation/utils/function-context.js +57 -51
  34. package/dist/transformation/utils/language-extensions.d.ts +57 -51
  35. package/dist/transformation/utils/language-extensions.js +99 -119
  36. package/dist/transformation/utils/lualib.d.ts +0 -1
  37. package/dist/transformation/utils/lualib.js +2 -8
  38. package/dist/transformation/utils/safe-names.d.ts +1 -1
  39. package/dist/transformation/utils/safe-names.js +3 -6
  40. package/dist/transformation/utils/scope.d.ts +0 -2
  41. package/dist/transformation/utils/scope.js +10 -27
  42. package/dist/transformation/utils/symbols.d.ts +1 -1
  43. package/dist/transformation/utils/symbols.js +7 -20
  44. package/dist/transformation/utils/typescript/index.d.ts +1 -0
  45. package/dist/transformation/utils/typescript/index.js +2 -1
  46. package/dist/transformation/utils/typescript/types.d.ts +2 -5
  47. package/dist/transformation/utils/typescript/types.js +27 -37
  48. package/dist/transformation/visitors/access.js +1 -4
  49. package/dist/transformation/visitors/block.js +4 -4
  50. package/dist/transformation/visitors/call.js +10 -21
  51. package/dist/transformation/visitors/class/index.js +8 -20
  52. package/dist/transformation/visitors/class/members/constructor.js +2 -2
  53. package/dist/transformation/visitors/class/new.js +2 -5
  54. package/dist/transformation/visitors/class/setup.d.ts +1 -1
  55. package/dist/transformation/visitors/class/setup.js +4 -4
  56. package/dist/transformation/visitors/class/utils.d.ts +1 -1
  57. package/dist/transformation/visitors/class/utils.js +2 -9
  58. package/dist/transformation/visitors/conditional.js +4 -4
  59. package/dist/transformation/visitors/function.d.ts +1 -1
  60. package/dist/transformation/visitors/function.js +8 -16
  61. package/dist/transformation/visitors/identifier.d.ts +1 -0
  62. package/dist/transformation/visitors/identifier.js +40 -44
  63. package/dist/transformation/visitors/language-extensions/call-extension.d.ts +10 -0
  64. package/dist/transformation/visitors/language-extensions/call-extension.js +23 -0
  65. package/dist/transformation/visitors/language-extensions/identifier.d.ts +5 -0
  66. package/dist/transformation/visitors/language-extensions/identifier.js +27 -0
  67. package/dist/transformation/visitors/language-extensions/iterable.d.ts +2 -3
  68. package/dist/transformation/visitors/language-extensions/iterable.js +23 -22
  69. package/dist/transformation/visitors/language-extensions/multi.d.ts +0 -1
  70. package/dist/transformation/visitors/language-extensions/multi.js +10 -24
  71. package/dist/transformation/visitors/language-extensions/operators.d.ts +2 -5
  72. package/dist/transformation/visitors/language-extensions/operators.js +89 -96
  73. package/dist/transformation/visitors/language-extensions/range.js +4 -2
  74. package/dist/transformation/visitors/language-extensions/table.d.ts +6 -3
  75. package/dist/transformation/visitors/language-extensions/table.js +46 -75
  76. package/dist/transformation/visitors/language-extensions/vararg.js +7 -3
  77. package/dist/transformation/visitors/literal.js +2 -23
  78. package/dist/transformation/visitors/loops/for-of.js +18 -18
  79. package/dist/transformation/visitors/loops/utils.js +5 -5
  80. package/dist/transformation/visitors/modules/import.js +2 -2
  81. package/dist/transformation/visitors/namespace.js +5 -14
  82. package/dist/transformation/visitors/return.js +2 -3
  83. package/dist/transformation/visitors/sourceFile.js +3 -4
  84. package/dist/transformation/visitors/spread.js +0 -5
  85. package/dist/transformation/visitors/switch.js +2 -2
  86. package/dist/transformation/visitors/variable-declaration.js +1 -1
  87. package/dist/transpilation/plugins.js +3 -0
  88. package/dist/transpilation/resolve.js +210 -186
  89. package/dist/transpilation/transpile.js +10 -0
  90. package/dist/transpilation/transpiler.d.ts +1 -0
  91. package/dist/transpilation/transpiler.js +18 -5
  92. package/dist/tstl.js +21 -0
  93. package/language-extensions/index.d.ts +167 -67
  94. package/package.json +2 -2
  95. package/dist/transformation/visitors/language-extensions/index.d.ts +0 -4
  96. package/dist/transformation/visitors/language-extensions/index.js +0 -17
  97. package/dist/transformation/visitors/language-extensions/pairsIterable.d.ts +0 -5
  98. package/dist/transformation/visitors/language-extensions/pairsIterable.js +0 -53
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.transformForOfPairsIterableStatement = exports.isPairsIterableExpression = void 0;
4
- const ts = require("typescript");
5
- const lua = require("../../../LuaAST");
6
- const utils_1 = require("../../../utils");
7
- const diagnostics_1 = require("../../utils/diagnostics");
8
- const extensions = require("../../utils/language-extensions");
9
- const utils_2 = require("../loops/utils");
10
- const variable_declaration_1 = require("../variable-declaration");
11
- function isPairsIterableType(type) {
12
- return extensions.isExtensionType(type, extensions.ExtensionKind.PairsIterableType);
13
- }
14
- function isPairsIterableExpression(context, expression) {
15
- const type = context.checker.getTypeAtLocation(expression);
16
- return isPairsIterableType(type);
17
- }
18
- exports.isPairsIterableExpression = isPairsIterableExpression;
19
- function transformForOfPairsIterableStatement(context, statement, block) {
20
- const pairsCall = lua.createCallExpression(lua.createIdentifier("pairs"), [
21
- context.transformExpression(statement.expression),
22
- ]);
23
- let identifiers = [];
24
- if (ts.isVariableDeclarationList(statement.initializer)) {
25
- // Variables declared in for loop
26
- // for key, value in iterable do
27
- const binding = (0, utils_2.getVariableDeclarationBinding)(context, statement.initializer);
28
- if (ts.isArrayBindingPattern(binding)) {
29
- identifiers = binding.elements.map(e => (0, variable_declaration_1.transformArrayBindingElement)(context, e));
30
- }
31
- else {
32
- context.diagnostics.push((0, diagnostics_1.invalidPairsIterableWithoutDestructuring)(binding));
33
- }
34
- }
35
- else if (ts.isArrayLiteralExpression(statement.initializer)) {
36
- // Variables NOT declared in for loop - catch iterator values in temps and assign
37
- // for ____key, ____value in iterable do
38
- // key, value = ____key, ____value
39
- identifiers = statement.initializer.elements.map(e => context.createTempNameForNode(e));
40
- if (identifiers.length > 0) {
41
- block.statements.unshift(lua.createAssignmentStatement(statement.initializer.elements.map(e => (0, utils_1.cast)(context.transformExpression(e), lua.isAssignmentLeftHandSideExpression)), identifiers));
42
- }
43
- }
44
- else {
45
- context.diagnostics.push((0, diagnostics_1.invalidPairsIterableWithoutDestructuring)(statement.initializer));
46
- }
47
- if (identifiers.length === 0) {
48
- identifiers.push(lua.createAnonymousIdentifier());
49
- }
50
- return lua.createForInStatement(block, identifiers, [pairsCall], statement);
51
- }
52
- exports.transformForOfPairsIterableStatement = transformForOfPairsIterableStatement;
53
- //# sourceMappingURL=pairsIterable.js.map