crankscript 0.16.1 → 0.18.0-beta.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 (283) hide show
  1. package/CHANGELOG.md +16 -4
  2. package/assets/ImportMap/ImportMap.js +26 -65
  3. package/assets/ImportMap/ImportMap.js.map +1 -1
  4. package/assets/ImportMap/index.js +3 -6
  5. package/assets/ImportMap/index.js.map +1 -1
  6. package/assets/beforeEmit/getBeforeEmit.js +11 -16
  7. package/assets/beforeEmit/getBeforeEmit.js.map +1 -1
  8. package/assets/beforeEmit/index.js +3 -6
  9. package/assets/beforeEmit/index.js.map +1 -1
  10. package/assets/beforeEmit/withAutomaticImportWarning.js +4 -11
  11. package/assets/beforeEmit/withAutomaticImportWarning.js.map +1 -1
  12. package/assets/index.js +18 -28
  13. package/assets/index.js.map +1 -1
  14. package/assets/transformCallExpression/getTransformCallExpression.js +66 -18
  15. package/assets/transformCallExpression/getTransformCallExpression.js.map +1 -1
  16. package/assets/transformCallExpression/index.js +3 -6
  17. package/assets/transformCallExpression/index.js.map +1 -1
  18. package/assets/transformClassDeclaration/createClasCall.js +11 -24
  19. package/assets/transformClassDeclaration/createClasCall.js.map +1 -1
  20. package/assets/transformClassDeclaration/getExportedClassDeclarationStatements.js +14 -15
  21. package/assets/transformClassDeclaration/getExportedClassDeclarationStatements.js.map +1 -1
  22. package/assets/transformClassDeclaration/getTransformClassDeclaration.js +47 -43
  23. package/assets/transformClassDeclaration/getTransformClassDeclaration.js.map +1 -1
  24. package/assets/transformClassDeclaration/index.js +3 -6
  25. package/assets/transformClassDeclaration/index.js.map +1 -1
  26. package/assets/transformClassDeclaration/transformConstructor.js +44 -56
  27. package/assets/transformClassDeclaration/transformConstructor.js.map +1 -1
  28. package/assets/transformClassDeclaration/transformMethodDeclaration.js +12 -20
  29. package/assets/transformClassDeclaration/transformMethodDeclaration.js.map +1 -1
  30. package/assets/transformClassDeclaration/transformPropertyName.js +14 -19
  31. package/assets/transformClassDeclaration/transformPropertyName.js.map +1 -1
  32. package/assets/transformExportDeclaration/getTransformExportDeclaration.d.ts +6 -0
  33. package/assets/transformExportDeclaration/getTransformExportDeclaration.js +52 -0
  34. package/assets/transformExportDeclaration/getTransformExportDeclaration.js.map +1 -0
  35. package/assets/transformNewExpression/index.js +3 -6
  36. package/assets/transformNewExpression/index.js.map +1 -1
  37. package/assets/transformNewExpression/isBuiltinNewExpression.js +11 -15
  38. package/assets/transformNewExpression/isBuiltinNewExpression.js.map +1 -1
  39. package/assets/transformNewExpression/transformNewExpression.js +12 -23
  40. package/assets/transformNewExpression/transformNewExpression.js.map +1 -1
  41. package/assets/transformPropertyAccessExpression/a.js +24 -0
  42. package/assets/transformPropertyAccessExpression/a.js.map +1 -0
  43. package/assets/transformPropertyAccessExpression/getTransformPropertyAccessExpression.js +6 -13
  44. package/assets/transformPropertyAccessExpression/getTransformPropertyAccessExpression.js.map +1 -1
  45. package/assets/transformPropertyAccessExpression/index.js +3 -6
  46. package/assets/transformPropertyAccessExpression/index.js.map +1 -1
  47. package/assets/transformSuperExpression/index.js +3 -6
  48. package/assets/transformSuperExpression/index.js.map +1 -1
  49. package/assets/transformSuperExpression/transformSuperExpression.js +8 -16
  50. package/assets/transformSuperExpression/transformSuperExpression.js.map +1 -1
  51. package/assets/types.js +1 -4
  52. package/assets/types.js.map +1 -1
  53. package/package.json +8 -5
  54. package/src/commands/CompileCommand/CompileCommand.d.ts +1 -1
  55. package/src/commands/CompileCommand/CompileCommand.js +3 -10
  56. package/src/commands/CompileCommand/CompileCommand.js.map +1 -1
  57. package/src/commands/CompileCommand/components/Compile.d.ts +1 -1
  58. package/src/commands/CompileCommand/components/Compile.js +3 -7
  59. package/src/commands/CompileCommand/components/Compile.js.map +1 -1
  60. package/src/commands/CompileCommand/fn/getPdcPathFromEnvironment.d.ts +1 -1
  61. package/src/commands/CompileCommand/fn/getPdcPathFromEnvironment.js +1 -2
  62. package/src/commands/CompileCommand/fn/getPdcPathFromEnvironment.js.map +1 -1
  63. package/src/commands/CompileCommand/hooks/task/compile.d.ts +5 -2
  64. package/src/commands/CompileCommand/hooks/task/compile.js +10 -9
  65. package/src/commands/CompileCommand/hooks/task/compile.js.map +1 -1
  66. package/src/commands/CompileCommand/hooks/useCompileTasks.d.ts +5 -2
  67. package/src/commands/CompileCommand/hooks/useCompileTasks.js +33 -30
  68. package/src/commands/CompileCommand/hooks/useCompileTasks.js.map +1 -1
  69. package/src/commands/CompileCommand/index.js +0 -1
  70. package/src/commands/CompileCommand/index.js.map +1 -1
  71. package/src/commands/DoctorCommand.js +5 -12
  72. package/src/commands/DoctorCommand.js.map +1 -1
  73. package/src/commands/EnvironmentAwareCommand/EnvironmentAwareCommand.d.ts +2 -2
  74. package/src/commands/EnvironmentAwareCommand/EnvironmentAwareCommand.js +30 -30
  75. package/src/commands/EnvironmentAwareCommand/EnvironmentAwareCommand.js.map +1 -1
  76. package/src/commands/EnvironmentAwareCommand/components/HealthReport.d.ts +1 -1
  77. package/src/commands/EnvironmentAwareCommand/components/HealthReport.js +14 -15
  78. package/src/commands/EnvironmentAwareCommand/components/HealthReport.js.map +1 -1
  79. package/src/commands/EnvironmentAwareCommand/contexts/CrankScriptContext.js +5 -10
  80. package/src/commands/EnvironmentAwareCommand/contexts/CrankScriptContext.js.map +1 -1
  81. package/src/commands/EnvironmentAwareCommand/index.js +0 -1
  82. package/src/commands/EnvironmentAwareCommand/index.js.map +1 -1
  83. package/src/commands/GenerateTypes/GenerateTypesCommand.js +14 -21
  84. package/src/commands/GenerateTypes/GenerateTypesCommand.js.map +1 -1
  85. package/src/commands/GenerateTypes/components/GenerateTypes.d.ts +1 -1
  86. package/src/commands/GenerateTypes/components/GenerateTypes.js +11 -15
  87. package/src/commands/GenerateTypes/components/GenerateTypes.js.map +1 -1
  88. package/src/commands/GenerateTypes/constants.js +0 -1
  89. package/src/commands/GenerateTypes/constants.js.map +1 -1
  90. package/src/commands/GenerateTypes/fn/getApiDefinitions.d.ts +1 -1
  91. package/src/commands/GenerateTypes/fn/getApiDefinitions.js +12 -14
  92. package/src/commands/GenerateTypes/fn/getApiDefinitions.js.map +1 -1
  93. package/src/commands/GenerateTypes/fn/getDescriptionsFromHtml.d.ts +1 -1
  94. package/src/commands/GenerateTypes/fn/getDescriptionsFromHtml.js +38 -30
  95. package/src/commands/GenerateTypes/fn/getDescriptionsFromHtml.js.map +1 -1
  96. package/src/commands/GenerateTypes/fn/getFunctionTypeOverride.js +5 -4
  97. package/src/commands/GenerateTypes/fn/getFunctionTypeOverride.js.map +1 -1
  98. package/src/commands/GenerateTypes/fn/getHtmlForVersion.js +6 -9
  99. package/src/commands/GenerateTypes/fn/getHtmlForVersion.js.map +1 -1
  100. package/src/commands/GenerateTypes/fn/parseFunctionSignature.js +13 -10
  101. package/src/commands/GenerateTypes/fn/parseFunctionSignature.js.map +1 -1
  102. package/src/commands/GenerateTypes/hooks/useFetchHtml.js +10 -12
  103. package/src/commands/GenerateTypes/hooks/useFetchHtml.js.map +1 -1
  104. package/src/commands/GenerateTypes/hooks/useFormatTypeFile.js +23 -29
  105. package/src/commands/GenerateTypes/hooks/useFormatTypeFile.js.map +1 -1
  106. package/src/commands/GenerateTypes/hooks/useGenerateTypeFile.d.ts +2 -2
  107. package/src/commands/GenerateTypes/hooks/useGenerateTypeFile.js +44 -75
  108. package/src/commands/GenerateTypes/hooks/useGenerateTypeFile.js.map +1 -1
  109. package/src/commands/GenerateTypes/hooks/useGetVersion.d.ts +1 -1
  110. package/src/commands/GenerateTypes/hooks/useGetVersion.js +19 -19
  111. package/src/commands/GenerateTypes/hooks/useGetVersion.js.map +1 -1
  112. package/src/commands/GenerateTypes/hooks/useParseDocumentation.d.ts +1 -1
  113. package/src/commands/GenerateTypes/hooks/useParseDocumentation.js +10 -12
  114. package/src/commands/GenerateTypes/hooks/useParseDocumentation.js.map +1 -1
  115. package/src/commands/GenerateTypes/index.js +0 -1
  116. package/src/commands/GenerateTypes/index.js.map +1 -1
  117. package/src/commands/GenerateTypes/types.d.ts +1 -1
  118. package/src/commands/GenerateTypes/types.js +1 -2
  119. package/src/commands/GenerateTypes/types.js.map +1 -1
  120. package/src/commands/GenerateTypes/utils/createTypeProvider.d.ts +2 -2
  121. package/src/commands/GenerateTypes/utils/createTypeProvider.js +63 -85
  122. package/src/commands/GenerateTypes/utils/createTypeProvider.js.map +1 -1
  123. package/src/commands/GenerateTypes/utils/functionTypeOverrides.d.ts +1 -1
  124. package/src/commands/GenerateTypes/utils/functionTypeOverrides.js +6 -7
  125. package/src/commands/GenerateTypes/utils/functionTypeOverrides.js.map +1 -1
  126. package/src/commands/NewCommand/NewCommand.js +9 -17
  127. package/src/commands/NewCommand/NewCommand.js.map +1 -1
  128. package/src/commands/NewCommand/components/New.d.ts +1 -1
  129. package/src/commands/NewCommand/components/New.js +19 -25
  130. package/src/commands/NewCommand/components/New.js.map +1 -1
  131. package/src/commands/NewLibCommand/NewLibCommand.js +9 -17
  132. package/src/commands/NewLibCommand/NewLibCommand.js.map +1 -1
  133. package/src/commands/NewLibCommand/components/NewLib.d.ts +1 -1
  134. package/src/commands/NewLibCommand/components/NewLib.js +19 -25
  135. package/src/commands/NewLibCommand/components/NewLib.js.map +1 -1
  136. package/src/commands/NewLibCommand/index.js +0 -1
  137. package/src/commands/NewLibCommand/index.js.map +1 -1
  138. package/src/commands/RenderableCommand.d.ts +1 -1
  139. package/src/commands/RenderableCommand.js +5 -3
  140. package/src/commands/RenderableCommand.js.map +1 -1
  141. package/src/commands/SimulatorCommand/SimulatorCommand.d.ts +1 -1
  142. package/src/commands/SimulatorCommand/SimulatorCommand.js +23 -38
  143. package/src/commands/SimulatorCommand/SimulatorCommand.js.map +1 -1
  144. package/src/commands/SimulatorCommand/components/Simulator.d.ts +3 -2
  145. package/src/commands/SimulatorCommand/components/Simulator.js +19 -17
  146. package/src/commands/SimulatorCommand/components/Simulator.js.map +1 -1
  147. package/src/commands/SimulatorCommand/components/TemporaryFolderCreator.d.ts +1 -1
  148. package/src/commands/SimulatorCommand/components/TemporaryFolderCreator.js +15 -22
  149. package/src/commands/SimulatorCommand/components/TemporaryFolderCreator.js.map +1 -1
  150. package/src/commands/SimulatorCommand/fn/createTemporaryFolderPathFromEntryFile.js +8 -6
  151. package/src/commands/SimulatorCommand/fn/createTemporaryFolderPathFromEntryFile.js.map +1 -1
  152. package/src/commands/SimulatorCommand/fn/getSimulatorPathFromEnvironment.d.ts +1 -1
  153. package/src/commands/SimulatorCommand/fn/getSimulatorPathFromEnvironment.js +1 -2
  154. package/src/commands/SimulatorCommand/fn/getSimulatorPathFromEnvironment.js.map +1 -1
  155. package/src/commands/SimulatorCommand/hooks/useFileWatcher.js +10 -10
  156. package/src/commands/SimulatorCommand/hooks/useFileWatcher.js.map +1 -1
  157. package/src/commands/SimulatorCommand/hooks/useSimulatorTasks.d.ts +6 -2
  158. package/src/commands/SimulatorCommand/hooks/useSimulatorTasks.js +52 -50
  159. package/src/commands/SimulatorCommand/hooks/useSimulatorTasks.js.map +1 -1
  160. package/src/commands/SimulatorCommand/index.js +0 -1
  161. package/src/commands/SimulatorCommand/index.js.map +1 -1
  162. package/src/commands/TestCommand/TestCommand.d.ts +12 -0
  163. package/src/commands/TestCommand/TestCommand.js +32 -0
  164. package/src/commands/TestCommand/TestCommand.js.map +1 -0
  165. package/src/commands/TestCommand/components/Test.d.ts +9 -0
  166. package/src/commands/TestCommand/components/Test.js +73 -0
  167. package/src/commands/TestCommand/components/Test.js.map +1 -0
  168. package/src/commands/TestCommand/components/TestLine.d.ts +10 -0
  169. package/src/commands/TestCommand/components/TestLine.js +11 -0
  170. package/src/commands/TestCommand/components/TestLine.js.map +1 -0
  171. package/src/commands/TestCommand/components/TestResult.d.ts +8 -0
  172. package/src/commands/TestCommand/components/TestResult.js +21 -0
  173. package/src/commands/TestCommand/components/TestResult.js.map +1 -0
  174. package/src/commands/TestCommand/components/TestSuite.d.ts +8 -0
  175. package/src/commands/TestCommand/components/TestSuite.js +60 -0
  176. package/src/commands/TestCommand/components/TestSuite.js.map +1 -0
  177. package/src/commands/TestCommand/components/TestSummary.d.ts +7 -0
  178. package/src/commands/TestCommand/components/TestSummary.js +9 -0
  179. package/src/commands/TestCommand/components/TestSummary.js.map +1 -0
  180. package/src/commands/TestCommand/hooks/useTestFiles.d.ts +3 -0
  181. package/src/commands/TestCommand/hooks/useTestFiles.js +8 -0
  182. package/src/commands/TestCommand/hooks/useTestFiles.js.map +1 -0
  183. package/src/commands/TestCommand/hooks/useTestServer.d.ts +5 -0
  184. package/src/commands/TestCommand/hooks/useTestServer.js +26 -0
  185. package/src/commands/TestCommand/hooks/useTestServer.js.map +1 -0
  186. package/src/commands/TestCommand/hooks/useTestTasks.d.ts +14 -0
  187. package/src/commands/TestCommand/hooks/useTestTasks.js +61 -0
  188. package/src/commands/TestCommand/hooks/useTestTasks.js.map +1 -0
  189. package/src/commands/TestCommand/index.d.ts +1 -0
  190. package/src/commands/TestCommand/index.js +2 -0
  191. package/src/commands/TestCommand/index.js.map +1 -0
  192. package/src/commands/TestCommand/server/TestServer.d.ts +72 -0
  193. package/src/commands/TestCommand/server/TestServer.js +249 -0
  194. package/src/commands/TestCommand/server/TestServer.js.map +1 -0
  195. package/src/commands/TestCommand/types.d.ts +4 -0
  196. package/src/commands/TestCommand/types.js +6 -0
  197. package/src/commands/TestCommand/types.js.map +1 -0
  198. package/src/commands/TestCommand/utils/formatTestError.d.ts +1 -0
  199. package/src/commands/TestCommand/utils/formatTestError.js +7 -0
  200. package/src/commands/TestCommand/utils/formatTestError.js.map +1 -0
  201. package/src/commands/TranspileCommand/TranspileCommand.js +20 -28
  202. package/src/commands/TranspileCommand/TranspileCommand.js.map +1 -1
  203. package/src/commands/TranspileCommand/components/Transpile.d.ts +2 -2
  204. package/src/commands/TranspileCommand/components/Transpile.js +3 -7
  205. package/src/commands/TranspileCommand/components/Transpile.js.map +1 -1
  206. package/src/commands/TranspileCommand/fn/getErrorMessage.d.ts +1 -1
  207. package/src/commands/TranspileCommand/fn/getErrorMessage.js +5 -6
  208. package/src/commands/TranspileCommand/fn/getErrorMessage.js.map +1 -1
  209. package/src/commands/TranspileCommand/fn/transpile.d.ts +2 -2
  210. package/src/commands/TranspileCommand/fn/transpile.js +15 -17
  211. package/src/commands/TranspileCommand/fn/transpile.js.map +1 -1
  212. package/src/commands/TranspileCommand/fn/validateEntryPoint.d.ts +1 -1
  213. package/src/commands/TranspileCommand/fn/validateEntryPoint.js +2 -3
  214. package/src/commands/TranspileCommand/fn/validateEntryPoint.js.map +1 -1
  215. package/src/commands/TranspileCommand/fn/validateExitPoint.d.ts +1 -1
  216. package/src/commands/TranspileCommand/fn/validateExitPoint.js +6 -6
  217. package/src/commands/TranspileCommand/fn/validateExitPoint.js.map +1 -1
  218. package/src/commands/TranspileCommand/hooks/useTranspileTasks.d.ts +4 -4
  219. package/src/commands/TranspileCommand/hooks/useTranspileTasks.js +34 -33
  220. package/src/commands/TranspileCommand/hooks/useTranspileTasks.js.map +1 -1
  221. package/src/commands/TranspileCommand/index.js +0 -1
  222. package/src/commands/TranspileCommand/index.js.map +1 -1
  223. package/src/commands/TranspileCommand/model/ValidatedEntryPoint.js +1 -2
  224. package/src/commands/TranspileCommand/model/ValidatedEntryPoint.js.map +1 -1
  225. package/src/commands/TranspileCommand/model/ValidatedExitPoint.js +1 -2
  226. package/src/commands/TranspileCommand/model/ValidatedExitPoint.js.map +1 -1
  227. package/src/commands/TranspileCommand/types.js +1 -2
  228. package/src/commands/TranspileCommand/types.js.map +1 -1
  229. package/src/components/CheckList/CheckList.d.ts +3 -2
  230. package/src/components/CheckList/CheckList.js +14 -21
  231. package/src/components/CheckList/CheckList.js.map +1 -1
  232. package/src/components/CheckList/Item.d.ts +3 -2
  233. package/src/components/CheckList/Item.js +47 -44
  234. package/src/components/CheckList/Item.js.map +1 -1
  235. package/src/components/CheckList/index.js +0 -1
  236. package/src/components/CheckList/index.js.map +1 -1
  237. package/src/components/ErrorBoundary.d.ts +14 -0
  238. package/src/components/ErrorBoundary.js +7 -13
  239. package/src/components/ErrorBoundary.js.map +1 -1
  240. package/src/components/Spinner.d.ts +1 -1
  241. package/src/components/Spinner.js +13 -18
  242. package/src/components/Spinner.js.map +1 -1
  243. package/src/constants.js +1 -6
  244. package/src/constants.js.map +1 -1
  245. package/src/environment/createEnvironment.d.ts +1 -1
  246. package/src/environment/createEnvironment.js +13 -16
  247. package/src/environment/createEnvironment.js.map +1 -1
  248. package/src/environment/dto/Environment.d.ts +1 -1
  249. package/src/environment/dto/Environment.js +1 -2
  250. package/src/environment/dto/Environment.js.map +1 -1
  251. package/src/environment/error/EnvironmentError.js +0 -1
  252. package/src/environment/error/EnvironmentError.js.map +1 -1
  253. package/src/environment/path/dto/PlaydateSdkPath.js +3 -4
  254. package/src/environment/path/dto/PlaydateSdkPath.js.map +1 -1
  255. package/src/environment/path/error/PlaydateSdkPathVariableNotSetError.js +1 -2
  256. package/src/environment/path/error/PlaydateSdkPathVariableNotSetError.js.map +1 -1
  257. package/src/environment/path/getPlaydateSdkPath.js +5 -3
  258. package/src/environment/path/getPlaydateSdkPath.js.map +1 -1
  259. package/src/index.js +7 -5
  260. package/src/index.js.map +1 -1
  261. package/src/types.d.ts +3 -3
  262. package/src/types.js +4 -5
  263. package/src/types.js.map +1 -1
  264. package/src/utils/appendExeOnWindows.js +1 -2
  265. package/src/utils/appendExeOnWindows.js.map +1 -1
  266. package/src/utils/dirname.js +0 -1
  267. package/src/utils/dirname.js.map +1 -1
  268. package/src/utils/platform.js +0 -1
  269. package/src/utils/platform.js.map +1 -1
  270. package/src/commands/TranspileCommand/fn/_tests/test-abstract/src/index.js +0 -4
  271. package/src/commands/TranspileCommand/fn/_tests/test-abstract/src/index.js.map +0 -1
  272. package/src/commands/TranspileCommand/fn/_tests/test-automatic-imports/src/index.js +0 -3
  273. package/src/commands/TranspileCommand/fn/_tests/test-automatic-imports/src/index.js.map +0 -1
  274. package/src/commands/TranspileCommand/fn/_tests/test-builtins/src/index.js +0 -4
  275. package/src/commands/TranspileCommand/fn/_tests/test-builtins/src/index.js.map +0 -1
  276. package/src/commands/TranspileCommand/fn/_tests/test-default-parameters/src/index.js +0 -17
  277. package/src/commands/TranspileCommand/fn/_tests/test-default-parameters/src/index.js.map +0 -1
  278. package/src/commands/TranspileCommand/fn/_tests/test-implicit-constructor/src/index.js +0 -10
  279. package/src/commands/TranspileCommand/fn/_tests/test-implicit-constructor/src/index.js.map +0 -1
  280. package/src/commands/TranspileCommand/fn/_tests/test-static/src/index.js +0 -18
  281. package/src/commands/TranspileCommand/fn/_tests/test-static/src/index.js.map +0 -1
  282. package/src/commands/TranspileCommand/fn/_tests/test-super/src/index.js +0 -24
  283. package/src/commands/TranspileCommand/fn/_tests/test-super/src/index.js.map +0 -1
