typescript-to-lua 1.25.2 → 1.26.1

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 (105) hide show
  1. package/dist/CompilerOptions.js +2 -2
  2. package/dist/LuaAST.js +76 -77
  3. package/dist/LuaLib.d.ts +1 -0
  4. package/dist/LuaLib.js +13 -12
  5. package/dist/LuaPrinter.js +2 -2
  6. package/dist/cli/information.js +2 -2
  7. package/dist/cli/parse.js +3 -3
  8. package/dist/cli/report.d.ts +4 -4
  9. package/dist/cli/report.js +2 -2
  10. package/dist/cli/tsconfig.js +3 -4
  11. package/dist/lualib/5.0/MathSign.lua +5 -4
  12. package/dist/lualib/5.0/MathTrunc.lua +6 -0
  13. package/dist/lualib/5.0/Set.lua +58 -0
  14. package/dist/lualib/5.0/lualib_bundle.lua +79 -12
  15. package/dist/lualib/5.0/lualib_module_info.json +13 -1
  16. package/dist/lualib/universal/MathSign.lua +5 -4
  17. package/dist/lualib/universal/MathTrunc.lua +6 -0
  18. package/dist/lualib/universal/Set.lua +58 -0
  19. package/dist/lualib/universal/lualib_bundle.lua +79 -12
  20. package/dist/lualib/universal/lualib_module_info.json +13 -1
  21. package/dist/lualib-build/plugin.d.ts +1 -1
  22. package/dist/lualib-build/util.js +8 -9
  23. package/dist/measure-performance.js +7 -8
  24. package/dist/transformation/builtins/array.js +3 -4
  25. package/dist/transformation/builtins/console.js +1 -2
  26. package/dist/transformation/builtins/function.js +2 -3
  27. package/dist/transformation/builtins/global.js +1 -2
  28. package/dist/transformation/builtins/index.js +4 -5
  29. package/dist/transformation/builtins/map.js +1 -2
  30. package/dist/transformation/builtins/math.js +5 -3
  31. package/dist/transformation/builtins/number.js +3 -4
  32. package/dist/transformation/builtins/object.js +2 -3
  33. package/dist/transformation/builtins/promise.js +4 -5
  34. package/dist/transformation/builtins/string.js +3 -4
  35. package/dist/transformation/builtins/symbol.js +1 -2
  36. package/dist/transformation/context/context.d.ts +0 -3
  37. package/dist/transformation/index.js +2 -3
  38. package/dist/transformation/pre-transformers/using-transformer.js +1 -2
  39. package/dist/transformation/utils/annotations.js +5 -5
  40. package/dist/transformation/utils/assignment-validation.js +1 -2
  41. package/dist/transformation/utils/export.js +14 -14
  42. package/dist/transformation/utils/function-context.js +3 -3
  43. package/dist/transformation/utils/language-extensions.js +10 -10
  44. package/dist/transformation/utils/lua-ast.js +12 -12
  45. package/dist/transformation/utils/lualib.js +3 -3
  46. package/dist/transformation/utils/preceding-statements.js +1 -2
  47. package/dist/transformation/utils/safe-names.js +3 -3
  48. package/dist/transformation/utils/scope.js +11 -11
  49. package/dist/transformation/utils/symbols.js +4 -5
  50. package/dist/transformation/utils/typescript/index.js +13 -14
  51. package/dist/transformation/utils/typescript/nodes.js +8 -9
  52. package/dist/transformation/utils/typescript/types.js +10 -11
  53. package/dist/transformation/visitors/access.js +4 -4
  54. package/dist/transformation/visitors/async-await.js +3 -3
  55. package/dist/transformation/visitors/binary-expression/assignments.js +5 -6
  56. package/dist/transformation/visitors/binary-expression/bit.js +3 -3
  57. package/dist/transformation/visitors/binary-expression/compound.js +3 -3
  58. package/dist/transformation/visitors/binary-expression/destructuring-assignments.js +3 -4
  59. package/dist/transformation/visitors/binary-expression/index.js +4 -4
  60. package/dist/transformation/visitors/block.js +3 -3
  61. package/dist/transformation/visitors/call.js +6 -6
  62. package/dist/transformation/visitors/class/decorators.js +6 -7
  63. package/dist/transformation/visitors/class/index.js +14 -3
  64. package/dist/transformation/visitors/class/members/accessors.js +1 -2
  65. package/dist/transformation/visitors/class/members/constructor.js +3 -4
  66. package/dist/transformation/visitors/class/members/fields.js +2 -3
  67. package/dist/transformation/visitors/class/members/method.js +3 -4
  68. package/dist/transformation/visitors/class/setup.js +2 -3
  69. package/dist/transformation/visitors/class/utils.js +5 -6
  70. package/dist/transformation/visitors/conditional.js +3 -3
  71. package/dist/transformation/visitors/enum.js +2 -2
  72. package/dist/transformation/visitors/expression-list.js +4 -5
  73. package/dist/transformation/visitors/expression-statement.js +2 -2
  74. package/dist/transformation/visitors/function.js +9 -9
  75. package/dist/transformation/visitors/identifier.js +4 -4
  76. package/dist/transformation/visitors/language-extensions/call-extension.js +2 -2
  77. package/dist/transformation/visitors/language-extensions/identifier.js +2 -3
  78. package/dist/transformation/visitors/language-extensions/iterable.js +3 -4
  79. package/dist/transformation/visitors/language-extensions/multi.js +8 -9
  80. package/dist/transformation/visitors/language-extensions/range.js +3 -4
  81. package/dist/transformation/visitors/language-extensions/table.js +2 -2
  82. package/dist/transformation/visitors/language-extensions/vararg.js +2 -3
  83. package/dist/transformation/visitors/literal.js +3 -3
  84. package/dist/transformation/visitors/loops/utils.js +4 -5
  85. package/dist/transformation/visitors/modules/export.js +0 -3
  86. package/dist/transformation/visitors/modules/import.js +2 -2
  87. package/dist/transformation/visitors/namespace.js +3 -3
  88. package/dist/transformation/visitors/optional-chaining.js +6 -7
  89. package/dist/transformation/visitors/return.js +3 -3
  90. package/dist/transformation/visitors/spread.js +2 -2
  91. package/dist/transformation/visitors/typeof.js +2 -2
  92. package/dist/transformation/visitors/unary-expression.js +2 -2
  93. package/dist/transformation/visitors/variable-declaration.js +6 -6
  94. package/dist/transpilation/bundle.js +3 -3
  95. package/dist/transpilation/find-lua-requires.js +1 -2
  96. package/dist/transpilation/index.js +5 -6
  97. package/dist/transpilation/output-collector.js +1 -2
  98. package/dist/transpilation/plugins.js +1 -2
  99. package/dist/transpilation/resolve.js +1 -2
  100. package/dist/transpilation/transformers.js +2 -2
  101. package/dist/transpilation/transpile.js +1 -2
  102. package/dist/transpilation/transpiler.js +6 -6
  103. package/dist/transpilation/utils.js +2 -2
  104. package/dist/utils.js +9 -9
  105. package/package.json +6 -7
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateOptions = exports.isBundleEnabled = exports.BuildMode = exports.LuaTarget = exports.LuaLibImportKind = void 0;
3
+ exports.isBundleEnabled = exports.BuildMode = exports.LuaTarget = exports.LuaLibImportKind = void 0;
4
+ exports.validateOptions = validateOptions;
4
5
  const typescript_1 = require("typescript");
