typescript-to-lua 1.0.1 → 1.3.0

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 (194) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/CompilerOptions.d.ts +4 -3
  3. package/dist/LuaAST.d.ts +1 -0
  4. package/dist/LuaAST.js +14 -6
  5. package/dist/LuaLib.d.ts +4 -3
  6. package/dist/LuaLib.js +6 -5
  7. package/dist/LuaPrinter.d.ts +15 -4
  8. package/dist/LuaPrinter.js +81 -29
  9. package/dist/cli/diagnostics.js +2 -2
  10. package/dist/cli/parse.d.ts +1 -1
  11. package/dist/cli/parse.js +14 -0
  12. package/dist/cli/report.js +1 -1
  13. package/dist/cli/tsconfig.js +4 -4
  14. package/dist/lualib/ArrayFlat.lua +1 -1
  15. package/dist/lualib/ArrayFlatMap.lua +1 -1
  16. package/dist/lualib/ArrayIsArray.lua +1 -1
  17. package/dist/lualib/ArrayReduce.lua +7 -1
  18. package/dist/lualib/ArrayReduceRight.lua +7 -1
  19. package/dist/lualib/ArraySetLength.lua +1 -1
  20. package/dist/lualib/ArraySplice.lua +5 -5
  21. package/dist/lualib/Await.lua +43 -19
  22. package/dist/lualib/CloneDescriptor.lua +7 -7
  23. package/dist/lualib/Decorate.lua +1 -1
  24. package/dist/lualib/DelegatedYield.lua +1 -3
  25. package/dist/lualib/Delete.lua +6 -6
  26. package/dist/lualib/Error.lua +47 -44
  27. package/dist/lualib/Generator.lua +1 -5
  28. package/dist/lualib/InstanceOf.lua +1 -1
  29. package/dist/lualib/InstanceOfObject.lua +1 -1
  30. package/dist/lualib/Map.lua +130 -134
  31. package/dist/lualib/Number.lua +1 -1
  32. package/dist/lualib/NumberIsFinite.lua +1 -1
  33. package/dist/lualib/NumberToString.lua +3 -5
  34. package/dist/lualib/ObjectDefineProperty.lua +40 -8
  35. package/dist/lualib/ParseFloat.lua +9 -5
  36. package/dist/lualib/ParseInt.lua +15 -3
  37. package/dist/lualib/Promise.lua +44 -26
  38. package/dist/lualib/Set.lua +119 -123
  39. package/dist/lualib/SetDescriptor.lua +7 -1
  40. package/dist/lualib/SourceMapTraceBack.lua +19 -9
  41. package/dist/lualib/SparseArrayNew.lua +5 -0
  42. package/dist/lualib/SparseArrayPush.lua +9 -0
  43. package/dist/lualib/SparseArraySpread.lua +4 -0
  44. package/dist/lualib/StringAccess.lua +1 -1
  45. package/dist/lualib/StringCharCodeAt.lua +1 -1
  46. package/dist/lualib/StringEndsWith.lua +2 -2
  47. package/dist/lualib/StringPadEnd.lua +2 -2
  48. package/dist/lualib/StringPadStart.lua +2 -2
  49. package/dist/lualib/StringReplace.lua +12 -11
  50. package/dist/lualib/StringReplaceAll.lua +35 -0
  51. package/dist/lualib/StringSlice.lua +2 -2
  52. package/dist/lualib/StringSplit.lua +3 -3
  53. package/dist/lualib/StringStartsWith.lua +1 -1
  54. package/dist/lualib/StringSubstr.lua +1 -1
  55. package/dist/lualib/StringSubstring.lua +2 -2
  56. package/dist/lualib/Symbol.lua +3 -5
  57. package/dist/lualib/WeakMap.lua +40 -42
  58. package/dist/lualib/WeakSet.lua +36 -38
  59. package/dist/lualib/lualib_bundle.lua +876 -745
  60. package/dist/transformation/builtins/array.js +29 -30
  61. package/dist/transformation/builtins/console.js +2 -2
  62. package/dist/transformation/builtins/function.js +14 -12
  63. package/dist/transformation/builtins/global.js +8 -8
  64. package/dist/transformation/builtins/index.d.ts +1 -1
  65. package/dist/transformation/builtins/index.js +69 -36
  66. package/dist/transformation/builtins/math.js +4 -4
  67. package/dist/transformation/builtins/number.js +7 -7
  68. package/dist/transformation/builtins/object.d.ts +2 -1
  69. package/dist/transformation/builtins/object.js +12 -13
  70. package/dist/transformation/builtins/promise.js +9 -9
  71. package/dist/transformation/builtins/string.js +32 -31
  72. package/dist/transformation/builtins/symbol.js +3 -3
  73. package/dist/transformation/context/context.d.ts +12 -0
  74. package/dist/transformation/context/context.js +105 -6
  75. package/dist/transformation/index.js +1 -1
  76. package/dist/transformation/utils/annotations.d.ts +1 -3
  77. package/dist/transformation/utils/annotations.js +0 -2
  78. package/dist/transformation/utils/assignment-validation.js +8 -7
  79. package/dist/transformation/utils/diagnostics.d.ts +9 -0
  80. package/dist/transformation/utils/diagnostics.js +8 -5
  81. package/dist/transformation/utils/export.d.ts +3 -2
  82. package/dist/transformation/utils/export.js +14 -7
  83. package/dist/transformation/utils/function-context.js +8 -8
  84. package/dist/transformation/utils/language-extensions.d.ts +2 -0
  85. package/dist/transformation/utils/language-extensions.js +7 -1
  86. package/dist/transformation/utils/lua-ast.d.ts +0 -1
  87. package/dist/transformation/utils/lua-ast.js +25 -35
  88. package/dist/transformation/utils/lualib.js +1 -1
  89. package/dist/transformation/utils/preceding-statements.d.ts +3 -0
  90. package/dist/transformation/utils/preceding-statements.js +11 -0
  91. package/dist/transformation/utils/safe-names.d.ts +4 -2
  92. package/dist/transformation/utils/safe-names.js +13 -7
  93. package/dist/transformation/utils/scope.d.ts +9 -1
  94. package/dist/transformation/utils/scope.js +78 -40
  95. package/dist/transformation/utils/symbols.js +6 -6
  96. package/dist/transformation/utils/typescript/index.d.ts +1 -0
  97. package/dist/transformation/utils/typescript/index.js +16 -1
  98. package/dist/transformation/utils/typescript/nodes.d.ts +2 -0
  99. package/dist/transformation/utils/typescript/nodes.js +21 -1
  100. package/dist/transformation/utils/typescript/types.d.ts +3 -1
  101. package/dist/transformation/utils/typescript/types.js +40 -13
  102. package/dist/transformation/visitors/access.d.ts +3 -0
  103. package/dist/transformation/visitors/access.js +74 -47
  104. package/dist/transformation/visitors/async-await.js +5 -4
  105. package/dist/transformation/visitors/binary-expression/assignments.d.ts +3 -2
  106. package/dist/transformation/visitors/binary-expression/assignments.js +86 -77
  107. package/dist/transformation/visitors/binary-expression/bit.js +4 -4
  108. package/dist/transformation/visitors/binary-expression/compound.d.ts +5 -4
  109. package/dist/transformation/visitors/binary-expression/compound.js +69 -71
  110. package/dist/transformation/visitors/binary-expression/destructuring-assignments.d.ts +2 -2
  111. package/dist/transformation/visitors/binary-expression/destructuring-assignments.js +65 -36
  112. package/dist/transformation/visitors/binary-expression/index.d.ts +3 -1
  113. package/dist/transformation/visitors/binary-expression/index.js +84 -42
  114. package/dist/transformation/visitors/block.js +6 -6
  115. package/dist/transformation/visitors/break-continue.js +2 -2
  116. package/dist/transformation/visitors/call.d.ts +3 -2
  117. package/dist/transformation/visitors/call.js +130 -143
  118. package/dist/transformation/visitors/class/decorators.js +3 -3
  119. package/dist/transformation/visitors/class/index.js +43 -39
  120. package/dist/transformation/visitors/class/members/accessors.js +6 -6
  121. package/dist/transformation/visitors/class/members/constructor.js +7 -7
  122. package/dist/transformation/visitors/class/members/fields.js +6 -6
  123. package/dist/transformation/visitors/class/members/method.js +6 -6
  124. package/dist/transformation/visitors/class/new.js +14 -16
  125. package/dist/transformation/visitors/class/setup.js +11 -11
  126. package/dist/transformation/visitors/class/utils.js +2 -2
  127. package/dist/transformation/visitors/conditional.js +36 -43
  128. package/dist/transformation/visitors/delete.js +8 -4
  129. package/dist/transformation/visitors/enum.js +8 -8
  130. package/dist/transformation/visitors/errors.js +35 -33
  131. package/dist/transformation/visitors/expression-list.d.ts +7 -0
  132. package/dist/transformation/visitors/expression-list.js +120 -0
  133. package/dist/transformation/visitors/expression-statement.js +10 -6
  134. package/dist/transformation/visitors/function.d.ts +2 -0
  135. package/dist/transformation/visitors/function.js +80 -33
  136. package/dist/transformation/visitors/identifier.js +26 -22
  137. package/dist/transformation/visitors/index.js +2 -2
  138. package/dist/transformation/visitors/language-extensions/iterable.js +7 -7
  139. package/dist/transformation/visitors/language-extensions/multi.d.ts +1 -1
  140. package/dist/transformation/visitors/language-extensions/multi.js +3 -3
  141. package/dist/transformation/visitors/language-extensions/operators.js +6 -6
  142. package/dist/transformation/visitors/language-extensions/pairsIterable.d.ts +5 -0
  143. package/dist/transformation/visitors/language-extensions/pairsIterable.js +53 -0
  144. package/dist/transformation/visitors/language-extensions/range.js +6 -6
  145. package/dist/transformation/visitors/language-extensions/table.js +5 -5
  146. package/dist/transformation/visitors/literal.d.ts +1 -2
  147. package/dist/transformation/visitors/literal.js +87 -57
  148. package/dist/transformation/visitors/loops/do-while.js +35 -9
  149. package/dist/transformation/visitors/loops/for-in.js +4 -4
  150. package/dist/transformation/visitors/loops/for-of.js +17 -13
  151. package/dist/transformation/visitors/loops/for.js +28 -8
  152. package/dist/transformation/visitors/loops/utils.d.ts +1 -0
  153. package/dist/transformation/visitors/loops/utils.js +26 -10
  154. package/dist/transformation/visitors/modules/export.js +14 -15
  155. package/dist/transformation/visitors/modules/import.js +10 -10
  156. package/dist/transformation/visitors/namespace.js +13 -13
  157. package/dist/transformation/visitors/optional-chaining.d.ts +16 -0
  158. package/dist/transformation/visitors/optional-chaining.js +172 -0
  159. package/dist/transformation/visitors/return.d.ts +1 -0
  160. package/dist/transformation/visitors/return.js +40 -26
  161. package/dist/transformation/visitors/sourceFile.js +12 -9
  162. package/dist/transformation/visitors/spread.js +23 -16
  163. package/dist/transformation/visitors/switch.js +63 -20
  164. package/dist/transformation/visitors/template.js +10 -7
  165. package/dist/transformation/visitors/typeof.js +4 -2
  166. package/dist/transformation/visitors/typescript.js +1 -1
  167. package/dist/transformation/visitors/unary-expression.js +9 -9
  168. package/dist/transformation/visitors/variable-declaration.js +55 -32
  169. package/dist/transformation/visitors/void.d.ts +6 -0
  170. package/dist/transformation/visitors/void.js +20 -0
  171. package/dist/transpilation/bundle.d.ts +3 -0
  172. package/dist/transpilation/bundle.js +52 -10
  173. package/dist/transpilation/diagnostics.js +3 -3
  174. package/dist/transpilation/index.js +2 -2
  175. package/dist/transpilation/output-collector.js +2 -2
  176. package/dist/transpilation/plugins.js +1 -1
  177. package/dist/transpilation/resolve.js +20 -13
  178. package/dist/transpilation/transformers.js +45 -25
  179. package/dist/transpilation/transpile.js +6 -6
  180. package/dist/transpilation/transpiler.js +8 -8
  181. package/dist/transpilation/utils.js +5 -3
  182. package/dist/tstl.js +8 -8
  183. package/dist/utils.js +2 -2
  184. package/language-extensions/index.d.ts +11 -1
  185. package/package.json +15 -12
  186. package/dist/lualib/OptionalChainAccess.lua +0 -6
  187. package/dist/lualib/OptionalFunctionCall.lua +0 -6
  188. package/dist/lualib/OptionalMethodCall.lua +0 -11
  189. package/dist/transformation/utils/transform.d.ts +0 -8
  190. package/dist/transformation/utils/transform.js +0 -14
  191. package/dist/transformation/visitors/jsx/jsx.d.ts +0 -9
  192. package/dist/transformation/visitors/jsx/jsx.js +0 -237
  193. package/dist/transformation/visitors/jsx/xhtml.d.ts +0 -3
  194. package/dist/transformation/visitors/jsx/xhtml.js +0 -260