@@ -1,74 +1,78 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "getTransformClassDeclaration", {
6
- enumerable: true,
7
- get: function() {
8
- return getTransformClassDeclaration;
9
- }
10
- });
11
- const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
12
- const _typescript = /*#__PURE__*/ _interop_require_wildcard._(require("typescript"));
13
- const _typescripttolua = /*#__PURE__*/ _interop_require_wildcard._(require("typescript-to-lua"));
14
- const _fields = require("typescript-to-lua/dist/transformation/visitors/class/members/fields");
15
- const _utils = require("typescript-to-lua/dist/transformation/visitors/class/utils");
16
- const _getExportedClassDeclarationStatements = require("./getExportedClassDeclarationStatements");
17
- const _createClasCall = require("./createClasCall");
18
- const _transformConstructor = require("./transformConstructor");
19
- const _transformMethodDeclaration = require("./transformMethodDeclaration");
20
- const hasSuperInfos = (context)=>{
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTransformClassDeclaration = void 0;
4
+ const ts = require("typescript");
5
+ const tstl = require("typescript-to-lua");
6
+ const fields_1 = require("typescript-to-lua/dist/transformation/visitors/class/members/fields");
7
+ const utils_1 = require("typescript-to-lua/dist/transformation/visitors/class/utils");
8
+ const getExportedClassDeclarationStatements_1 = require("./getExportedClassDeclarationStatements");
9
+ const createClasCall_1 = require("./createClasCall");
10
+ const transformConstructor_1 = require("./transformConstructor");
11
+ const transformMethodDeclaration_1 = require("./transformMethodDeclaration");
12
+ const hasSuperInfos = (context) => {
21
13
  return 'classSuperInfos' in context;
22
14
  };
23
- const getTransformClassDeclaration = (importMap)=>{
24
- return (declaration, context)=>{
15
+ const getTransformClassDeclaration = (importMap) => {
16
+ return ((declaration, context) => {
25
17
  importMap.add('object');
26
18
  let className;
27
19
  if (declaration.name) {
28
- className = _typescripttolua.createIdentifier(declaration.name.text);
29
- } else {
30
- className = _typescripttolua.createIdentifier(context.createTempName('class'), declaration);
20
+ className = tstl.createIdentifier(declaration.name.text);
31
21
  }
32
- const extension = (0, _utils.getExtendedNode)(declaration);
22
+ else {
23
+ className = tstl.createIdentifier(context.createTempName('class'), declaration);
24
+ }
25
+ const extension = (0, utils_1.getExtendedNode)(declaration);
33
26
  if (hasSuperInfos(context)) {
34
27
  if (context.classSuperInfos) {
35
28
  context.classSuperInfos.push({
36
29
  className,
37
- extendedTypeNode: extension
30
+ extendedTypeNode: extension,
38
31
  });
39
- } else {
32
+ }
33
+ else {
40
34
  context.classSuperInfos = [
41
- {
42
- className,
43
- extendedTypeNode: extension
44
- }
35
+ { className, extendedTypeNode: extension },
45
36
  ];
46
37
  }
47
38
  }
48
39
  // Get all properties with value
49
- const properties = declaration.members.filter(_typescript.isPropertyDeclaration).filter((member)=>member.initializer);
40
+ const properties = declaration.members
41
+ .filter(ts.isPropertyDeclaration)
42
+ .filter(member => member.initializer);
50
43
  // Divide properties into static and non-static
51
- const instanceFields = properties.filter((prop)=>!(0, _utils.isStaticNode)(prop));
52
- const staticFields = properties.filter((prop)=>(0, _utils.isStaticNode)(prop));
44
+ const instanceFields = properties.filter(prop => !(0, utils_1.isStaticNode)(prop));
45
+ const staticFields = properties.filter(prop => (0, utils_1.isStaticNode)(prop));
53
46
  const statements = [];
54
47
  // class('X')
55
- statements.push((0, _createClasCall.createClassCall)(context, className, extension));
48
+ statements.push((0, createClasCall_1.createClassCall)(context, className, extension));
56
49
  // function X:init()
57
50
  // X.super.init(self)
58
51
  // end
59
- const staticFieldStatements = staticFields.map((field)=>(0, _fields.transformStaticPropertyDeclaration)(context, field, className)).filter((stmt)=>stmt !== undefined);
52
+ const staticFieldStatements = staticFields
53
+ .map(field => (0, fields_1.transformStaticPropertyDeclaration)(context, field, className))
54
+ .filter((stmt) => stmt !== undefined);
60
55
  statements.push(...staticFieldStatements);
61
- const constructor = declaration.members.find((n)=>_typescript.isConstructorDeclaration(n) && n.body !== undefined);
62
- const constructorToUse = constructor || _typescript.factory.createConstructorDeclaration(undefined, [], _typescript.factory.createBlock([], true));
63
- const transformedConstructor = (0, _transformConstructor.transformConstructor)(context, className, instanceFields, constructorToUse);
56
+ const constructor = declaration.members.find((n) => ts.isConstructorDeclaration(n) && n.body !== undefined);
57
+ const constructorToUse = constructor ||
58
+ ts.factory.createConstructorDeclaration(undefined, [], ts.factory.createBlock([], true));
59
+ const transformedConstructor = (0, transformConstructor_1.transformConstructor)(context, className, instanceFields, constructorToUse);
64
60
  if (transformedConstructor) {
65
61
  statements.push(transformedConstructor);
66
62
  }
67
- const methods = declaration.members.filter(_typescript.isMethodDeclaration).map((method)=>(0, _transformMethodDeclaration.transformMethodDeclaration)(context, method, className)).filter((method)=>method !== undefined);
63
+ const methods = declaration.members
64
+ .filter(ts.isMethodDeclaration)
65
+ .map(method => (0, transformMethodDeclaration_1.transformMethodDeclaration)(context, method, className))
66
+ .filter((method) => method !== undefined);
68
67
  statements.push(...methods);
69
- statements.push(...(0, _getExportedClassDeclarationStatements.getExportedClassDeclarationStatements)(className, declaration));
68
+ statements.push(tstl.createAssignmentStatement(tstl.createTableIndexExpression(className, tstl.createStringLiteral('constructor')), className));
69
+ if (extension) {
70
+ const superClassName = context.transformExpression(extension.expression);
71
+ statements.push(tstl.createAssignmentStatement(tstl.createTableIndexExpression(className, tstl.createStringLiteral('____super')), superClassName));
72
+ }
73
+ statements.push(...(0, getExportedClassDeclarationStatements_1.getExportedClassDeclarationStatements)(className, declaration));
70
74
  return statements;
71
- };
75
+ });
72
76
  };
73
-
77
+ exports.getTransformClassDeclaration = getTransformClassDeclaration;
74
78
  //# sourceMappingURL=getTransformClassDeclaration.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformClassDeclaration/getTransformClassDeclaration.ts"],"sourcesContent":["import * as ts from 'typescript';\nimport { FunctionVisitor, TransformationContext } from 'typescript-to-lua';\nimport * as tstl from 'typescript-to-lua';\nimport { transformStaticPropertyDeclaration } from 'typescript-to-lua/dist/transformation/visitors/class/members/fields';\nimport {\n getExtendedNode,\n isStaticNode,\n} from 'typescript-to-lua/dist/transformation/visitors/class/utils';\nimport { getExportedClassDeclarationStatements } from './getExportedClassDeclarationStatements';\nimport { ImportMap } from '../ImportMap';\nimport { ClassSuperInfo } from '../types';\nimport { createClassCall } from './createClasCall';\nimport { transformConstructor } from './transformConstructor';\nimport { transformMethodDeclaration } from './transformMethodDeclaration';\n\nconst hasSuperInfos = (\n context: TransformationContext,\n): context is TransformationContext & {\n classSuperInfos?: [ClassSuperInfo];\n} => {\n return 'classSuperInfos' in context;\n};\n\nexport const getTransformClassDeclaration = (importMap: ImportMap) => {\n return ((declaration, context: TransformationContext) => {\n importMap.add('object');\n\n let className: tstl.Identifier;\n if (declaration.name) {\n className = tstl.createIdentifier(declaration.name.text);\n } else {\n className = tstl.createIdentifier(\n context.createTempName('class'),\n declaration,\n );\n }\n\n const extension = getExtendedNode(declaration);\n\n if (hasSuperInfos(context)) {\n if (context.classSuperInfos) {\n context.classSuperInfos.push({\n className,\n extendedTypeNode: extension,\n });\n } else {\n context.classSuperInfos = [\n { className, extendedTypeNode: extension },\n ];\n }\n }\n\n // Get all properties with value\n const properties = declaration.members\n .filter(ts.isPropertyDeclaration)\n .filter(member => member.initializer);\n\n // Divide properties into static and non-static\n const instanceFields = properties.filter(prop => !isStaticNode(prop));\n const staticFields = properties.filter(prop => isStaticNode(prop));\n\n const statements: tstl.Statement[] = [];\n\n // class('X')\n statements.push(createClassCall(context, className, extension));\n\n // function X:init()\n // X.super.init(self)\n // end\n\n const staticFieldStatements = staticFields\n .map(field =>\n transformStaticPropertyDeclaration(context, field, className),\n )\n .filter(\n (stmt): stmt is tstl.AssignmentStatement => stmt !== undefined,\n );\n statements.push(...staticFieldStatements);\n\n const constructor = declaration.members.find(\n (n): n is ts.ConstructorDeclaration =>\n ts.isConstructorDeclaration(n) && n.body !== undefined,\n );\n\n const constructorToUse =\n constructor ||\n ts.factory.createConstructorDeclaration(\n undefined,\n [],\n ts.factory.createBlock([], true),\n );\n\n const transformedConstructor = transformConstructor(\n context,\n className,\n instanceFields,\n constructorToUse,\n );\n\n if (transformedConstructor) {\n statements.push(transformedConstructor);\n }\n\n const methods = declaration.members\n .filter(ts.isMethodDeclaration)\n .map(method =>\n transformMethodDeclaration(context, method, className),\n )\n .filter((method): method is tstl.Statement => method !== undefined);\n statements.push(...methods);\n\n statements.push(\n ...getExportedClassDeclarationStatements(className, declaration),\n );\n\n return statements;\n }) satisfies FunctionVisitor<ts.ClassLikeDeclaration>;\n};\n"],"names":["getTransformClassDeclaration","hasSuperInfos","context","importMap","declaration","add","className","name","tstl","createIdentifier","text","createTempName","extension","getExtendedNode","classSuperInfos","push","extendedTypeNode","properties","members","filter","ts","isPropertyDeclaration","member","initializer","instanceFields","prop","isStaticNode","staticFields","statements","createClassCall","staticFieldStatements","map","field","transformStaticPropertyDeclaration","stmt","undefined","constructor","find","n","isConstructorDeclaration","body","constructorToUse","factory","createConstructorDeclaration","createBlock","transformedConstructor","transformConstructor","methods","isMethodDeclaration","method","transformMethodDeclaration","getExportedClassDeclarationStatements"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAuBaA;;;eAAAA;;;;sEAvBO;2EAEE;wBAC6B;uBAI5C;uDAC+C;gCAGtB;sCACK;4CACM;AAE3C,MAAMC,gBAAgB,CAClBC;IAIA,OAAO,qBAAqBA;AAChC;AAEO,MAAMF,+BAA+B,CAACG;IACzC,OAAQ,CAACC,aAAaF;QAClBC,UAAUE,GAAG,CAAC;QAEd,IAAIC;QACJ,IAAIF,YAAYG,IAAI,EAAE;YAClBD,YAAYE,iBAAKC,gBAAgB,CAACL,YAAYG,IAAI,CAACG,IAAI;QAC3D,OAAO;YACHJ,YAAYE,iBAAKC,gBAAgB,CAC7BP,QAAQS,cAAc,CAAC,UACvBP;QAER;QAEA,MAAMQ,YAAYC,IAAAA,sBAAe,EAACT;QAElC,IAAIH,cAAcC,UAAU;YACxB,IAAIA,QAAQY,eAAe,EAAE;gBACzBZ,QAAQY,eAAe,CAACC,IAAI,CAAC;oBACzBT;oBACAU,kBAAkBJ;gBACtB;YACJ,OAAO;gBACHV,QAAQY,eAAe,GAAG;oBACtB;wBAAER;wBAAWU,kBAAkBJ;oBAAU;iBAC5C;YACL;QACJ;QAEA,gCAAgC;QAChC,MAAMK,aAAab,YAAYc,OAAO,CACjCC,MAAM,CAACC,YAAGC,qBAAqB,EAC/BF,MAAM,CAACG,CAAAA,SAAUA,OAAOC,WAAW;QAExC,+CAA+C;QAC/C,MAAMC,iBAAiBP,WAAWE,MAAM,CAACM,CAAAA,OAAQ,CAACC,IAAAA,mBAAY,EAACD;QAC/D,MAAME,eAAeV,WAAWE,MAAM,CAACM,CAAAA,OAAQC,IAAAA,mBAAY,EAACD;QAE5D,MAAMG,aAA+B,EAAE;QAEvC,aAAa;QACbA,WAAWb,IAAI,CAACc,IAAAA,+BAAe,EAAC3B,SAASI,WAAWM;QAEpD,oBAAoB;QACpB,uBAAuB;QACvB,MAAM;QAEN,MAAMkB,wBAAwBH,aACzBI,GAAG,CAACC,CAAAA,QACDC,IAAAA,0CAAkC,EAAC/B,SAAS8B,OAAO1B,YAEtDa,MAAM,CACH,CAACe,OAA2CA,SAASC;QAE7DP,WAAWb,IAAI,IAAIe;QAEnB,MAAMM,cAAchC,YAAYc,OAAO,CAACmB,IAAI,CACxC,CAACC,IACGlB,YAAGmB,wBAAwB,CAACD,MAAMA,EAAEE,IAAI,KAAKL;QAGrD,MAAMM,mBACFL,eACAhB,YAAGsB,OAAO,CAACC,4BAA4B,CACnCR,WACA,EAAE,EACFf,YAAGsB,OAAO,CAACE,WAAW,CAAC,EAAE,EAAE;QAGnC,MAAMC,yBAAyBC,IAAAA,0CAAoB,EAC/C5C,SACAI,WACAkB,gBACAiB;QAGJ,IAAII,wBAAwB;YACxBjB,WAAWb,IAAI,CAAC8B;QACpB;QAEA,MAAME,UAAU3C,YAAYc,OAAO,CAC9BC,MAAM,CAACC,YAAG4B,mBAAmB,EAC7BjB,GAAG,CAACkB,CAAAA,SACDC,IAAAA,sDAA0B,EAAChD,SAAS+C,QAAQ3C,YAE/Ca,MAAM,CAAC,CAAC8B,SAAqCA,WAAWd;QAC7DP,WAAWb,IAAI,IAAIgC;QAEnBnB,WAAWb,IAAI,IACRoC,IAAAA,4EAAqC,EAAC7C,WAAWF;QAGxD,OAAOwB;IACX;AACJ"}
1
+ {"version":3,"file":"getTransformClassDeclaration.js","sourceRoot":"","sources":["../../../../libs/tstl-plugin/src/transformClassDeclaration/getTransformClassDeclaration.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,5 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- const _export_star = require("@swc/helpers/_/_export_star");
6
- _export_star._(require("./getTransformClassDeclaration"), exports);
7
-
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./getTransformClassDeclaration"), exports);
8
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformClassDeclaration/index.ts"],"sourcesContent":["export * from './getTransformClassDeclaration';\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;uBAAc"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/tstl-plugin/src/transformClassDeclaration/index.ts"],"names":[],"mappings":";;;AAAA,yEAA+C"}
@@ -1,79 +1,67 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "transformConstructor", {
6
- enumerable: true,
7
- get: function() {
8
- return transformConstructor;
9
- }
10
- });
11
- const _extends = require("@swc/helpers/_/_extends");
12
- const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
13
- const _typescript = /*#__PURE__*/ _interop_require_wildcard._(require("typescript"));
14
- const _typescripttolua = /*#__PURE__*/ _interop_require_wildcard._(require("typescript-to-lua"));
15
- const _precedingstatements = require("typescript-to-lua/dist/transformation/utils/preceding-statements");
16
- const _scope = require("typescript-to-lua/dist/transformation/utils/scope");
17
- const _fields = require("typescript-to-lua/dist/transformation/visitors/class/members/fields");
18
- const _function = require("typescript-to-lua/dist/transformation/visitors/function");
19
- const transformParameterDefaultValue = (context, paramName, value)=>{
20
- if (!value) return undefined;
21
- const { precedingStatements, result: parameterValue } = (0, _precedingstatements.transformInPrecedingStatementScope)(context, ()=>context.transformExpression(value));
22
- if (!_typescripttolua.isNilLiteral(parameterValue)) {
23
- precedingStatements.push(_typescripttolua.createAssignmentStatement(paramName, parameterValue));
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformConstructor = void 0;
4
+ const ts = require("typescript");
5
+ const tstl = require("typescript-to-lua");
6
+ const preceding_statements_1 = require("typescript-to-lua/dist/transformation/utils/preceding-statements");
7
+ const scope_1 = require("typescript-to-lua/dist/transformation/utils/scope");
8
+ const fields_1 = require("typescript-to-lua/dist/transformation/visitors/class/members/fields");
9
+ const function_1 = require("typescript-to-lua/dist/transformation/visitors/function");
10
+ const transformParameterDefaultValue = (context, paramName, value) => {
11
+ if (!value)
12
+ return undefined;
13
+ const { precedingStatements, result: parameterValue } = (0, preceding_statements_1.transformInPrecedingStatementScope)(context, () => context.transformExpression(value));
14
+ if (!tstl.isNilLiteral(parameterValue)) {
15
+ precedingStatements.push(tstl.createAssignmentStatement(paramName, parameterValue));
24
16
  }
25
- if (precedingStatements.length === 0) return undefined;
26
- const nilCondition = _typescripttolua.createBinaryExpression(paramName, _typescripttolua.createNilLiteral(), _typescripttolua.SyntaxKind.EqualityOperator);
27
- return _typescripttolua.createIfStatement(nilCondition, _typescripttolua.createBlock(precedingStatements), undefined);
17
+ if (precedingStatements.length === 0)
18
+ return undefined;
19
+ const nilCondition = tstl.createBinaryExpression(paramName, tstl.createNilLiteral(), tstl.SyntaxKind.EqualityOperator);
20
+ return tstl.createIfStatement(nilCondition, tstl.createBlock(precedingStatements), undefined);
28
21
  };
29
- const transformConstructor = (context, className, instanceFields, constructor)=>{
22
+ const transformConstructor = (context, className, instanceFields, constructor) => {
30
23
  const methodName = 'init';
31
- context.pushScope(_scope.ScopeType.Function);
24
+ context.pushScope(scope_1.ScopeType.Function);
32
25
  let bodyStatements = [];
33
- const params = (0, _function.transformParameters)(context, constructor == null ? void 0 : constructor.parameters, _typescripttolua.createIdentifier('self'))[0];
34
- const classInstanceFields = (0, _fields.transformClassInstanceFields)(context, instanceFields);
26
+ const params = (0, function_1.transformParameters)(context, constructor === null || constructor === void 0 ? void 0 : constructor.parameters, tstl.createIdentifier('self'))[0];
27
+ const classInstanceFields = (0, fields_1.transformClassInstanceFields)(context, instanceFields);
35
28
  bodyStatements.push(...classInstanceFields);
36
- const defaultParamStatements = constructor == null ? void 0 : constructor.parameters.filter((param)=>param.initializer !== undefined).map((param)=>{
37
- if (_typescript.isIdentifier(param.name) && param.initializer) {
38
- const paramName = _typescripttolua.createIdentifier(param.name.text);
29
+ const defaultParamStatements = constructor === null || constructor === void 0 ? void 0 : constructor.parameters.filter(param => param.initializer !== undefined).map(param => {
30
+ if (ts.isIdentifier(param.name) && param.initializer) {
31
+ const paramName = tstl.createIdentifier(param.name.text);
39
32
  return transformParameterDefaultValue(context, paramName, param.initializer);
40
33
  }
41
34
  return undefined;
42
- }).filter((stmt)=>stmt !== undefined);
35
+ }).filter((stmt) => stmt !== undefined);
43
36
  bodyStatements.push(...defaultParamStatements);
44
- const parameterAssignments = constructor == null ? void 0 : constructor.parameters.filter((param)=>param.name && param.modifiers && param.modifiers.length > 0).map((param)=>{
45
- if (_typescript.isIdentifier(param.name)) {
37
+ const parameterAssignments = constructor === null || constructor === void 0 ? void 0 : constructor.parameters.filter(param => param.name && param.modifiers && param.modifiers.length > 0).map(param => {
38
+ if (ts.isIdentifier(param.name)) {
46
39
  const paramName = param.name.text;
47
- return _typescripttolua.createAssignmentStatement(_typescripttolua.createTableIndexExpression(_typescripttolua.createIdentifier('self'), _typescripttolua.createStringLiteral(paramName)), _typescripttolua.createIdentifier(paramName));
40
+ return tstl.createAssignmentStatement(tstl.createTableIndexExpression(tstl.createIdentifier('self'), tstl.createStringLiteral(paramName)), tstl.createIdentifier(paramName));
48
41
  }
49
42
  return undefined;
50
- }).filter((stmt)=>stmt !== undefined);
43
+ }).filter((stmt) => stmt !== undefined);
51
44
  bodyStatements.push(...parameterAssignments);
52
- if (constructor == null ? void 0 : constructor.body) {
53
- const body = (0, _function.transformFunctionBodyContent)(context, constructor.body);
45
+ if (constructor === null || constructor === void 0 ? void 0 : constructor.body) {
46
+ const body = (0, function_1.transformFunctionBodyContent)(context, constructor.body);
54
47
  bodyStatements.push(...body);
55
- bodyStatements = bodyStatements.reduce((previous, current)=>{
56
- if (_typescripttolua.isExpressionStatement(current) && _typescripttolua.isCallExpression(current.expression) && _typescripttolua.isTableIndexExpression(current.expression.expression) && _typescripttolua.isStringLiteral(current.expression.expression.index) && current.expression.expression.index.value === '____constructor') {
48
+ bodyStatements = bodyStatements.reduce((previous, current) => {
49
+ if (tstl.isExpressionStatement(current) &&
50
+ tstl.isCallExpression(current.expression) &&
51
+ tstl.isTableIndexExpression(current.expression.expression) &&
52
+ tstl.isStringLiteral(current.expression.expression.index) &&
53
+ current.expression.expression.index.value === '____constructor') {
57
54
  return [
58
- _extends._({}, current, {
59
- expression: _extends._({}, current.expression, {
60
- expression: _extends._({}, current.expression.expression, {
61
- index: _typescripttolua.createStringLiteral('init')
62
- }),
63
- params: current.expression.params.slice(1)
64
- })
65
- }),
66
- ...previous
55
+ Object.assign(Object.assign({}, current), { expression: Object.assign(Object.assign({}, current.expression), { expression: Object.assign(Object.assign({}, current.expression.expression), { index: tstl.createStringLiteral('init') }), params: current.expression.params.slice(1) }) }),
56
+ ...previous,
67
57
  ];
68
58
  }
69
- return [
70
- ...previous,
71
- current
72
- ];
59
+ return [...previous, current];
73
60
  }, []);
74
61
  }
62
+ bodyStatements.push(tstl.createAssignmentStatement(tstl.createTableIndexExpression(tstl.createIdentifier('self'), tstl.createStringLiteral('constructor')), className));
75
63
  context.popScope();
76
- return _typescripttolua.createAssignmentStatement(_typescripttolua.createTableIndexExpression(className, _typescripttolua.createStringLiteral(methodName)), _typescripttolua.createFunctionExpression(_typescripttolua.createBlock(bodyStatements), params));
64
+ return tstl.createAssignmentStatement(tstl.createTableIndexExpression(className, tstl.createStringLiteral(methodName)), tstl.createFunctionExpression(tstl.createBlock(bodyStatements), params));
77
65
  };
78
-
66
+ exports.transformConstructor = transformConstructor;
79
67
  //# sourceMappingURL=transformConstructor.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformClassDeclaration/transformConstructor.ts"],"sourcesContent":["import * as ts from 'typescript';\nimport { TransformationContext } from 'typescript-to-lua';\nimport * as tstl from 'typescript-to-lua';\nimport { transformInPrecedingStatementScope } from 'typescript-to-lua/dist/transformation/utils/preceding-statements';\nimport { ScopeType } from 'typescript-to-lua/dist/transformation/utils/scope';\nimport { transformClassInstanceFields } from 'typescript-to-lua/dist/transformation/visitors/class/members/fields';\nimport {\n transformFunctionBodyContent,\n transformParameters,\n} from 'typescript-to-lua/dist/transformation/visitors/function';\n\nconst transformParameterDefaultValue = (\n context: TransformationContext,\n paramName: tstl.Identifier,\n value: ts.Expression,\n): tstl.Statement | undefined => {\n if (!value) return undefined;\n\n const { precedingStatements, result: parameterValue } =\n transformInPrecedingStatementScope(context, () =>\n context.transformExpression(value),\n );\n\n if (!tstl.isNilLiteral(parameterValue)) {\n precedingStatements.push(\n tstl.createAssignmentStatement(paramName, parameterValue),\n );\n }\n\n if (precedingStatements.length === 0) return undefined;\n\n const nilCondition = tstl.createBinaryExpression(\n paramName,\n tstl.createNilLiteral(),\n tstl.SyntaxKind.EqualityOperator,\n );\n\n return tstl.createIfStatement(\n nilCondition,\n tstl.createBlock(precedingStatements),\n undefined,\n );\n};\n\nexport const transformConstructor = (\n context: TransformationContext,\n className: tstl.Identifier,\n instanceFields: ts.PropertyDeclaration[],\n constructor: ts.ConstructorDeclaration,\n): tstl.Statement | undefined => {\n const methodName = 'init';\n context.pushScope(ScopeType.Function);\n let bodyStatements: tstl.Statement[] = [];\n const params = transformParameters(\n context,\n constructor?.parameters,\n tstl.createIdentifier('self'),\n )[0];\n const classInstanceFields = transformClassInstanceFields(\n context,\n instanceFields,\n );\n\n bodyStatements.push(...classInstanceFields);\n\n const defaultParamStatements = constructor?.parameters\n .filter(param => param.initializer !== undefined)\n .map(param => {\n if (ts.isIdentifier(param.name) && param.initializer) {\n const paramName = tstl.createIdentifier(param.name.text);\n\n return transformParameterDefaultValue(\n context,\n paramName,\n param.initializer,\n );\n }\n\n return undefined;\n })\n .filter((stmt): stmt is tstl.Statement => stmt !== undefined);\n\n bodyStatements.push(...defaultParamStatements);\n\n const parameterAssignments = constructor?.parameters\n .filter(\n param =>\n param.name && param.modifiers && param.modifiers.length > 0,\n )\n .map(param => {\n if (ts.isIdentifier(param.name)) {\n const paramName = param.name.text;\n return tstl.createAssignmentStatement(\n tstl.createTableIndexExpression(\n tstl.createIdentifier('self'),\n tstl.createStringLiteral(paramName),\n ),\n tstl.createIdentifier(paramName),\n );\n }\n return undefined;\n })\n .filter((stmt): stmt is tstl.AssignmentStatement => stmt !== undefined);\n\n bodyStatements.push(...parameterAssignments);\n\n if (constructor?.body) {\n const body = transformFunctionBodyContent(context, constructor.body);\n\n bodyStatements.push(...body);\n bodyStatements = bodyStatements.reduce((previous, current) => {\n if (\n tstl.isExpressionStatement(current) &&\n tstl.isCallExpression(current.expression) &&\n tstl.isTableIndexExpression(current.expression.expression) &&\n tstl.isStringLiteral(current.expression.expression.index) &&\n current.expression.expression.index.value === '____constructor'\n ) {\n return [\n {\n ...current,\n expression: {\n ...current.expression,\n expression: {\n ...current.expression.expression,\n index: tstl.createStringLiteral('init'),\n },\n params: current.expression.params.slice(1),\n },\n },\n ...previous,\n ];\n }\n\n return [...previous, current];\n }, [] as tstl.Statement[]);\n }\n context.popScope();\n return tstl.createAssignmentStatement(\n tstl.createTableIndexExpression(\n className,\n tstl.createStringLiteral(methodName),\n ),\n tstl.createFunctionExpression(tstl.createBlock(bodyStatements), params),\n );\n};\n"],"names":["transformConstructor","transformParameterDefaultValue","context","paramName","value","undefined","precedingStatements","result","parameterValue","transformInPrecedingStatementScope","transformExpression","tstl","isNilLiteral","push","createAssignmentStatement","length","nilCondition","createBinaryExpression","createNilLiteral","SyntaxKind","EqualityOperator","createIfStatement","createBlock","className","instanceFields","constructor","methodName","pushScope","ScopeType","Function","bodyStatements","params","transformParameters","parameters","createIdentifier","classInstanceFields","transformClassInstanceFields","defaultParamStatements","filter","param","initializer","map","ts","isIdentifier","name","text","stmt","parameterAssignments","modifiers","createTableIndexExpression","createStringLiteral","body","transformFunctionBodyContent","reduce","previous","current","isExpressionStatement","isCallExpression","expression","isTableIndexExpression","isStringLiteral","index","slice","popScope","createFunctionExpression"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"file":"transformConstructor.js","sourceRoot":"","sources":["../../../../libs/tstl-plugin/src/transformClassDeclaration/transformConstructor.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,17 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "transformMethodDeclaration", {
6
- enumerable: true,
7
- get: function() {
8
- return transformMethodDeclaration;
9
- }
10
- });
11
- const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
12
- const _typescript = /*#__PURE__*/ _interop_require_wildcard._(require("typescript"));
13
- const _typescripttolua = /*#__PURE__*/ _interop_require_wildcard._(require("typescript-to-lua"));
14
- const _function = require("typescript-to-lua/dist/transformation/visitors/function");
15
- const _transformPropertyName = require("./transformPropertyName");
16
- const transformMethodDeclaration = (context, node, className)=>{
17
- var _node_modifiers;
18
- if ((_node_modifiers = node.modifiers) == null ? void 0 : _node_modifiers.some((modifier)=>modifier.kind === _typescript.SyntaxKind.AbstractKeyword)) {
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformMethodDeclaration = void 0;
4
+ const ts = require("typescript");
5
+ const tstl = require("typescript-to-lua");
6
+ const function_1 = require("typescript-to-lua/dist/transformation/visitors/function");
7
+ const transformPropertyName_1 = require("./transformPropertyName");
8
+ const transformMethodDeclaration = (context, node, className) => {
9
+ var _a;
10
+ if ((_a = node.modifiers) === null || _a === void 0 ? void 0 : _a.some(modifier => modifier.kind === ts.SyntaxKind.AbstractKeyword)) {
19
11
  return undefined;
20
12
  }
21
- const [functionExpression] = (0, _function.transformFunctionToExpression)(context, node);
22
- return _typescripttolua.createAssignmentStatement(_typescripttolua.createTableIndexExpression(className, (0, _transformPropertyName.transformPropertyName)(context, node.name)), functionExpression);
13
+ const [functionExpression] = (0, function_1.transformFunctionToExpression)(context, node);
14
+ return tstl.createAssignmentStatement(tstl.createTableIndexExpression(className, (0, transformPropertyName_1.transformPropertyName)(context, node.name)), functionExpression);
23
15
  };
24
-
16
+ exports.transformMethodDeclaration = transformMethodDeclaration;
25
17
  //# sourceMappingURL=transformMethodDeclaration.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformClassDeclaration/transformMethodDeclaration.ts"],"sourcesContent":["import * as ts from 'typescript';\nimport { TransformationContext } from 'typescript-to-lua';\nimport * as tstl from 'typescript-to-lua';\nimport { transformFunctionToExpression } from 'typescript-to-lua/dist/transformation/visitors/function';\nimport { transformPropertyName } from './transformPropertyName';\n\nexport const transformMethodDeclaration = (\n context: TransformationContext,\n node: ts.MethodDeclaration,\n className: tstl.Identifier,\n): tstl.Statement | undefined => {\n if (\n node.modifiers?.some(\n modifier => modifier.kind === ts.SyntaxKind.AbstractKeyword,\n )\n ) {\n return undefined;\n }\n\n const [functionExpression] = transformFunctionToExpression(context, node);\n return tstl.createAssignmentStatement(\n tstl.createTableIndexExpression(\n className,\n transformPropertyName(context, node.name),\n ),\n functionExpression,\n );\n};\n"],"names":["transformMethodDeclaration","context","node","className","modifiers","some","modifier","kind","ts","SyntaxKind","AbstractKeyword","undefined","functionExpression","transformFunctionToExpression","tstl","createAssignmentStatement","createTableIndexExpression","transformPropertyName","name"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAMaA;;;eAAAA;;;;sEANO;2EAEE;0BACwB;uCACR;AAE/B,MAAMA,6BAA6B,CACtCC,SACAC,MACAC;QAGID;IADJ,KACIA,kBAAAA,KAAKE,SAAS,qBAAdF,gBAAgBG,IAAI,CAChBC,CAAAA,WAAYA,SAASC,IAAI,KAAKC,YAAGC,UAAU,CAACC,eAAe,GAEjE;QACE,OAAOC;IACX;IAEA,MAAM,CAACC,mBAAmB,GAAGC,IAAAA,uCAA6B,EAACZ,SAASC;IACpE,OAAOY,iBAAKC,yBAAyB,CACjCD,iBAAKE,0BAA0B,CAC3Bb,WACAc,IAAAA,4CAAqB,EAAChB,SAASC,KAAKgB,IAAI,IAE5CN;AAER"}
1
+ {"version":3,"file":"transformMethodDeclaration.js","sourceRoot":"","sources":["../../../../libs/tstl-plugin/src/transformClassDeclaration/transformMethodDeclaration.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AAEjC,0CAA0C;AAC1C,sFAAwG;AACxG,mEAAgE;AAEzD,MAAM,0BAA0B,GAAG,CACtC,OAA8B,EAC9B,IAA0B,EAC1B,SAA0B,EACA,EAAE;;IAC5B,IACI,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,CAChB,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,eAAe,CAC9D,EACH,CAAC;QACC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAA,wCAA6B,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC,yBAAyB,CACjC,IAAI,CAAC,0BAA0B,CAC3B,SAAS,EACT,IAAA,6CAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAC5C,EACD,kBAAkB,CACrB,CAAC;AACN,CAAC,CAAC;AArBW,QAAA,0BAA0B,8BAqBrC"}
@@ -1,26 +1,21 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "transformPropertyName", {
6
- enumerable: true,
7
- get: function() {
8
- return transformPropertyName;
9
- }
10
- });
11
- const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
12
- const _typescript = /*#__PURE__*/ _interop_require_wildcard._(require("typescript"));
13
- const _typescripttolua = require("typescript-to-lua");
14
- const transformPropertyName = (context, node)=>{
15
- if (_typescript.isComputedPropertyName(node)) {
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformPropertyName = void 0;
4
+ const ts = require("typescript");
5
+ const typescript_to_lua_1 = require("typescript-to-lua");
6
+ const transformPropertyName = (context, node) => {
7
+ if (ts.isComputedPropertyName(node)) {
16
8
  return context.transformExpression(node.expression);
17
- } else if (_typescript.isIdentifier(node)) {
18
- return (0, _typescripttolua.createStringLiteral)(node.text);
19
- } else if (_typescript.isPrivateIdentifier(node)) {
9
+ }
10
+ else if (ts.isIdentifier(node)) {
11
+ return (0, typescript_to_lua_1.createStringLiteral)(node.text);
12
+ }
13
+ else if (ts.isPrivateIdentifier(node)) {
20
14
  throw new Error('PrivateIdentifier is not supported');
21
- } else {
15
+ }
16
+ else {
22
17
  return context.transformExpression(node);
23
18
  }
24
19
  };
25
-
20
+ exports.transformPropertyName = transformPropertyName;
26
21
  //# sourceMappingURL=transformPropertyName.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformClassDeclaration/transformPropertyName.ts"],"sourcesContent":["import * as ts from 'typescript';\nimport { createStringLiteral } from 'typescript-to-lua';\nimport { TransformationContext } from 'typescript-to-lua';\n\nexport const transformPropertyName = (\n context: TransformationContext,\n node: ts.PropertyName,\n) => {\n if (ts.isComputedPropertyName(node)) {\n return context.transformExpression(node.expression);\n } else if (ts.isIdentifier(node)) {\n return createStringLiteral(node.text);\n } else if (ts.isPrivateIdentifier(node)) {\n throw new Error('PrivateIdentifier is not supported');\n } else {\n return context.transformExpression(node);\n }\n};\n"],"names":["transformPropertyName","context","node","ts","isComputedPropertyName","transformExpression","expression","isIdentifier","createStringLiteral","text","isPrivateIdentifier","Error"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAIaA;;;eAAAA;;;;sEAJO;iCACgB;AAG7B,MAAMA,wBAAwB,CACjCC,SACAC;IAEA,IAAIC,YAAGC,sBAAsB,CAACF,OAAO;QACjC,OAAOD,QAAQI,mBAAmB,CAACH,KAAKI,UAAU;IACtD,OAAO,IAAIH,YAAGI,YAAY,CAACL,OAAO;QAC9B,OAAOM,IAAAA,oCAAmB,EAACN,KAAKO,IAAI;IACxC,OAAO,IAAIN,YAAGO,mBAAmB,CAACR,OAAO;QACrC,MAAM,IAAIS,MAAM;IACpB,OAAO;QACH,OAAOV,QAAQI,mBAAmB,CAACH;IACvC;AACJ"}
1
+ {"version":3,"file":"transformPropertyName.js","sourceRoot":"","sources":["../../../../libs/tstl-plugin/src/transformClassDeclaration/transformPropertyName.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,yDAAwD;AAGjD,MAAM,qBAAqB,GAAG,CACjC,OAA8B,EAC9B,IAAqB,EACvB,EAAE;IACA,IAAI,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;SAAM,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAA,uCAAmB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACJ,OAAO,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;AACL,CAAC,CAAC;AAbW,QAAA,qBAAqB,yBAahC"}
@@ -0,0 +1,6 @@
1
+ import * as ts from 'typescript';
2
+ import * as tstl from 'typescript-to-lua';
3
+ export declare const getTransformExportDeclaration: () => (
4
+ node: ts.ExportAssignment | ts.ExportDeclaration,
5
+ context: tstl.TransformationContext,
6
+ ) => tstl.AssignmentStatement[];
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, '__esModule', {
3
+ value: true,
4
+ });
5
+ Object.defineProperty(exports, 'getTransformExportDeclaration', {
6
+ enumerable: true,
7
+ get: function () {
8
+ return getTransformExportDeclaration;
9
+ },
10
+ });
11
+ const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard');
12
+ const _typescript = /*#__PURE__*/ _interop_require_wildcard._(
13
+ require('typescript'),
14
+ );
15
+ const _typescripttolua = /*#__PURE__*/ _interop_require_wildcard._(
16
+ require('typescript-to-lua'),
17
+ );
18
+ const GLOBAL_PREFIX = '__CS_';
19
+ const getTransformExportDeclaration = () => {
20
+ return (node, context) => {
21
+ if (_typescript.isExportDeclaration(node)) {
22
+ if (!node.exportClause) {
23
+ // Handle export * from 'module'
24
+ return [];
25
+ }
26
+ if (_typescript.isNamedExports(node.exportClause)) {
27
+ return node.exportClause.elements.map(element => {
28
+ const name = element.name.text;
29
+ const globalName = `${GLOBAL_PREFIX}${name}`;
30
+ return _typescripttolua.createAssignmentStatement(
31
+ _typescripttolua.createIdentifier(globalName),
32
+ _typescripttolua.createIdentifier(name),
33
+ );
34
+ });
35
+ }
36
+ } else if (_typescript.isExportAssignment(node)) {
37
+ // Handle export = value
38
+ const expression = context.transformExpression(node.expression);
39
+ return [
40
+ _typescripttolua.createAssignmentStatement(
41
+ _typescripttolua.createIdentifier(
42
+ `${GLOBAL_PREFIX}default`,
43
+ ),
44
+ expression,
45
+ ),
46
+ ];
47
+ }
48
+ return [];
49
+ };
50
+ };
51
+
52
+ //# sourceMappingURL=getTransformExportDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformExportDeclaration/getTransformExportDeclaration.ts"],"sourcesContent":["import * as ts from 'typescript';\nimport { FunctionVisitor } from 'typescript-to-lua';\nimport * as tstl from 'typescript-to-lua';\n\nconst GLOBAL_PREFIX = '__CS_';\n\nexport const getTransformExportDeclaration = () => {\n return ((node, context) => {\n if (ts.isExportDeclaration(node)) {\n if (!node.exportClause) {\n // Handle export * from 'module'\n return [];\n }\n\n if (ts.isNamedExports(node.exportClause)) {\n return node.exportClause.elements.map(element => {\n const name = element.name.text;\n const globalName = `${GLOBAL_PREFIX}${name}`;\n\n return tstl.createAssignmentStatement(\n tstl.createIdentifier(globalName),\n tstl.createIdentifier(name),\n );\n });\n }\n } else if (ts.isExportAssignment(node)) {\n // Handle export = value\n const expression = context.transformExpression(node.expression);\n return [\n tstl.createAssignmentStatement(\n tstl.createIdentifier(`${GLOBAL_PREFIX}default`),\n expression,\n ),\n ];\n }\n\n return [];\n }) satisfies FunctionVisitor<ts.ExportDeclaration | ts.ExportAssignment>;\n};\n"],"names":["getTransformExportDeclaration","GLOBAL_PREFIX","node","context","ts","isExportDeclaration","exportClause","isNamedExports","elements","map","element","name","text","globalName","tstl","createAssignmentStatement","createIdentifier","isExportAssignment","expression","transformExpression"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAMaA;;;eAAAA;;;;sEANO;2EAEE;AAEtB,MAAMC,gBAAgB;AAEf,MAAMD,gCAAgC;IACzC,OAAQ,CAACE,MAAMC;QACX,IAAIC,YAAGC,mBAAmB,CAACH,OAAO;YAC9B,IAAI,CAACA,KAAKI,YAAY,EAAE;gBACpB,gCAAgC;gBAChC,OAAO,EAAE;YACb;YAEA,IAAIF,YAAGG,cAAc,CAACL,KAAKI,YAAY,GAAG;gBACtC,OAAOJ,KAAKI,YAAY,CAACE,QAAQ,CAACC,GAAG,CAACC,CAAAA;oBAClC,MAAMC,OAAOD,QAAQC,IAAI,CAACC,IAAI;oBAC9B,MAAMC,aAAa,CAAC,EAAEZ,cAAc,EAAEU,KAAK,CAAC;oBAE5C,OAAOG,iBAAKC,yBAAyB,CACjCD,iBAAKE,gBAAgB,CAACH,aACtBC,iBAAKE,gBAAgB,CAACL;gBAE9B;YACJ;QACJ,OAAO,IAAIP,YAAGa,kBAAkB,CAACf,OAAO;YACpC,wBAAwB;YACxB,MAAMgB,aAAaf,QAAQgB,mBAAmB,CAACjB,KAAKgB,UAAU;YAC9D,OAAO;gBACHJ,iBAAKC,yBAAyB,CAC1BD,iBAAKE,gBAAgB,CAAC,CAAC,EAAEf,cAAc,OAAO,CAAC,GAC/CiB;aAEP;QACL;QAEA,OAAO,EAAE;IACb;AACJ"}
@@ -1,8 +1,5 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- const _export_star = require("@swc/helpers/_/_export_star");
6
- _export_star._(require("./transformNewExpression"), exports);
7
-
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./transformNewExpression"), exports);
8
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformNewExpression/index.ts"],"sourcesContent":["export * from './transformNewExpression';\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;uBAAc"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/tstl-plugin/src/transformNewExpression/index.ts"],"names":[],"mappings":";;;AAAA,mEAAyC"}
@@ -1,24 +1,20 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "isBuiltinNewExpression", {
6
- enumerable: true,
7
- get: function() {
8
- return isBuiltinNewExpression;
9
- }
10
- });
11
- const isBuiltinNewExpression = (node, typeChecker)=>{
12
- if (!node.expression) return false;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isBuiltinNewExpression = void 0;
4
+ const isBuiltinNewExpression = (node, typeChecker) => {
5
+ if (!node.expression)
6
+ return false;
13
7
  const type = typeChecker.getTypeAtLocation(node.expression);
14
8
  const symbol = type.getSymbol();
15
- if (!symbol) return false;
9
+ if (!symbol)
10
+ return false;
16
11
  const declarations = symbol.getDeclarations();
17
- if (!declarations || declarations.length === 0) return false;
18
- return declarations.some((decl)=>{
12
+ if (!declarations || declarations.length === 0)
13
+ return false;
14
+ return declarations.some(decl => {
19
15
  const sourceFile = decl.getSourceFile();
20
16
  return sourceFile.fileName.includes('node_modules/typescript/lib');
21
17
  });
22
18
  };
23
-
19
+ exports.isBuiltinNewExpression = isBuiltinNewExpression;
24
20
  //# sourceMappingURL=isBuiltinNewExpression.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../libs/tstl-plugin/src/transformNewExpression/isBuiltinNewExpression.ts"],"sourcesContent":["import * as ts from 'typescript';\n\nexport const isBuiltinNewExpression = (\n node: ts.NewExpression,\n typeChecker: ts.TypeChecker,\n) => {\n if (!node.expression) return false;\n\n const type = typeChecker.getTypeAtLocation(node.expression);\n\n const symbol = type.getSymbol();\n if (!symbol) return false;\n\n const declarations = symbol.getDeclarations();\n if (!declarations || declarations.length === 0) return false;\n\n return declarations.some(decl => {\n const sourceFile = decl.getSourceFile();\n return sourceFile.fileName.includes('node_modules/typescript/lib');\n });\n};\n"],"names":["isBuiltinNewExpression","node","typeChecker","expression","type","getTypeAtLocation","symbol","getSymbol","declarations","getDeclarations","length","some","decl","sourceFile","getSourceFile","fileName","includes"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAEaA;;;eAAAA;;;AAAN,MAAMA,yBAAyB,CAClCC,MACAC;IAEA,IAAI,CAACD,KAAKE,UAAU,EAAE,OAAO;IAE7B,MAAMC,OAAOF,YAAYG,iBAAiB,CAACJ,KAAKE,UAAU;IAE1D,MAAMG,SAASF,KAAKG,SAAS;IAC7B,IAAI,CAACD,QAAQ,OAAO;IAEpB,MAAME,eAAeF,OAAOG,eAAe;IAC3C,IAAI,CAACD,gBAAgBA,aAAaE,MAAM,KAAK,GAAG,OAAO;IAEvD,OAAOF,aAAaG,IAAI,CAACC,CAAAA;QACrB,MAAMC,aAAaD,KAAKE,aAAa;QACrC,OAAOD,WAAWE,QAAQ,CAACC,QAAQ,CAAC;IACxC;AACJ"}
1
+ {"version":3,"file":"isBuiltinNewExpression.js","sourceRoot":"","sources":["../../../../libs/tstl-plugin/src/transformNewExpression/isBuiltinNewExpression.ts"],"names":[],"mappings":";;;AAEO,MAAM,sBAAsB,GAAG,CAClC,IAAsB,EACtB,WAA2B,EAC7B,EAAE;IACA,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAEnC,MAAM,IAAI,GAAG,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAC9C,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7D,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAlBW,QAAA,sBAAsB,0BAkBjC"}