5
6
  const diagnosticFactories = require("./transpilation/diagnostics");
6
7
  var LuaLibImportKind;
@@ -46,5 +47,4 @@ function validateOptions(options) {
46
47
  }
47
48
  return diagnostics;
48
49
  }
49
- exports.validateOptions = validateOptions;
50
50
  //# sourceMappingURL=CompilerOptions.js.map
package/dist/LuaAST.js CHANGED
@@ -2,8 +2,82 @@
2
2
  // Simplified Lua AST based roughly on http://lua-users.org/wiki/MetaLuaAbstractSyntaxTree,
3
3
  // https://www.lua.org/manual/5.3/manual.html#9 and the TS AST implementation
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.isStringLiteral = exports.createNumericLiteral = exports.isNumericLiteral = exports.createArgLiteral = exports.isArgLiteral = exports.createDotsLiteral = exports.isDotsLiteral = exports.createBooleanLiteral = exports.isBooleanLiteral = exports.createNilLiteral = exports.isNilLiteral = exports.createExpressionStatement = exports.isExpressionStatement = exports.createBreakStatement = exports.isBreakStatement = exports.createReturnStatement = exports.isReturnStatement = exports.createLabelStatement = exports.isLabelStatement = exports.createGotoStatement = exports.isGotoStatement = exports.createForInStatement = exports.isForInStatement = exports.createForStatement = exports.isForStatement = exports.createRepeatStatement = exports.isRepeatStatement = exports.createWhileStatement = exports.isWhileStatement = exports.isIterationStatement = exports.createIfStatement = exports.isIfStatement = exports.createAssignmentStatement = exports.isAssignmentStatement = exports.createVariableDeclarationStatement = exports.isVariableDeclarationStatement = exports.createDoStatement = exports.isDoStatement = exports.createBlock = exports.isBlock = exports.createFile = exports.isFile = exports.setNodeFlags = exports.getOriginalPos = exports.setNodeOriginal = exports.setNodePosition = exports.cloneNode = exports.createNode = exports.NodeFlags = exports.SyntaxKind = void 0;
6
- exports.createParenthesizedExpression = exports.isParenthesizedExpression = exports.isInlineFunctionExpression = exports.isFunctionDefinition = exports.isAssignmentLeftHandSideExpression = exports.createTableIndexExpression = exports.isTableIndexExpression = exports.createAnonymousIdentifier = exports.cloneIdentifier = exports.createIdentifier = exports.isIdentifier = exports.createMethodCallExpression = exports.isMethodCallExpression = exports.createCallExpression = exports.isCallExpression = exports.createBinaryExpression = exports.isBinaryExpression = exports.createUnaryExpression = exports.isUnaryExpression = exports.createTableExpression = exports.isTableExpression = exports.createTableFieldExpression = exports.isTableFieldExpression = exports.createFunctionExpression = exports.isFunctionExpression = exports.isLiteral = exports.createStringLiteral = void 0;
5
+ exports.NodeFlags = exports.SyntaxKind = void 0;
6
+ exports.createNode = createNode;
7
+ exports.cloneNode = cloneNode;
8
+ exports.setNodePosition = setNodePosition;
9
+ exports.setNodeOriginal = setNodeOriginal;
10
+ exports.getOriginalPos = getOriginalPos;
11
+ exports.setNodeFlags = setNodeFlags;
12
+ exports.isFile = isFile;
13
+ exports.createFile = createFile;
14
+ exports.isBlock = isBlock;
15
+ exports.createBlock = createBlock;
16
+ exports.isDoStatement = isDoStatement;
17
+ exports.createDoStatement = createDoStatement;
18
+ exports.isVariableDeclarationStatement = isVariableDeclarationStatement;
19
+ exports.createVariableDeclarationStatement = createVariableDeclarationStatement;
20
+ exports.isAssignmentStatement = isAssignmentStatement;
21
+ exports.createAssignmentStatement = createAssignmentStatement;
22
+ exports.isIfStatement = isIfStatement;
23
+ exports.createIfStatement = createIfStatement;
24
+ exports.isIterationStatement = isIterationStatement;
25
+ exports.isWhileStatement = isWhileStatement;
26
+ exports.createWhileStatement = createWhileStatement;
27
+ exports.isRepeatStatement = isRepeatStatement;
28
+ exports.createRepeatStatement = createRepeatStatement;
29
+ exports.isForStatement = isForStatement;
30
+ exports.createForStatement = createForStatement;
31
+ exports.isForInStatement = isForInStatement;
32
+ exports.createForInStatement = createForInStatement;
33
+ exports.isGotoStatement = isGotoStatement;
34
+ exports.createGotoStatement = createGotoStatement;
35
+ exports.isLabelStatement = isLabelStatement;
36
+ exports.createLabelStatement = createLabelStatement;
37
+ exports.isReturnStatement = isReturnStatement;
38
+ exports.createReturnStatement = createReturnStatement;
39
+ exports.isBreakStatement = isBreakStatement;
40
+ exports.createBreakStatement = createBreakStatement;
41
+ exports.isExpressionStatement = isExpressionStatement;
42
+ exports.createExpressionStatement = createExpressionStatement;
43
+ exports.isNilLiteral = isNilLiteral;
44
+ exports.createNilLiteral = createNilLiteral;
45
+ exports.isBooleanLiteral = isBooleanLiteral;
46
+ exports.createBooleanLiteral = createBooleanLiteral;
47
+ exports.isDotsLiteral = isDotsLiteral;
48
+ exports.createDotsLiteral = createDotsLiteral;
49
+ exports.isArgLiteral = isArgLiteral;
50
+ exports.createArgLiteral = createArgLiteral;
51
+ exports.isNumericLiteral = isNumericLiteral;
52
+ exports.createNumericLiteral = createNumericLiteral;
53
+ exports.isStringLiteral = isStringLiteral;
54
+ exports.createStringLiteral = createStringLiteral;
55
+ exports.isLiteral = isLiteral;
56
+ exports.isFunctionExpression = isFunctionExpression;
57
+ exports.createFunctionExpression = createFunctionExpression;
58
+ exports.isTableFieldExpression = isTableFieldExpression;
59
+ exports.createTableFieldExpression = createTableFieldExpression;
60
+ exports.isTableExpression = isTableExpression;
61
+ exports.createTableExpression = createTableExpression;
62
+ exports.isUnaryExpression = isUnaryExpression;
63
+ exports.createUnaryExpression = createUnaryExpression;
64
+ exports.isBinaryExpression = isBinaryExpression;
65
+ exports.createBinaryExpression = createBinaryExpression;
66
+ exports.isCallExpression = isCallExpression;
67
+ exports.createCallExpression = createCallExpression;
68
+ exports.isMethodCallExpression = isMethodCallExpression;
69
+ exports.createMethodCallExpression = createMethodCallExpression;
70
+ exports.isIdentifier = isIdentifier;
71
+ exports.createIdentifier = createIdentifier;
72
+ exports.cloneIdentifier = cloneIdentifier;
73
+ exports.createAnonymousIdentifier = createAnonymousIdentifier;
74
+ exports.isTableIndexExpression = isTableIndexExpression;
75
+ exports.createTableIndexExpression = createTableIndexExpression;
76
+ exports.isAssignmentLeftHandSideExpression = isAssignmentLeftHandSideExpression;
77
+ exports.isFunctionDefinition = isFunctionDefinition;
78
+ exports.isInlineFunctionExpression = isInlineFunctionExpression;
79
+ exports.isParenthesizedExpression = isParenthesizedExpression;
80
+ exports.createParenthesizedExpression = createParenthesizedExpression;
7
81
  // We can elide a lot of nodes especially tokens and keywords