@@ -0,0 +1,35 @@
1
+ function __TS__StringReplaceAll(source, searchValue, replaceValue)
2
+ local replacer
3
+ if type(replaceValue) == "string" then
4
+ replacer = function() return replaceValue end
5
+ else
6
+ replacer = replaceValue
7
+ end
8
+ local parts = {}
9
+ local partsIndex = 1
10
+ local sub = string.sub
11
+ if #searchValue == 0 then
12
+ parts[1] = replacer(_G, "", 0, source)
13
+ partsIndex = 2
14
+ for i = 1, #source do
15
+ parts[partsIndex] = sub(source, i, i)
16
+ parts[partsIndex + 1] = replacer(_G, "", i, source)
17
+ partsIndex = partsIndex + 2
18
+ end
19
+ else
20
+ local find = string.find
21
+ local currentPos = 1
22
+ while true do
23
+ local startPos, endPos = find(source, searchValue, currentPos, true)
24
+ if not startPos then
25
+ break
26
+ end
27
+ parts[partsIndex] = sub(source, currentPos, startPos - 1)
28
+ parts[partsIndex + 1] = replacer(_G, searchValue, startPos - 1, source)
29
+ partsIndex = partsIndex + 2
30
+ currentPos = endPos + 1
31
+ end
32
+ parts[partsIndex] = sub(source, currentPos)
33
+ end
34
+ return table.concat(parts)
35
+ end
@@ -1,5 +1,5 @@
1
1
  function __TS__StringSlice(self, start, ____end)