8
82
  // because we don't create the AST from text
9
83
  const ts = require("typescript");
@@ -98,17 +172,14 @@ function createNode(kind, tsOriginal) {
98
172
  return { kind, flags: NodeFlags.None };
99
173
  }
100
174
  }
101
- exports.createNode = createNode;
102
175
  function cloneNode(node) {
103
176
  return { ...node };
104
177
  }
105
- exports.cloneNode = cloneNode;
106
178
  function setNodePosition(node, position) {
107
179
  node.line = position.line;
108
180
  node.column = position.column;
109
181
  return node;
110
182
  }
111
- exports.setNodePosition = setNodePosition;
112
183
  function setNodeOriginal(node, tsOriginal) {
113
184
  if (node === undefined) {
114
185
  return undefined;
@@ -119,7 +190,6 @@ function setNodeOriginal(node, tsOriginal) {
119
190
  }
120
191
  return node;
121
192
  }
122
- exports.setNodeOriginal = setNodeOriginal;
123
193
  function getSourcePosition(sourceNode) {
124
194
  var _a;
125
195
  const parseTreeNode = (_a = ts.getParseTreeNode(sourceNode)) !== null && _a !== void 0 ? _a : sourceNode;
@@ -132,16 +202,13 @@ function getSourcePosition(sourceNode) {
132
202
  function getOriginalPos(node) {
133
203
  return { line: node.line, column: node.column };
134
204
  }
135
- exports.getOriginalPos = getOriginalPos;
136
205
  function setNodeFlags(node, flags) {
137
206
  node.flags = flags;
138
207
  return node;
139
208
  }
140
- exports.setNodeFlags = setNodeFlags;
141
209
  function isFile(node) {
142
210
  return node.kind === SyntaxKind.File;
143
211
  }
144
- exports.isFile = isFile;
145
212
  function createFile(statements, luaLibFeatures, trivia, tsOriginal) {
146
213
  const file = createNode(SyntaxKind.File, tsOriginal);
147
214
  file.statements = statements;
@@ -149,31 +216,25 @@ function createFile(statements, luaLibFeatures, trivia, tsOriginal) {
149
216
  file.trivia = trivia;
150
217
  return file;
151
218
  }
152
- exports.createFile = createFile;
153
219
  function isBlock(node) {
154
220
  return node.kind === SyntaxKind.Block;
155
221
  }
156
- exports.isBlock = isBlock;
157
222
  function createBlock(statements, tsOriginal) {
158
223
  const block = createNode(SyntaxKind.Block, tsOriginal);
159
224
  block.statements = statements;
160
225
  return block;
161
226
  }
162
- exports.createBlock = createBlock;
163
227
  function isDoStatement(node) {
164
228
  return node.kind === SyntaxKind.DoStatement;
165
229
  }
166
- exports.isDoStatement = isDoStatement;
167
230
  function createDoStatement(statements, tsOriginal) {
168
231
  const statement = createNode(SyntaxKind.DoStatement, tsOriginal);
169
232
  statement.statements = statements;
170
233
  return statement;
171
234
  }
172
- exports.createDoStatement = createDoStatement;
173
235
  function isVariableDeclarationStatement(node) {
174
236
  return node.kind === SyntaxKind.VariableDeclarationStatement;
175
237
  }
176
- exports.isVariableDeclarationStatement = isVariableDeclarationStatement;
177
238
  function createVariableDeclarationStatement(left, right, tsOriginal) {
178
239
  const statement = createNode(SyntaxKind.VariableDeclarationStatement, tsOriginal);
179
240
  statement.left = (0, utils_1.castArray)(left);
@@ -181,22 +242,18 @@ function createVariableDeclarationStatement(left, right, tsOriginal) {
181
242
  statement.right = (0, utils_1.castArray)(right);
182
243
  return statement;
183
244
  }
184
- exports.createVariableDeclarationStatement = createVariableDeclarationStatement;
185
245
  function isAssignmentStatement(node) {
186
246
  return node.kind === SyntaxKind.AssignmentStatement;
187
247
  }
188
- exports.isAssignmentStatement = isAssignmentStatement;
189
248
  function createAssignmentStatement(left, right, tsOriginal) {
190
249
  const statement = createNode(SyntaxKind.AssignmentStatement, tsOriginal);
191
250
  statement.left = (0, utils_1.castArray)(left);
192
251
  statement.right = right ? (0, utils_1.castArray)(right) : [];
193
252
  return statement;
194
253
  }
195
- exports.createAssignmentStatement = createAssignmentStatement;
196
254
  function isIfStatement(node) {
197
255
  return node.kind === SyntaxKind.IfStatement;
198
256
  }
199
- exports.isIfStatement = isIfStatement;
200
257
  function createIfStatement(condition, ifBlock, elseBlock, tsOriginal) {
201
258
  const statement = createNode(SyntaxKind.IfStatement, tsOriginal);
202
259
  statement.condition = condition;
@@ -204,40 +261,33 @@ function createIfStatement(condition, ifBlock, elseBlock, tsOriginal) {
204
261
  statement.elseBlock = elseBlock;
205
262
  return statement;
206
263
  }
207
- exports.createIfStatement = createIfStatement;
208
264
  function isIterationStatement(node) {
209
265
  return (node.kind === SyntaxKind.WhileStatement ||
210
266
  node.kind === SyntaxKind.RepeatStatement ||
211
267
  node.kind === SyntaxKind.ForStatement ||
212
268
  node.kind === SyntaxKind.ForInStatement);
213
269
  }
214
- exports.isIterationStatement = isIterationStatement;
215
270
  function isWhileStatement(node) {
216
271
  return node.kind === SyntaxKind.WhileStatement;
217
272
  }
218
- exports.isWhileStatement = isWhileStatement;
219
273
  function createWhileStatement(body, condition, tsOriginal) {
220
274
  const statement = createNode(SyntaxKind.WhileStatement, tsOriginal);
221
275
  statement.body = body;
222
276
  statement.condition = condition;
223
277
  return statement;
224
278
  }
225
- exports.createWhileStatement = createWhileStatement;
226
279
  function isRepeatStatement(node) {
227
280
  return node.kind === SyntaxKind.RepeatStatement;
228
281
  }
229
- exports.isRepeatStatement = isRepeatStatement;
230
282
  function createRepeatStatement(body, condition, tsOriginal) {
231
283
  const statement = createNode(SyntaxKind.RepeatStatement, tsOriginal);
232
284
  statement.body = body;
233
285
  statement.condition = condition;
234
286
  return statement;
235
287
  }
236
- exports.createRepeatStatement = createRepeatStatement;
237
288
  function isForStatement(node) {
238
289
  return node.kind === SyntaxKind.ForStatement;
239
290
  }
240
- exports.isForStatement = isForStatement;
241
291
  function createForStatement(body, controlVariable, controlVariableInitializer, limitExpression, stepExpression, tsOriginal) {
242
292
  const statement = createNode(SyntaxKind.ForStatement, tsOriginal);
243
293
  statement.body = body;
@@ -247,11 +297,9 @@ function createForStatement(body, controlVariable, controlVariableInitializer, l
247
297
  statement.stepExpression = stepExpression;
248
298
  return statement;
249
299
  }
250
- exports.createForStatement = createForStatement;
251
300
  function isForInStatement(node) {
252
301
  return node.kind === SyntaxKind.ForInStatement;
253
302
  }
254
- exports.isForInStatement = isForInStatement;
255
303
  function createForInStatement(body, names, expressions, tsOriginal) {
256
304
  const statement = createNode(SyntaxKind.ForInStatement, tsOriginal);
257
305
  statement.body = body;
@@ -259,107 +307,84 @@ function createForInStatement(body, names, expressions, tsOriginal) {
259
307
  statement.expressions = expressions;
260
308
  return statement;
261
309
  }
262
- exports.createForInStatement = createForInStatement;
263
310
  function isGotoStatement(node) {
264
311
  return node.kind === SyntaxKind.GotoStatement;
265
312
  }
266
- exports.isGotoStatement = isGotoStatement;
267
313
  function createGotoStatement(label, tsOriginal) {
268
314
  const statement = createNode(SyntaxKind.GotoStatement, tsOriginal);
269
315
  statement.label = label;
270
316
  return statement;
271
317
  }
272
- exports.createGotoStatement = createGotoStatement;
273
318
  function isLabelStatement(node) {
274
319
  return node.kind === SyntaxKind.LabelStatement;
275
320
  }
276
- exports.isLabelStatement = isLabelStatement;
277
321
  function createLabelStatement(name, tsOriginal) {
278
322
  const statement = createNode(SyntaxKind.LabelStatement, tsOriginal);
279
323
  statement.name = name;
280
324
  return statement;
281
325
  }
282
- exports.createLabelStatement = createLabelStatement;
283
326
  function isReturnStatement(node) {
284
327
  return node.kind === SyntaxKind.ReturnStatement;
285
328
  }
286
- exports.isReturnStatement = isReturnStatement;
287
329
  function createReturnStatement(expressions, tsOriginal) {
288
330
  const statement = createNode(SyntaxKind.ReturnStatement, tsOriginal);
289
331
  statement.expressions = expressions;
290
332
  return statement;
291
333
  }
292
- exports.createReturnStatement = createReturnStatement;
293
334
  function isBreakStatement(node) {
294
335
  return node.kind === SyntaxKind.BreakStatement;
295
336
  }
296
- exports.isBreakStatement = isBreakStatement;
297
337
  function createBreakStatement(tsOriginal) {
298
338
  return createNode(SyntaxKind.BreakStatement, tsOriginal);
299
339
  }
300
- exports.createBreakStatement = createBreakStatement;
301
340
  function isExpressionStatement(node) {
302
341
  return node.kind === SyntaxKind.ExpressionStatement;
303
342
  }
304
- exports.isExpressionStatement = isExpressionStatement;
305
343
  function createExpressionStatement(expressions, tsOriginal) {
306
344
  const statement = createNode(SyntaxKind.ExpressionStatement, tsOriginal);
307
345
  statement.expression = expressions;
308
346
  return statement;
309
347
  }
310
- exports.createExpressionStatement = createExpressionStatement;
311
348
  function isNilLiteral(node) {
312
349
  return node.kind === SyntaxKind.NilKeyword;
313
350
  }
314
- exports.isNilLiteral = isNilLiteral;
315
351
  function createNilLiteral(tsOriginal) {
316
352
  return createNode(SyntaxKind.NilKeyword, tsOriginal);
317
353
  }
318
- exports.createNilLiteral = createNilLiteral;
319
354
  function isBooleanLiteral(node) {
320
355
  return node.kind === SyntaxKind.TrueKeyword || node.kind === SyntaxKind.FalseKeyword;
321
356
  }
322
- exports.isBooleanLiteral = isBooleanLiteral;
323
357
  function createBooleanLiteral(value, tsOriginal) {
324
358
  return createNode(value ? SyntaxKind.TrueKeyword : SyntaxKind.FalseKeyword, tsOriginal);
325
359
  }
326
- exports.createBooleanLiteral = createBooleanLiteral;
327
360
  function isDotsLiteral(node) {
328
361
  return node.kind === SyntaxKind.DotsKeyword;
329
362
  }
330
- exports.isDotsLiteral = isDotsLiteral;
331
363
  function createDotsLiteral(tsOriginal) {
332
364
  return createNode(SyntaxKind.DotsKeyword, tsOriginal);
333
365
  }
334
- exports.createDotsLiteral = createDotsLiteral;
335
366
  function isArgLiteral(node) {
336
367
  return node.kind === SyntaxKind.ArgKeyword;
337
368
  }
338
- exports.isArgLiteral = isArgLiteral;
339
369
  function createArgLiteral(tsOriginal) {
340
370
  return createNode(SyntaxKind.ArgKeyword, tsOriginal);
341
371
  }
342
- exports.createArgLiteral = createArgLiteral;
343
372
  function isNumericLiteral(node) {
344
373
  return node.kind === SyntaxKind.NumericLiteral;
345
374
  }
346
- exports.isNumericLiteral = isNumericLiteral;
347
375
  function createNumericLiteral(value, tsOriginal) {
348
376
  const expression = createNode(SyntaxKind.NumericLiteral, tsOriginal);
349
377
  expression.value = value;
350
378
  return expression;
351
379
  }
352
- exports.createNumericLiteral = createNumericLiteral;
353
380
  function isStringLiteral(node) {
354
381
  return node.kind === SyntaxKind.StringLiteral;
355
382
  }
356
- exports.isStringLiteral = isStringLiteral;
357
383
  function createStringLiteral(value, tsOriginal) {
358
384
  const expression = createNode(SyntaxKind.StringLiteral, tsOriginal);
359
385
  expression.value = value;
360
386
  return expression;
361
387
  }
362
- exports.createStringLiteral = createStringLiteral;
363
388
  function isLiteral(node) {
364
389
  return (isNilLiteral(node) ||
365
390
  isDotsLiteral(node) ||
@@ -368,11 +393,9 @@ function isLiteral(node) {
368
393
  isNumericLiteral(node) ||
369
394
  isStringLiteral(node));
370
395
  }
371
- exports.isLiteral = isLiteral;
372
396
  function isFunctionExpression(node) {
373
397
  return node.kind === SyntaxKind.FunctionExpression;
374
398
  }
375
- exports.isFunctionExpression = isFunctionExpression;
376
399
  function createFunctionExpression(body, params, dots, flags = NodeFlags.None, tsOriginal) {
377
400
  const expression = createNode(SyntaxKind.FunctionExpression, tsOriginal);
378
401
  expression.body = body;
@@ -381,43 +404,35 @@ function createFunctionExpression(body, params, dots, flags = NodeFlags.None, ts
381
404
  expression.flags = flags;
382
405
  return expression;
383
406
  }
384
- exports.createFunctionExpression = createFunctionExpression;
385
407
  function isTableFieldExpression(node) {
386
408
  return node.kind === SyntaxKind.TableFieldExpression;
387
409
  }
388
- exports.isTableFieldExpression = isTableFieldExpression;
389
410
  function createTableFieldExpression(value, key, tsOriginal) {
390
411
  const expression = createNode(SyntaxKind.TableFieldExpression, tsOriginal);
391
412
  expression.value = value;
392
413
  expression.key = key;
393
414
  return expression;
394
415
  }
395
- exports.createTableFieldExpression = createTableFieldExpression;
396
416
  function isTableExpression(node) {
397
417
  return node.kind === SyntaxKind.TableExpression;
398
418
  }
399
- exports.isTableExpression = isTableExpression;
400
419
  function createTableExpression(fields = [], tsOriginal) {
401
420
  const expression = createNode(SyntaxKind.TableExpression, tsOriginal);
402
421
  expression.fields = fields;
403
422
  return expression;
404
423
  }
405
- exports.createTableExpression = createTableExpression;
406
424
  function isUnaryExpression(node) {
407
425
  return node.kind === SyntaxKind.UnaryExpression;
408
426
  }
409
- exports.isUnaryExpression = isUnaryExpression;
410
427
  function createUnaryExpression(operand, operator, tsOriginal) {
411
428
  const expression = createNode(SyntaxKind.UnaryExpression, tsOriginal);
412
429
  expression.operand = operand;
413
430
  expression.operator = operator;
414
431
  return expression;
415
432
  }
416
- exports.createUnaryExpression = createUnaryExpression;
417
433
  function isBinaryExpression(node) {
418
434
  return node.kind === SyntaxKind.BinaryExpression;
419
435
  }
420
- exports.isBinaryExpression = isBinaryExpression;
421
436
  function createBinaryExpression(left, right, operator, tsOriginal) {
422
437
  const expression = createNode(SyntaxKind.BinaryExpression, tsOriginal);
423
438
  expression.left = left;
@@ -425,22 +440,18 @@ function createBinaryExpression(left, right, operator, tsOriginal) {
425
440
  expression.operator = operator;
426
441
  return expression;
427
442
  }
428
- exports.createBinaryExpression = createBinaryExpression;
429
443
  function isCallExpression(node) {
430
444
  return node.kind === SyntaxKind.CallExpression;
431
445
  }
432
- exports.isCallExpression = isCallExpression;
433
446
  function createCallExpression(expression, params, tsOriginal) {
434
447
  const callExpression = createNode(SyntaxKind.CallExpression, tsOriginal);
435
448
  callExpression.expression = expression;
436
449
  callExpression.params = params;
437
450
  return callExpression;
438
451
  }
439
- exports.createCallExpression = createCallExpression;
440
452
  function isMethodCallExpression(node) {
441
453
  return node.kind === SyntaxKind.MethodCallExpression;
442
454
  }
443
- exports.isMethodCallExpression = isMethodCallExpression;
444
455
  function createMethodCallExpression(prefixExpression, name, params, tsOriginal) {
445
456
  const callExpression = createNode(SyntaxKind.MethodCallExpression, tsOriginal);
446
457
  callExpression.prefixExpression = prefixExpression;
@@ -448,11 +459,9 @@ function createMethodCallExpression(prefixExpression, name, params, tsOriginal)
448
459
  callExpression.params = params;
449
460
  return callExpression;
450
461
  }
451
- exports.createMethodCallExpression = createMethodCallExpression;
452
462
  function isIdentifier(node) {
453
463
  return node.kind === SyntaxKind.Identifier;
454
464
  }
455
- exports.isIdentifier = isIdentifier;
456
465
  function createIdentifier(text, tsOriginal, symbolId, originalName) {
457
466
  const expression = createNode(SyntaxKind.Identifier, tsOriginal);
458
467
  expression.exportable = true;
@@ -461,38 +470,31 @@ function createIdentifier(text, tsOriginal, symbolId, originalName) {
461
470
  expression.originalName = originalName;
462
471
  return expression;
463
472
  }
464
- exports.createIdentifier = createIdentifier;
465
473
  function cloneIdentifier(identifier, tsOriginal) {
466
474
  return createIdentifier(identifier.text, tsOriginal, identifier.symbolId, identifier.originalName);
467
475
  }
468
- exports.cloneIdentifier = cloneIdentifier;
469
476
  function createAnonymousIdentifier(tsOriginal) {
470
477
  const expression = createNode(SyntaxKind.Identifier, tsOriginal);
471
478
  expression.exportable = false;
472
479
  expression.text = "____";
473
480
  return expression;
474
481
  }
475
- exports.createAnonymousIdentifier = createAnonymousIdentifier;
476
482
  function isTableIndexExpression(node) {
477
483
  return node.kind === SyntaxKind.TableIndexExpression;
478
484
  }
479
- exports.isTableIndexExpression = isTableIndexExpression;
480
485
  function createTableIndexExpression(table, index, tsOriginal) {
481
486
  const expression = createNode(SyntaxKind.TableIndexExpression, tsOriginal);
482
487
  expression.table = table;
483
488
  expression.index = index;
484
489
  return expression;
485
490
  }
486
- exports.createTableIndexExpression = createTableIndexExpression;
487
491
  function isAssignmentLeftHandSideExpression(node) {
488
492
  return isIdentifier(node) || isTableIndexExpression(node);
489
493
  }
490
- exports.isAssignmentLeftHandSideExpression = isAssignmentLeftHandSideExpression;
491
494
  function isFunctionDefinition(statement) {
492
495
  var _a;
493
496
  return statement.left.length === 1 && ((_a = statement.right) === null || _a === void 0 ? void 0 : _a.length) === 1 && isFunctionExpression(statement.right[0]);
494
497
  }
495
- exports.isFunctionDefinition = isFunctionDefinition;
496
498
  function isInlineFunctionExpression(expression) {
497
499
  var _a;
498
500
  return (((_a = expression.body.statements) === null || _a === void 0 ? void 0 : _a.length) === 1 &&
@@ -500,15 +502,12 @@ function isInlineFunctionExpression(expression) {
500
502
  expression.body.statements[0].expressions !== undefined &&
501
503
  (expression.flags & NodeFlags.Inline) !== 0);
502
504
  }
503
- exports.isInlineFunctionExpression = isInlineFunctionExpression;
504
505
  function isParenthesizedExpression(node) {
505
506
  return node.kind === SyntaxKind.ParenthesizedExpression;
506
507
  }
507
- exports.isParenthesizedExpression = isParenthesizedExpression;
508
508
  function createParenthesizedExpression(expression, tsOriginal) {
509
509
  const parenthesizedExpression = createNode(SyntaxKind.ParenthesizedExpression, tsOriginal);
510
510
  parenthesizedExpression.expression = expression;
511
511
  return parenthesizedExpression;
512
512
  }
513
- exports.createParenthesizedExpression = createParenthesizedExpression;
514
513
  //# sourceMappingURL=LuaAST.js.map
package/dist/LuaLib.d.ts CHANGED
@@ -60,6 +60,7 @@ export declare enum LuaLibFeature {
60
60
  MathAtan2 = "MathAtan2",
61
61
  MathModf = "MathModf",
62
62
  MathSign = "MathSign",
63
+ MathTrunc = "MathTrunc",
63
64
  New = "New",
64
65
  Number = "Number",
65
66
  NumberIsFinite = "NumberIsFinite",
package/dist/LuaLib.js CHANGED
@@ -1,6 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findUsedLualibFeatures = exports.buildMinimalLualibBundle = exports.getLualibBundleReturn = exports.getLuaLibBundle = exports.loadImportedLualibFeatures = exports.loadInlineLualibFeatures = exports.resolveRecursiveLualibFeatures = exports.readLuaLibFeature = exports.getLuaLibExportToFeatureMap = exports.getLuaLibModulesInfo = exports.luaLibModulesInfoFileName = exports.resolveLuaLibDir = exports.LuaLibFeature = void 0;
3
+ exports.luaLibModulesInfoFileName = exports.LuaLibFeature = void 0;
4
+ exports.resolveLuaLibDir = resolveLuaLibDir;
5
+ exports.getLuaLibModulesInfo = getLuaLibModulesInfo;
6
+ exports.getLuaLibExportToFeatureMap = getLuaLibExportToFeatureMap;
7
+ exports.readLuaLibFeature = readLuaLibFeature;
8
+ exports.resolveRecursiveLualibFeatures = resolveRecursiveLualibFeatures;
9
+ exports.loadInlineLualibFeatures = loadInlineLualibFeatures;
10
+ exports.loadImportedLualibFeatures = loadImportedLualibFeatures;
11
+ exports.getLuaLibBundle = getLuaLibBundle;
12
+ exports.getLualibBundleReturn = getLualibBundleReturn;
13
+ exports.buildMinimalLualibBundle = buildMinimalLualibBundle;
14
+ exports.findUsedLualibFeatures = findUsedLualibFeatures;
4
15
  const path = require("path");
5
16
  const lua = require("./LuaAST");
6
17
  const CompilerOptions_1 = require("./CompilerOptions");
@@ -65,6 +76,7 @@ var LuaLibFeature;
65
76
  LuaLibFeature["MathAtan2"] = "MathAtan2";
66
77
  LuaLibFeature["MathModf"] = "MathModf";
67
78
  LuaLibFeature["MathSign"] = "MathSign";
79
+ LuaLibFeature["MathTrunc"] = "MathTrunc";
68
80
  LuaLibFeature["New"] = "New";
69
81
  LuaLibFeature["Number"] = "Number";
70
82
  LuaLibFeature["NumberIsFinite"] = "NumberIsFinite";
@@ -128,7 +140,6 @@ function resolveLuaLibDir(luaTarget) {
128
140
  const luaLibDir = luaTarget === CompilerOptions_1.LuaTarget.Lua50 ? "5.0" : "universal";
129
141
  return path.resolve(__dirname, path.join("..", "dist", "lualib", luaLibDir));
130
142
  }
131
- exports.resolveLuaLibDir = resolveLuaLibDir;
132
143
  exports.luaLibModulesInfoFileName = "lualib_module_info.json";
133
144
  const luaLibModulesInfo = new Map();
134
145
  function getLuaLibModulesInfo(luaTarget, emitHost) {
@@ -144,7 +155,6 @@ function getLuaLibModulesInfo(luaTarget, emitHost) {
144
155
  }
145
156
  return luaLibModulesInfo.get(luaTarget);
146
157
  }
147
- exports.getLuaLibModulesInfo = getLuaLibModulesInfo;
148
158
  // This caches the names of lualib exports to their LuaLibFeature, avoiding a linear search for every lookup
149
159
  const lualibExportToFeature = new Map();
150
160
  function getLuaLibExportToFeatureMap(luaTarget, emitHost) {
@@ -160,7 +170,6 @@ function getLuaLibExportToFeatureMap(luaTarget, emitHost) {
160
170
  }
161
171
  return lualibExportToFeature.get(luaTarget);
162
172
  }
163
- exports.getLuaLibExportToFeatureMap = getLuaLibExportToFeatureMap;
164
173
  const lualibFeatureCache = new Map();
165
174
  function readLuaLibFeature(feature, luaTarget, emitHost) {
166
175
  const featureMap = (0, utils_1.getOrUpdate)(lualibFeatureCache, luaTarget, () => new Map());
@@ -174,7 +183,6 @@ function readLuaLibFeature(feature, luaTarget, emitHost) {
174
183
  }
175
184
  return featureMap.get(feature);
176
185
  }
177
- exports.readLuaLibFeature = readLuaLibFeature;
178
186
  function resolveRecursiveLualibFeatures(features, luaTarget, emitHost, luaLibModulesInfo = getLuaLibModulesInfo(luaTarget, emitHost)) {
179
187
  const loadedFeatures = new Set();
180
188
  const result = [];
@@ -194,13 +202,11 @@ function resolveRecursiveLualibFeatures(features, luaTarget, emitHost, luaLibMod
194
202
  }
195
203
  return result;
196
204
  }
197
- exports.resolveRecursiveLualibFeatures = resolveRecursiveLualibFeatures;
198
205
  function loadInlineLualibFeatures(features, luaTarget, emitHost) {
199
206
  return resolveRecursiveLualibFeatures(features, luaTarget, emitHost)
200
207
  .map(feature => readLuaLibFeature(feature, luaTarget, emitHost))
201
208
  .join("\n");
202
209
  }
203
- exports.loadInlineLualibFeatures = loadInlineLualibFeatures;
204
210
  function loadImportedLualibFeatures(features, luaTarget, emitHost) {
205
211
  const luaLibModuleInfo = getLuaLibModulesInfo(luaTarget, emitHost);
206
212
  const imports = Array.from(features).flatMap(feature => luaLibModuleInfo[feature].exports);
@@ -219,7 +225,6 @@ function loadImportedLualibFeatures(features, luaTarget, emitHost) {
219
225
  }
220
226
  return statements;
221
227
  }
222
- exports.loadImportedLualibFeatures = loadImportedLualibFeatures;
223
228
  const luaLibBundleContent = new Map();
224
229
  function getLuaLibBundle(luaTarget, emitHost) {
225
230
  const lualibPath = path.join(resolveLuaLibDir(luaTarget), "lualib_bundle.lua");
@@ -234,18 +239,15 @@ function getLuaLibBundle(luaTarget, emitHost) {
234
239
  }
235
240
  return luaLibBundleContent.get(lualibPath);
236
241
  }
237
- exports.getLuaLibBundle = getLuaLibBundle;
238
242
  function getLualibBundleReturn(exportedValues) {
239
243
  return `\nreturn {\n${exportedValues.map(exportName => ` ${exportName} = ${exportName}`).join(",\n")}\n}\n`;
240
244
  }
241
- exports.getLualibBundleReturn = getLualibBundleReturn;
242
245
  function buildMinimalLualibBundle(features, luaTarget, emitHost) {
243
246
  const code = loadInlineLualibFeatures(features, luaTarget, emitHost);
244
247
  const moduleInfo = getLuaLibModulesInfo(luaTarget, emitHost);
245
248
  const exports = Array.from(features).flatMap(feature => moduleInfo[feature].exports);
246
249
  return code + getLualibBundleReturn(exports);
247
250
  }
248
- exports.buildMinimalLualibBundle = buildMinimalLualibBundle;
249
251
  function findUsedLualibFeatures(luaTarget, emitHost, luaContents) {
250
252
  const features = new Set();
251
253
  const exportToFeatureMap = getLuaLibExportToFeatureMap(luaTarget, emitHost);
@@ -265,5 +267,4 @@ function findUsedLualibFeatures(luaTarget, emitHost, luaContents) {
265
267
  }
266
268
  return features;
267
269
  }
268
- exports.findUsedLualibFeatures = findUsedLualibFeatures;
269
270
  //# sourceMappingURL=LuaLib.js.map
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LuaPrinter = exports.createPrinter = exports.tstlHeader = exports.escapeString = void 0;
3
+ exports.LuaPrinter = exports.tstlHeader = exports.escapeString = void 0;
4
+ exports.createPrinter = createPrinter;
4
5
  const path = require("path");
5
6
  const source_map_1 = require("source-map");
6
7
  const CompilerOptions_1 = require("./CompilerOptions");
@@ -71,7 +72,6 @@ function createPrinter(printers) {
71
72
  throw new Error("Only one plugin can specify 'printer'");
72
73
  }
73
74
  }
74
- exports.createPrinter = createPrinter;
75
75
  class LuaPrinter {
76
76
  constructor(emitHost, program, sourceFile) {
77
77
  this.emitHost = emitHost;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getHelpString = exports.versionString = exports.version = void 0;
3
+ exports.versionString = exports.version = void 0;
4
+ exports.getHelpString = getHelpString;
4
5
  const parse_1 = require("./parse");
5
6
  exports.version = require("../../package.json").version;
6
7
  exports.versionString = `Version ${exports.version}`;
@@ -27,5 +28,4 @@ function getHelpString() {
27
28
  }
28
29
  return result;
29
30
  }
30
- exports.getHelpString = getHelpString;
31
31
  //# sourceMappingURL=information.js.map
package/dist/cli/parse.js CHANGED
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseCommandLine = exports.updateParsedConfigFile = exports.optionDeclarations = void 0;
3
+ exports.optionDeclarations = void 0;
4
+ exports.updateParsedConfigFile = updateParsedConfigFile;
5
+ exports.parseCommandLine = parseCommandLine;
4
6
  const ts = require("typescript");
5
7
  const CompilerOptions_1 = require("../CompilerOptions");
6
8
  const cliDiagnostics = require("./diagnostics");
@@ -115,11 +117,9 @@ function updateParsedConfigFile(parsedConfigFile) {
115
117
  }
116
118
  return parsedConfigFile;
117
119
  }
118
- exports.updateParsedConfigFile = updateParsedConfigFile;
119
120
  function parseCommandLine(args) {
120
121
  return updateParsedCommandLine(ts.parseCommandLine(args), args);
121
122
  }
122
- exports.parseCommandLine = parseCommandLine;
123
123
  function updateParsedCommandLine(parsedCommandLine, args) {
124
124
  for (let i = 0; i < args.length; i++) {
125
125
  if (!args[i].startsWith("-"))