2
- if (start == nil) or (start ~= start) then
2
+ if start == nil or start ~= start then
3
3
  start = 0
4
4
  end
5
5
  if ____end ~= ____end then
@@ -8,7 +8,7 @@ function __TS__StringSlice(self, start, ____end)
8
8
  if start >= 0 then
9
9
  start = start + 1
10
10
  end
11
- if (____end ~= nil) and (____end < 0) then
11
+ if ____end ~= nil and ____end < 0 then
12
12
  ____end = ____end - 1
13
13
  end
14
14
  return string.sub(self, start, ____end)
@@ -8,8 +8,8 @@ function __TS__StringSplit(source, separator, limit)
8
8
  local out = {}
9
9
  local index = 0
10
10
  local count = 0
11
- if (separator == nil) or (separator == "") then
12
- while (index < (#source - 1)) and (count < limit) do
11
+ if separator == nil or separator == "" then
12
+ while index < #source - 1 and count < limit do
13
13
  out[count + 1] = __TS__StringAccess(source, index)
14
14
  count = count + 1
15
15
  index = index + 1
@@ -17,7 +17,7 @@ function __TS__StringSplit(source, separator, limit)
17
17
  else
18
18
  local separatorLength = #separator
19
19
  local nextIndex = (string.find(source, separator, nil, true) or 0) - 1
20
- while (nextIndex >= 0) and (count < limit) do
20
+ while nextIndex >= 0 and count < limit do
21
21
  out[count + 1] = __TS__StringSubstring(source, index, nextIndex)
22
22
  count = count + 1
23
23
  index = nextIndex + separatorLength
@@ -1,5 +1,5 @@
1
1
  function __TS__StringStartsWith(self, searchString, position)
2
- if (position == nil) or (position < 0) then
2
+ if position == nil or position < 0 then
3
3
  position = 0
4
4
  end
5
5
  return string.sub(self, position + 1, #searchString + position) == searchString
@@ -3,7 +3,7 @@ function __TS__StringSubstr(self, from, length)
3
3
  from = 0
4
4
  end
5
5
  if length ~= nil then
6
- if (length ~= length) or (length <= 0) then
6
+ if length ~= length or length <= 0 then
7
7
  return ""
8
8
  end
9
9
  length = length + from
@@ -2,7 +2,7 @@ function __TS__StringSubstring(self, start, ____end)
2
2
  if ____end ~= ____end then
3
3
  ____end = 0
4
4
  end
5
- if (____end ~= nil) and (start > ____end) then
5
+ if ____end ~= nil and start > ____end then
6
6
  start, ____end = ____end, start
7
7
  end
8
8
  if start >= 0 then
@@ -10,7 +10,7 @@ function __TS__StringSubstring(self, start, ____end)
10
10
  else
11
11
  start = 1
12
12
  end
13
- if (____end ~= nil) and (____end < 0) then
13
+ if ____end ~= nil and ____end < 0 then
14
14
  ____end = 0
15
15
  end
16
16
  return string.sub(self, start, ____end)
@@ -1,8 +1,6 @@
1
- ____symbolMetatable = {
2
- __tostring = function(self)
3
- return ("Symbol(" .. (self.description or "")) .. ")"
4
- end
5
- }
1
+ ____symbolMetatable = {__tostring = function(self)
2
+ return ("Symbol(" .. (self.description or "")) .. ")"
3
+ end}
6
4
  function __TS__Symbol(description)
7
5
  return setmetatable({description = description}, ____symbolMetatable)
8
6
  end
@@ -1,45 +1,43 @@
1
- WeakMap = (function()
2
- local WeakMap = __TS__Class()
3
- WeakMap.name = "WeakMap"
4
- function WeakMap.prototype.____constructor(self, entries)
5
- self[Symbol.toStringTag] = "WeakMap"
6
- self.items = {}
7
- setmetatable(self.items, {__mode = "k"})
8
- if entries == nil then
9
- return
10
- end
11
- local iterable = entries
12
- if iterable[Symbol.iterator] then
13
- local iterator = iterable[Symbol.iterator](iterable)
14
- while true do
15
- local result = iterator:next()
16
- if result.done then
17
- break
18
- end
19
- local value = result.value
20
- self.items[value[1]] = value[2]
21
- end
22
- else
23
- for ____, kvp in ipairs(entries) do
24
- self.items[kvp[1]] = kvp[2]
1
+ WeakMap = __TS__Class()
2
+ WeakMap.name = "WeakMap"
3
+ function WeakMap.prototype.____constructor(self, entries)
4
+ self[Symbol.toStringTag] = "WeakMap"
5
+ self.items = {}
6
+ setmetatable(self.items, {__mode = "k"})
7
+ if entries == nil then
8
+ return
9
+ end
10
+ local iterable = entries
11
+ if iterable[Symbol.iterator] then
12
+ local iterator = iterable[Symbol.iterator](iterable)
13
+ while true do
14
+ local result = iterator:next()
15
+ if result.done then
16
+ break
25
17
  end
18
+ local value = result.value
19
+ self.items[value[1]] = value[2]
20
+ end
21
+ else
22
+ for ____, kvp in ipairs(entries) do
23
+ self.items[kvp[1]] = kvp[2]
26
24
  end
27
25
  end
28
- function WeakMap.prototype.delete(self, key)
29
- local contains = self:has(key)
30
- self.items[key] = nil
31
- return contains
32
- end
33
- function WeakMap.prototype.get(self, key)
34
- return self.items[key]
35
- end
36
- function WeakMap.prototype.has(self, key)
37
- return self.items[key] ~= nil
38
- end
39
- function WeakMap.prototype.set(self, key, value)
40
- self.items[key] = value
41
- return self
42
- end
43
- WeakMap[Symbol.species] = WeakMap
44
- return WeakMap
45
- end)()
26
+ end
27
+ function WeakMap.prototype.delete(self, key)
28
+ local contains = self:has(key)
29
+ self.items[key] = nil
30
+ return contains
31
+ end
32
+ function WeakMap.prototype.get(self, key)
33
+ return self.items[key]
34
+ end
35
+ function WeakMap.prototype.has(self, key)
36
+ return self.items[key] ~= nil
37
+ end
38
+ function WeakMap.prototype.set(self, key, value)
39
+ self.items[key] = value
40
+ return self
41
+ end
42
+ WeakMap[Symbol.species] = WeakMap
43
+ WeakMap = WeakMap
@@ -1,41 +1,39 @@
1
- WeakSet = (function()
2
- local WeakSet = __TS__Class()
3
- WeakSet.name = "WeakSet"
4
- function WeakSet.prototype.____constructor(self, values)
5
- self[Symbol.toStringTag] = "WeakSet"
6
- self.items = {}
7
- setmetatable(self.items, {__mode = "k"})
8
- if values == nil then
9
- return
10
- end
11
- local iterable = values
12
- if iterable[Symbol.iterator] then
13
- local iterator = iterable[Symbol.iterator](iterable)
14
- while true do
15
- local result = iterator:next()
16
- if result.done then
17
- break
18
- end
19
- self.items[result.value] = true
20
- end
21
- else
22
- for ____, value in ipairs(values) do
23
- self.items[value] = true
1
+ WeakSet = __TS__Class()
2
+ WeakSet.name = "WeakSet"
3
+ function WeakSet.prototype.____constructor(self, values)
4
+ self[Symbol.toStringTag] = "WeakSet"
5
+ self.items = {}
6
+ setmetatable(self.items, {__mode = "k"})
7
+ if values == nil then
8
+ return
9
+ end
10
+ local iterable = values
11
+ if iterable[Symbol.iterator] then
12
+ local iterator = iterable[Symbol.iterator](iterable)
13
+ while true do
14
+ local result = iterator:next()
15
+ if result.done then
16
+ break
24
17
  end
18
+ self.items[result.value] = true
19
+ end
20
+ else
21
+ for ____, value in ipairs(values) do
22
+ self.items[value] = true
25
23
  end
26
24
  end
27
- function WeakSet.prototype.add(self, value)
28
- self.items[value] = true
29
- return self
30
- end
31
- function WeakSet.prototype.delete(self, value)
32
- local contains = self:has(value)
33
- self.items[value] = nil
34
- return contains
35
- end
36
- function WeakSet.prototype.has(self, value)
37
- return self.items[value] == true
38
- end
39
- WeakSet[Symbol.species] = WeakSet
40
- return WeakSet
41
- end)()
25
+ end
26
+ function WeakSet.prototype.add(self, value)
27
+ self.items[value] = true
28
+ return self
29
+ end
30
+ function WeakSet.prototype.delete(self, value)
31
+ local contains = self:has(value)
32
+ self.items[value] = nil
33
+ return contains
34
+ end
35
+ function WeakSet.prototype.has(self, value)
36
+ return self.items[value] == true
37
+ end
38
+ WeakSet[Symbol.species] = WeakSet
39
+ WeakSet = WeakSet