brighterscript 0.72.0 → 0.72.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/bsconfig.schema.json +62 -0
  2. package/dist/BsConfig.d.ts +56 -1
  3. package/dist/CommentFlagProcessor.d.ts +16 -12
  4. package/dist/CommentFlagProcessor.js +141 -59
  5. package/dist/CommentFlagProcessor.js.map +1 -1
  6. package/dist/DiagnosticMessages.d.ts +27 -1
  7. package/dist/DiagnosticMessages.js +32 -2
  8. package/dist/DiagnosticMessages.js.map +1 -1
  9. package/dist/Program.d.ts +4 -0
  10. package/dist/Program.js +2 -0
  11. package/dist/Program.js.map +1 -1
  12. package/dist/ProgramBuilder.d.ts +1 -8
  13. package/dist/ProgramBuilder.js +31 -11
  14. package/dist/ProgramBuilder.js.map +1 -1
  15. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +38 -0
  16. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +257 -14
  17. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  18. package/dist/bscPlugin/validation/BrsFileValidator.js +13 -0
  19. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  20. package/dist/cli.js +13 -0
  21. package/dist/cli.js.map +1 -1
  22. package/dist/diagnosticUtils.d.ts +51 -1
  23. package/dist/diagnosticUtils.js +222 -1
  24. package/dist/diagnosticUtils.js.map +1 -1
  25. package/dist/files/BrsFile.js +4 -2
  26. package/dist/files/BrsFile.js.map +1 -1
  27. package/dist/files/XmlFile.js +2 -1
  28. package/dist/files/XmlFile.js.map +1 -1
  29. package/dist/interfaces.d.ts +15 -1
  30. package/dist/lexer/TokenKind.d.ts +8 -0
  31. package/dist/lexer/TokenKind.js +21 -1
  32. package/dist/lexer/TokenKind.js.map +1 -1
  33. package/dist/lsp/LspProject.d.ts +19 -0
  34. package/dist/lsp/Project.d.ts +14 -0
  35. package/dist/lsp/Project.js +9 -1
  36. package/dist/lsp/Project.js.map +1 -1
  37. package/dist/lsp/ProjectManager.js +15 -1
  38. package/dist/lsp/ProjectManager.js.map +1 -1
  39. package/dist/lsp/worker/WorkerThreadProject.d.ts +14 -0
  40. package/dist/lsp/worker/WorkerThreadProject.js +7 -0
  41. package/dist/lsp/worker/WorkerThreadProject.js.map +1 -1
  42. package/dist/parser/Parser.d.ts +13 -1
  43. package/dist/parser/Parser.js +40 -14
  44. package/dist/parser/Parser.js.map +1 -1
  45. package/dist/util.js +20 -9
  46. package/dist/util.js.map +1 -1
  47. package/package.json +17 -14
  48. package/dist/astUtils/AstEditor.spec.d.ts +0 -1
  49. package/dist/astUtils/AstEditor.spec.js +0 -254
  50. package/dist/astUtils/AstEditor.spec.js.map +0 -1
  51. package/dist/astUtils/creators.spec.d.ts +0 -1
  52. package/dist/astUtils/creators.spec.js +0 -21
  53. package/dist/astUtils/creators.spec.js.map +0 -1
  54. package/dist/astUtils/reflection.spec.d.ts +0 -1
  55. package/dist/astUtils/reflection.spec.js +0 -308
  56. package/dist/astUtils/reflection.spec.js.map +0 -1
  57. package/dist/astUtils/stackedVisitor.spec.d.ts +0 -1
  58. package/dist/astUtils/stackedVisitor.spec.js +0 -79
  59. package/dist/astUtils/stackedVisitor.spec.js.map +0 -1
  60. package/dist/astUtils/visitors.spec.d.ts +0 -1
  61. package/dist/astUtils/visitors.spec.js +0 -1197
  62. package/dist/astUtils/visitors.spec.js.map +0 -1
  63. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.d.ts +0 -1
  64. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js +0 -887
  65. package/dist/bscPlugin/codeActions/CodeActionsProcessor.spec.js.map +0 -1
  66. package/dist/bscPlugin/definition/DefinitionProvider.spec.d.ts +0 -1
  67. package/dist/bscPlugin/definition/DefinitionProvider.spec.js +0 -171
  68. package/dist/bscPlugin/definition/DefinitionProvider.spec.js.map +0 -1
  69. package/dist/bscPlugin/hover/HoverProcessor.spec.d.ts +0 -1
  70. package/dist/bscPlugin/hover/HoverProcessor.spec.js +0 -201
  71. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +0 -1
  72. package/dist/bscPlugin/references/ReferencesProvider.spec.d.ts +0 -1
  73. package/dist/bscPlugin/references/ReferencesProvider.spec.js +0 -51
  74. package/dist/bscPlugin/references/ReferencesProvider.spec.js.map +0 -1
  75. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.d.ts +0 -1
  76. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.js +0 -298
  77. package/dist/bscPlugin/selectionRanges/SelectionRangesProcessor.spec.js.map +0 -1
  78. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.d.ts +0 -1
  79. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js +0 -399
  80. package/dist/bscPlugin/semanticTokens/BrsFileSemanticTokensProcessor.spec.js.map +0 -1
  81. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.d.ts +0 -1
  82. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js +0 -290
  83. package/dist/bscPlugin/symbols/DocumentSymbolProcessor.spec.js.map +0 -1
  84. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.d.ts +0 -1
  85. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js +0 -245
  86. package/dist/bscPlugin/symbols/WorkspaceSymbolProcessor.spec.js.map +0 -1
  87. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.d.ts +0 -1
  88. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js +0 -46
  89. package/dist/bscPlugin/transpile/BrsFilePreTranspileProcessor.spec.js.map +0 -1
  90. package/dist/bscPlugin/validation/BrsFileValidator.spec.d.ts +0 -1
  91. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +0 -487
  92. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +0 -1
  93. package/dist/common/Sequencer.spec.d.ts +0 -1
  94. package/dist/common/Sequencer.spec.js +0 -75
  95. package/dist/common/Sequencer.spec.js.map +0 -1
  96. package/dist/files/BrsFile.Class.spec.d.ts +0 -1
  97. package/dist/files/BrsFile.Class.spec.js +0 -1805
  98. package/dist/files/BrsFile.Class.spec.js.map +0 -1
  99. package/dist/files/BrsFile.spec.d.ts +0 -1
  100. package/dist/files/BrsFile.spec.js +0 -4420
  101. package/dist/files/BrsFile.spec.js.map +0 -1
  102. package/dist/files/XmlFile.spec.d.ts +0 -1
  103. package/dist/files/XmlFile.spec.js +0 -1169
  104. package/dist/files/XmlFile.spec.js.map +0 -1
  105. package/dist/files/tests/imports.spec.d.ts +0 -1
  106. package/dist/files/tests/imports.spec.js +0 -241
  107. package/dist/files/tests/imports.spec.js.map +0 -1
  108. package/dist/files/tests/optionalChaning.spec.d.ts +0 -1
  109. package/dist/files/tests/optionalChaning.spec.js +0 -152
  110. package/dist/files/tests/optionalChaning.spec.js.map +0 -1
  111. package/dist/lexer/Character.spec.d.ts +0 -1
  112. package/dist/lexer/Character.spec.js +0 -27
  113. package/dist/lexer/Character.spec.js.map +0 -1
  114. package/dist/lexer/Lexer.spec.d.ts +0 -1
  115. package/dist/lexer/Lexer.spec.js +0 -1300
  116. package/dist/lexer/Lexer.spec.js.map +0 -1
  117. package/dist/lsp/ActionQueue.spec.d.ts +0 -1
  118. package/dist/lsp/ActionQueue.spec.js +0 -80
  119. package/dist/lsp/ActionQueue.spec.js.map +0 -1
  120. package/dist/lsp/DocumentManager.spec.d.ts +0 -1
  121. package/dist/lsp/DocumentManager.spec.js +0 -103
  122. package/dist/lsp/DocumentManager.spec.js.map +0 -1
  123. package/dist/lsp/PathFilterer.spec.d.ts +0 -1
  124. package/dist/lsp/PathFilterer.spec.js +0 -182
  125. package/dist/lsp/PathFilterer.spec.js.map +0 -1
  126. package/dist/lsp/Project.spec.d.ts +0 -1
  127. package/dist/lsp/Project.spec.js +0 -400
  128. package/dist/lsp/Project.spec.js.map +0 -1
  129. package/dist/lsp/ProjectManager.spec.d.ts +0 -1
  130. package/dist/lsp/ProjectManager.spec.js +0 -1147
  131. package/dist/lsp/ProjectManager.spec.js.map +0 -1
  132. package/dist/lsp/worker/MessageHandler.spec.d.ts +0 -1
  133. package/dist/lsp/worker/MessageHandler.spec.js +0 -64
  134. package/dist/lsp/worker/MessageHandler.spec.js.map +0 -1
  135. package/dist/lsp/worker/WorkerPool.spec.d.ts +0 -1
  136. package/dist/lsp/worker/WorkerPool.spec.js +0 -59
  137. package/dist/lsp/worker/WorkerPool.spec.js.map +0 -1
  138. package/dist/lsp/worker/WorkerThreadProject.spec.d.ts +0 -2
  139. package/dist/lsp/worker/WorkerThreadProject.spec.js +0 -72
  140. package/dist/lsp/worker/WorkerThreadProject.spec.js.map +0 -1
  141. package/dist/parser/AstNode.spec.d.ts +0 -1
  142. package/dist/parser/AstNode.spec.js +0 -1452
  143. package/dist/parser/AstNode.spec.js.map +0 -1
  144. package/dist/parser/Expression.spec.d.ts +0 -1
  145. package/dist/parser/Expression.spec.js +0 -40
  146. package/dist/parser/Expression.spec.js.map +0 -1
  147. package/dist/parser/Parser.Class.spec.d.ts +0 -1
  148. package/dist/parser/Parser.Class.spec.js +0 -495
  149. package/dist/parser/Parser.Class.spec.js.map +0 -1
  150. package/dist/parser/Parser.spec.d.ts +0 -4
  151. package/dist/parser/Parser.spec.js +0 -1857
  152. package/dist/parser/Parser.spec.js.map +0 -1
  153. package/dist/parser/SGParser.spec.d.ts +0 -1
  154. package/dist/parser/SGParser.spec.js +0 -131
  155. package/dist/parser/SGParser.spec.js.map +0 -1
  156. package/dist/parser/Statement.spec.d.ts +0 -1
  157. package/dist/parser/Statement.spec.js +0 -118
  158. package/dist/parser/Statement.spec.js.map +0 -1
  159. package/dist/parser/tests/Parser.spec.d.ts +0 -19
  160. package/dist/parser/tests/Parser.spec.js +0 -38
  161. package/dist/parser/tests/Parser.spec.js.map +0 -1
  162. package/dist/parser/tests/controlFlow/For.spec.d.ts +0 -1
  163. package/dist/parser/tests/controlFlow/For.spec.js +0 -161
  164. package/dist/parser/tests/controlFlow/For.spec.js.map +0 -1
  165. package/dist/parser/tests/controlFlow/ForEach.spec.d.ts +0 -1
  166. package/dist/parser/tests/controlFlow/ForEach.spec.js +0 -106
  167. package/dist/parser/tests/controlFlow/ForEach.spec.js.map +0 -1
  168. package/dist/parser/tests/controlFlow/If.spec.d.ts +0 -1
  169. package/dist/parser/tests/controlFlow/If.spec.js +0 -570
  170. package/dist/parser/tests/controlFlow/If.spec.js.map +0 -1
  171. package/dist/parser/tests/controlFlow/While.spec.d.ts +0 -1
  172. package/dist/parser/tests/controlFlow/While.spec.js +0 -107
  173. package/dist/parser/tests/controlFlow/While.spec.js.map +0 -1
  174. package/dist/parser/tests/expression/Additive.spec.d.ts +0 -1
  175. package/dist/parser/tests/expression/Additive.spec.js +0 -99
  176. package/dist/parser/tests/expression/Additive.spec.js.map +0 -1
  177. package/dist/parser/tests/expression/ArrayLiterals.spec.d.ts +0 -1
  178. package/dist/parser/tests/expression/ArrayLiterals.spec.js +0 -291
  179. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +0 -1
  180. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.d.ts +0 -1
  181. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +0 -401
  182. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +0 -1
  183. package/dist/parser/tests/expression/Boolean.spec.d.ts +0 -1
  184. package/dist/parser/tests/expression/Boolean.spec.js +0 -83
  185. package/dist/parser/tests/expression/Boolean.spec.js.map +0 -1
  186. package/dist/parser/tests/expression/Call.spec.d.ts +0 -1
  187. package/dist/parser/tests/expression/Call.spec.js +0 -242
  188. package/dist/parser/tests/expression/Call.spec.js.map +0 -1
  189. package/dist/parser/tests/expression/Exponential.spec.d.ts +0 -1
  190. package/dist/parser/tests/expression/Exponential.spec.js +0 -37
  191. package/dist/parser/tests/expression/Exponential.spec.js.map +0 -1
  192. package/dist/parser/tests/expression/Function.spec.d.ts +0 -1
  193. package/dist/parser/tests/expression/Function.spec.js +0 -403
  194. package/dist/parser/tests/expression/Function.spec.js.map +0 -1
  195. package/dist/parser/tests/expression/Indexing.spec.d.ts +0 -1
  196. package/dist/parser/tests/expression/Indexing.spec.js +0 -289
  197. package/dist/parser/tests/expression/Indexing.spec.js.map +0 -1
  198. package/dist/parser/tests/expression/Multiplicative.spec.d.ts +0 -1
  199. package/dist/parser/tests/expression/Multiplicative.spec.js +0 -67
  200. package/dist/parser/tests/expression/Multiplicative.spec.js.map +0 -1
  201. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.d.ts +0 -1
  202. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js +0 -346
  203. package/dist/parser/tests/expression/NullCoalescenceExpression.spec.js.map +0 -1
  204. package/dist/parser/tests/expression/PrefixUnary.spec.d.ts +0 -1
  205. package/dist/parser/tests/expression/PrefixUnary.spec.js +0 -105
  206. package/dist/parser/tests/expression/PrefixUnary.spec.js.map +0 -1
  207. package/dist/parser/tests/expression/Primary.spec.d.ts +0 -1
  208. package/dist/parser/tests/expression/Primary.spec.js +0 -149
  209. package/dist/parser/tests/expression/Primary.spec.js.map +0 -1
  210. package/dist/parser/tests/expression/RegexLiteralExpression.spec.d.ts +0 -1
  211. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js +0 -171
  212. package/dist/parser/tests/expression/RegexLiteralExpression.spec.js.map +0 -1
  213. package/dist/parser/tests/expression/Relational.spec.d.ts +0 -1
  214. package/dist/parser/tests/expression/Relational.spec.js +0 -83
  215. package/dist/parser/tests/expression/Relational.spec.js.map +0 -1
  216. package/dist/parser/tests/expression/SourceLiteralExpression.spec.d.ts +0 -1
  217. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js +0 -201
  218. package/dist/parser/tests/expression/SourceLiteralExpression.spec.js.map +0 -1
  219. package/dist/parser/tests/expression/TemplateStringExpression.spec.d.ts +0 -1
  220. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +0 -389
  221. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +0 -1
  222. package/dist/parser/tests/expression/TernaryExpression.spec.d.ts +0 -1
  223. package/dist/parser/tests/expression/TernaryExpression.spec.js +0 -876
  224. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +0 -1
  225. package/dist/parser/tests/expression/UnaryExpression.spec.d.ts +0 -1
  226. package/dist/parser/tests/expression/UnaryExpression.spec.js +0 -52
  227. package/dist/parser/tests/expression/UnaryExpression.spec.js.map +0 -1
  228. package/dist/parser/tests/statement/AssignmentOperators.spec.d.ts +0 -1
  229. package/dist/parser/tests/statement/AssignmentOperators.spec.js +0 -79
  230. package/dist/parser/tests/statement/AssignmentOperators.spec.js.map +0 -1
  231. package/dist/parser/tests/statement/ConstStatement.spec.d.ts +0 -1
  232. package/dist/parser/tests/statement/ConstStatement.spec.js +0 -708
  233. package/dist/parser/tests/statement/ConstStatement.spec.js.map +0 -1
  234. package/dist/parser/tests/statement/Continue.spec.d.ts +0 -1
  235. package/dist/parser/tests/statement/Continue.spec.js +0 -119
  236. package/dist/parser/tests/statement/Continue.spec.js.map +0 -1
  237. package/dist/parser/tests/statement/Declaration.spec.d.ts +0 -1
  238. package/dist/parser/tests/statement/Declaration.spec.js +0 -108
  239. package/dist/parser/tests/statement/Declaration.spec.js.map +0 -1
  240. package/dist/parser/tests/statement/Dim.spec.d.ts +0 -1
  241. package/dist/parser/tests/statement/Dim.spec.js +0 -73
  242. package/dist/parser/tests/statement/Dim.spec.js.map +0 -1
  243. package/dist/parser/tests/statement/Enum.spec.d.ts +0 -1
  244. package/dist/parser/tests/statement/Enum.spec.js +0 -1307
  245. package/dist/parser/tests/statement/Enum.spec.js.map +0 -1
  246. package/dist/parser/tests/statement/For.spec.d.ts +0 -1
  247. package/dist/parser/tests/statement/For.spec.js +0 -45
  248. package/dist/parser/tests/statement/For.spec.js.map +0 -1
  249. package/dist/parser/tests/statement/ForEach.spec.d.ts +0 -1
  250. package/dist/parser/tests/statement/ForEach.spec.js +0 -36
  251. package/dist/parser/tests/statement/ForEach.spec.js.map +0 -1
  252. package/dist/parser/tests/statement/Function.spec.d.ts +0 -1
  253. package/dist/parser/tests/statement/Function.spec.js +0 -342
  254. package/dist/parser/tests/statement/Function.spec.js.map +0 -1
  255. package/dist/parser/tests/statement/Goto.spec.d.ts +0 -1
  256. package/dist/parser/tests/statement/Goto.spec.js +0 -51
  257. package/dist/parser/tests/statement/Goto.spec.js.map +0 -1
  258. package/dist/parser/tests/statement/Increment.spec.d.ts +0 -1
  259. package/dist/parser/tests/statement/Increment.spec.js +0 -117
  260. package/dist/parser/tests/statement/Increment.spec.js.map +0 -1
  261. package/dist/parser/tests/statement/InterfaceStatement.spec.d.ts +0 -1
  262. package/dist/parser/tests/statement/InterfaceStatement.spec.js +0 -102
  263. package/dist/parser/tests/statement/InterfaceStatement.spec.js.map +0 -1
  264. package/dist/parser/tests/statement/LibraryStatement.spec.d.ts +0 -1
  265. package/dist/parser/tests/statement/LibraryStatement.spec.js +0 -74
  266. package/dist/parser/tests/statement/LibraryStatement.spec.js.map +0 -1
  267. package/dist/parser/tests/statement/Misc.spec.d.ts +0 -1
  268. package/dist/parser/tests/statement/Misc.spec.js +0 -335
  269. package/dist/parser/tests/statement/Misc.spec.js.map +0 -1
  270. package/dist/parser/tests/statement/PrintStatement.spec.d.ts +0 -1
  271. package/dist/parser/tests/statement/PrintStatement.spec.js +0 -195
  272. package/dist/parser/tests/statement/PrintStatement.spec.js.map +0 -1
  273. package/dist/parser/tests/statement/ReturnStatement.spec.d.ts +0 -1
  274. package/dist/parser/tests/statement/ReturnStatement.spec.js +0 -94
  275. package/dist/parser/tests/statement/ReturnStatement.spec.js.map +0 -1
  276. package/dist/parser/tests/statement/Set.spec.d.ts +0 -1
  277. package/dist/parser/tests/statement/Set.spec.js +0 -218
  278. package/dist/parser/tests/statement/Set.spec.js.map +0 -1
  279. package/dist/parser/tests/statement/Stop.spec.d.ts +0 -1
  280. package/dist/parser/tests/statement/Stop.spec.js +0 -38
  281. package/dist/parser/tests/statement/Stop.spec.js.map +0 -1
  282. package/dist/parser/tests/statement/Throw.spec.d.ts +0 -1
  283. package/dist/parser/tests/statement/Throw.spec.js +0 -35
  284. package/dist/parser/tests/statement/Throw.spec.js.map +0 -1
  285. package/dist/parser/tests/statement/TryCatch.spec.d.ts +0 -1
  286. package/dist/parser/tests/statement/TryCatch.spec.js +0 -142
  287. package/dist/parser/tests/statement/TryCatch.spec.js.map +0 -1
  288. package/dist/preprocessor/Manifest.spec.d.ts +0 -1
  289. package/dist/preprocessor/Manifest.spec.js +0 -80
  290. package/dist/preprocessor/Manifest.spec.js.map +0 -1
  291. package/dist/preprocessor/Preprocessor.spec.d.ts +0 -1
  292. package/dist/preprocessor/Preprocessor.spec.js +0 -152
  293. package/dist/preprocessor/Preprocessor.spec.js.map +0 -1
  294. package/dist/preprocessor/PreprocessorParser.spec.d.ts +0 -1
  295. package/dist/preprocessor/PreprocessorParser.spec.js +0 -116
  296. package/dist/preprocessor/PreprocessorParser.spec.js.map +0 -1
  297. package/dist/types/ArrayType.spec.d.ts +0 -1
  298. package/dist/types/ArrayType.spec.js +0 -30
  299. package/dist/types/ArrayType.spec.js.map +0 -1
  300. package/dist/types/BooleanType.spec.d.ts +0 -1
  301. package/dist/types/BooleanType.spec.js +0 -12
  302. package/dist/types/BooleanType.spec.js.map +0 -1
  303. package/dist/types/DoubleType.spec.d.ts +0 -1
  304. package/dist/types/DoubleType.spec.js +0 -12
  305. package/dist/types/DoubleType.spec.js.map +0 -1
  306. package/dist/types/DynamicType.spec.d.ts +0 -1
  307. package/dist/types/DynamicType.spec.js +0 -12
  308. package/dist/types/DynamicType.spec.js.map +0 -1
  309. package/dist/types/FloatType.spec.d.ts +0 -1
  310. package/dist/types/FloatType.spec.js +0 -12
  311. package/dist/types/FloatType.spec.js.map +0 -1
  312. package/dist/types/FunctionType.spec.d.ts +0 -1
  313. package/dist/types/FunctionType.spec.js +0 -23
  314. package/dist/types/FunctionType.spec.js.map +0 -1
  315. package/dist/types/IntegerType.spec.d.ts +0 -1
  316. package/dist/types/IntegerType.spec.js +0 -12
  317. package/dist/types/IntegerType.spec.js.map +0 -1
  318. package/dist/types/InterfaceType.spec.d.ts +0 -1
  319. package/dist/types/InterfaceType.spec.js +0 -175
  320. package/dist/types/InterfaceType.spec.js.map +0 -1
  321. package/dist/types/InvalidType.spec.d.ts +0 -1
  322. package/dist/types/InvalidType.spec.js +0 -12
  323. package/dist/types/InvalidType.spec.js.map +0 -1
  324. package/dist/types/LongIntegerType.spec.d.ts +0 -1
  325. package/dist/types/LongIntegerType.spec.js +0 -12
  326. package/dist/types/LongIntegerType.spec.js.map +0 -1
  327. package/dist/types/ObjectType.spec.d.ts +0 -1
  328. package/dist/types/ObjectType.spec.js +0 -12
  329. package/dist/types/ObjectType.spec.js.map +0 -1
  330. package/dist/types/StringType.spec.d.ts +0 -1
  331. package/dist/types/StringType.spec.js +0 -12
  332. package/dist/types/StringType.spec.js.map +0 -1
  333. package/dist/types/VoidType.spec.d.ts +0 -1
  334. package/dist/types/VoidType.spec.js +0 -12
  335. package/dist/types/VoidType.spec.js.map +0 -1
@@ -1,487 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_config_spec_1 = require("../../chai-config.spec");
4
- const DiagnosticMessages_1 = require("../../DiagnosticMessages");
5
- const testHelpers_spec_1 = require("../../testHelpers.spec");
6
- const Program_1 = require("../../Program");
7
- const reflection_1 = require("../../astUtils/reflection");
8
- const util_1 = require("../../util");
9
- describe('BrsFileValidator', () => {
10
- let program;
11
- beforeEach(() => {
12
- program = new Program_1.Program({});
13
- });
14
- it('links dotted get expression parents', () => {
15
- const file = program.setFile('source/main.bs', `
16
- sub main()
17
- print {}.beta.charlie
18
- end sub
19
- `);
20
- program.validate();
21
- const func = file.parser.ast.statements[0];
22
- const print = func.func.body.statements[0];
23
- (0, chai_config_spec_1.expect)(print.parent).to.equal(func.func.body);
24
- const charlie = print.expressions[0];
25
- (0, chai_config_spec_1.expect)(charlie.parent).to.equal(print);
26
- const beta = charlie.obj;
27
- (0, chai_config_spec_1.expect)(beta.parent).to.equal(charlie);
28
- const aaLiteral = beta.obj;
29
- (0, chai_config_spec_1.expect)(aaLiteral.parent).to.equal(beta);
30
- });
31
- it('links NamespacedVariableNameExpression dotted get parents', () => {
32
- const { ast } = program.setFile('source/main.bs', `
33
- namespace alpha.bravo
34
- class Delta extends alpha.bravo.Charlie
35
- end class
36
- class Charlie
37
- end class
38
- end namespace
39
- `);
40
- const namespace = ast.findChild(reflection_1.isNamespaceStatement);
41
- const deltaClass = namespace.findChild(reflection_1.isClassStatement);
42
- (0, chai_config_spec_1.expect)(deltaClass.parent).to.equal(namespace.body);
43
- const charlie = deltaClass.parentClassName.expression;
44
- (0, chai_config_spec_1.expect)(charlie.parent).to.equal(deltaClass.parentClassName);
45
- const bravo = charlie.obj;
46
- (0, chai_config_spec_1.expect)(bravo.parent).to.equal(charlie);
47
- const alpha = bravo.obj;
48
- (0, chai_config_spec_1.expect)(alpha.parent).to.equal(bravo);
49
- });
50
- describe('namespace validation', () => {
51
- it('succeeds if namespaces are defined inside other namespaces', () => {
52
- program.setFile('source/main.bs', `
53
- namespace alpha
54
- ' random comment
55
- namespace bravo
56
- ' random comment
57
- sub main()
58
- end sub
59
- end namespace
60
- end namespace
61
- `);
62
- program.validate();
63
- (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
64
- });
65
- it('fails if namespaces are defined inside a function', () => {
66
- program.setFile('source/main.bs', `
67
- function f()
68
- namespace alpha
69
- end namespace
70
- end function
71
- `);
72
- program.validate();
73
- (0, testHelpers_spec_1.expectDiagnostics)(program, [
74
- DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('namespace')
75
- ]);
76
- });
77
- });
78
- it('allows classes in correct locations', () => {
79
- program.setFile('source/main.bs', `
80
- class Alpha
81
- end class
82
- namespace Beta
83
- class Charlie
84
- end class
85
- namespace Delta
86
- class Echo
87
- end class
88
- end namespace
89
- end namespace
90
- `);
91
- program.validate();
92
- (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
93
- });
94
- it('flags classes in wrong locations', () => {
95
- program.setFile('source/main.bs', `
96
- function test()
97
- class Alpha
98
- end class
99
- if true then
100
- class Beta
101
- end class
102
- end if
103
- end function
104
- `);
105
- program.validate();
106
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('class')), { range: util_1.default.createRange(2, 16, 2, 27) }), Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('class')), { range: util_1.default.createRange(5, 20, 5, 30) })]);
107
- });
108
- it('allows enums in correct locations', () => {
109
- program.setFile('source/main.bs', `
110
- enum Alpha
111
- value1
112
- end enum
113
- namespace Beta
114
- enum Charlie
115
- value1
116
- end enum
117
- namespace Delta
118
- enum Echo
119
- value1
120
- end enum
121
- end namespace
122
- end namespace
123
- `);
124
- program.validate();
125
- (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
126
- });
127
- it('flags enums in wrong locations', () => {
128
- program.setFile('source/main.bs', `
129
- function test()
130
- enum Alpha
131
- value1
132
- end enum
133
- if true then
134
- enum Beta
135
- value1
136
- end enum
137
- end if
138
- end function
139
- `);
140
- program.validate();
141
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('enum')), { range: util_1.default.createRange(2, 16, 2, 26) }), Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('enum')), { range: util_1.default.createRange(6, 20, 6, 29) })]);
142
- });
143
- it('allows functions in correct locations', () => {
144
- program.setFile('source/main.bs', `
145
- function Alpha()
146
- end function
147
- namespace Beta
148
- function Charlie()
149
- end function
150
- namespace Delta
151
- function Echo()
152
- end function
153
- end namespace
154
- end namespace
155
- `);
156
- program.validate();
157
- (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
158
- });
159
- it('flags functions in wrong locations', () => {
160
- program.setFile('source/main.bs', `
161
- function test()
162
- function Alpha()
163
- end function
164
- if true then
165
- function Beta()
166
- end function
167
- end if
168
- end function
169
- `);
170
- program.validate();
171
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('function')), { range: util_1.default.createRange(2, 16, 2, 30) }), Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('function')), { range: util_1.default.createRange(5, 20, 5, 33) })]);
172
- });
173
- it('allows namespaces in correct locations', () => {
174
- program.setFile('source/main.bs', `
175
- namespace Alpha
176
- end namespace
177
- namespace Beta
178
- namespace Charlie
179
- end namespace
180
- namespace Delta
181
- namespace Echo
182
- end namespace
183
- end namespace
184
- end namespace
185
- `);
186
- program.validate();
187
- (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
188
- });
189
- it('flags classes in wrong locations', () => {
190
- program.setFile('source/main.bs', `
191
- function test()
192
- namespace Alpha
193
- end namespace
194
- if true then
195
- namespace Beta
196
- end namespace
197
- end if
198
- end function
199
- `);
200
- program.validate();
201
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('namespace')), { range: util_1.default.createRange(2, 16, 2, 31) }), Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('namespace')), { range: util_1.default.createRange(5, 20, 5, 34) })]);
202
- });
203
- it('allows interfaces in correct locations', () => {
204
- program.setFile('source/main.bs', `
205
- interface Alpha
206
- prop as string
207
- end interface
208
- namespace Beta
209
- interface Charlie
210
- prop as string
211
- end interface
212
- namespace Delta
213
- interface Echo
214
- prop as string
215
- end interface
216
- end namespace
217
- end namespace
218
- `);
219
- program.validate();
220
- (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
221
- });
222
- it('flags interfaces in wrong locations', () => {
223
- program.setFile('source/main.bs', `
224
- function test()
225
- interface Alpha
226
- prop as string
227
- end interface
228
- if true then
229
- interface Beta
230
- prop as string
231
- end interface
232
- end if
233
- end function
234
- `);
235
- program.validate();
236
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('interface')), { range: util_1.default.createRange(2, 16, 2, 31) }), Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('interface')), { range: util_1.default.createRange(6, 20, 6, 34) })]);
237
- });
238
- it('allows consts in correct locations', () => {
239
- program.setFile('source/main.bs', `
240
- const Alpha = 1
241
- namespace Beta
242
- const Charlie = 2
243
- namespace Delta
244
- const Echo = 3
245
- end namespace
246
- end namespace
247
- `);
248
- program.validate();
249
- (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
250
- });
251
- it('flags consts in wrong locations', () => {
252
- program.setFile('source/main.bs', `
253
- function test()
254
- const Alpha = 1
255
- if true then
256
- const Beta = 2
257
- end if
258
- end function
259
- `);
260
- program.validate();
261
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('const')), { range: util_1.default.createRange(2, 16, 2, 27) }), Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.keywordMustBeDeclaredAtNamespaceLevel('const')), { range: util_1.default.createRange(4, 20, 4, 30) })]);
262
- });
263
- describe('function return values', () => {
264
- it('catches sub with return value', () => {
265
- program.setFile('source/main.brs', `
266
- sub test()
267
- return true
268
- end sub
269
- `);
270
- program.validate();
271
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.voidFunctionMayNotReturnValue('sub')), { range: util_1.default.createRange(2, 20, 2, 31) })]);
272
- });
273
- it('catches sub as void with return value', () => {
274
- program.setFile('source/main.brs', `
275
- sub test() as void
276
- return true
277
- end sub
278
- `);
279
- program.validate();
280
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.voidFunctionMayNotReturnValue('sub')), { range: util_1.default.createRange(2, 20, 2, 31) })]);
281
- });
282
- it('catches function as void with return value', () => {
283
- program.setFile('source/main.brs', `
284
- function test() as void
285
- return true
286
- end function
287
- `);
288
- program.validate();
289
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.voidFunctionMayNotReturnValue('function')), { range: util_1.default.createRange(2, 20, 2, 31) })]);
290
- });
291
- it('catches sub as <type> without return value', () => {
292
- program.setFile('source/main.brs', `
293
- sub test() as integer
294
- return
295
- end sub
296
- `);
297
- program.validate();
298
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.nonVoidFunctionMustReturnValue('sub')), { range: util_1.default.createRange(2, 20, 2, 26) })]);
299
- });
300
- it('catches function without return value', () => {
301
- program.setFile('source/main.brs', `
302
- function test()
303
- return
304
- end function
305
- `);
306
- program.validate();
307
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.nonVoidFunctionMustReturnValue('function')), { range: util_1.default.createRange(2, 20, 2, 26) })]);
308
- });
309
- it('catches function as <type> without return value', () => {
310
- program.setFile('source/main.brs', `
311
- function test() as integer
312
- return
313
- end function
314
- `);
315
- program.validate();
316
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.nonVoidFunctionMustReturnValue('function')), { range: util_1.default.createRange(2, 20, 2, 26) })]);
317
- });
318
- it('catches anon sub with return value', () => {
319
- program.setFile('source/main.brs', `
320
- sub main()
321
- test = sub()
322
- return true
323
- end sub
324
- end sub
325
- `);
326
- program.validate();
327
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.voidFunctionMayNotReturnValue('sub')), { range: util_1.default.createRange(3, 24, 3, 35) })]);
328
- });
329
- it('catches sub as void with return value', () => {
330
- program.setFile('source/main.brs', `
331
- sub main()
332
- test = sub() as void
333
- return true
334
- end sub
335
- end sub
336
- `);
337
- program.validate();
338
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.voidFunctionMayNotReturnValue('sub')), { range: util_1.default.createRange(3, 24, 3, 35) })]);
339
- });
340
- it('catches function as void with return value', () => {
341
- program.setFile('source/main.brs', `
342
- sub main()
343
- test = function() as void
344
- return true
345
- end function
346
- end sub
347
- `);
348
- program.validate();
349
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.voidFunctionMayNotReturnValue('function')), { range: util_1.default.createRange(3, 24, 3, 35) })]);
350
- });
351
- it('catches sub as <type> without return value', () => {
352
- program.setFile('source/main.brs', `
353
- sub main()
354
- test = sub() as integer
355
- return
356
- end sub
357
- end sub
358
- `);
359
- program.validate();
360
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.nonVoidFunctionMustReturnValue('sub')), { range: util_1.default.createRange(3, 24, 3, 30) })]);
361
- });
362
- it('catches function without return value', () => {
363
- program.setFile('source/main.brs', `
364
- sub main()
365
- test = function()
366
- return
367
- end function
368
- end sub
369
- `);
370
- program.validate();
371
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.nonVoidFunctionMustReturnValue('function')), { range: util_1.default.createRange(3, 24, 3, 30) })]);
372
- });
373
- it('catches function as <type> without return value', () => {
374
- program.setFile('source/main.brs', `
375
- sub main()
376
- test = function() as integer
377
- return
378
- end function
379
- end sub
380
- `);
381
- program.validate();
382
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign(Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.nonVoidFunctionMustReturnValue('function')), { range: util_1.default.createRange(3, 24, 3, 30) })]);
383
- });
384
- });
385
- describe('minFirmwareVersion', () => {
386
- describe('optional chaining', () => {
387
- it('allows optional chaining in .brs files when minFirmwareVersion is not set', () => {
388
- program.setFile('source/main.brs', `
389
- sub main()
390
- obj = {}
391
- value = obj?.name
392
- end sub
393
- `);
394
- program.validate();
395
- (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
396
- });
397
- it('allows optional chaining in .bs files when minFirmwareVersion is not set', () => {
398
- program.setFile('source/main.bs', `
399
- sub main()
400
- obj = {}
401
- value = obj?.name
402
- end sub
403
- `);
404
- program.validate();
405
- (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
406
- });
407
- it('allows optional chaining in .brs files when minFirmwareVersion is 11.0.0', () => {
408
- program = new Program_1.Program({ minFirmwareVersion: '11.0.0' });
409
- program.setFile('source/main.brs', `
410
- sub main()
411
- obj = {}
412
- value = obj?.name
413
- end sub
414
- `);
415
- program.validate();
416
- (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
417
- });
418
- it('allows optional chaining in .bs files when minFirmwareVersion is 11.0.0', () => {
419
- program = new Program_1.Program({ minFirmwareVersion: '11.0.0' });
420
- program.setFile('source/main.bs', `
421
- sub main()
422
- obj = {}
423
- value = obj?.name
424
- end sub
425
- `);
426
- program.validate();
427
- (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
428
- });
429
- it('allows optional chaining in .brs files when minFirmwareVersion is above 11.0.0', () => {
430
- program = new Program_1.Program({ minFirmwareVersion: '12.0.0' });
431
- program.setFile('source/main.brs', `
432
- sub main()
433
- obj = {}
434
- value = obj?.name
435
- end sub
436
- `);
437
- program.validate();
438
- (0, testHelpers_spec_1.expectZeroDiagnostics)(program);
439
- });
440
- it('flags optional chaining (dotted get) in .brs files when minFirmwareVersion is below 11.0.0', () => {
441
- program = new Program_1.Program({ minFirmwareVersion: '10.0.0' });
442
- program.setFile('source/main.brs', `
443
- sub main()
444
- obj = {}
445
- value = obj?.name
446
- end sub
447
- `);
448
- program.validate();
449
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.featureRequiresMinFirmwareVersion('optional chaining', '11.0.0', '10.0.0'))]);
450
- });
451
- it('flags optional chaining (dotted get) in .bs files when minFirmwareVersion is below 11.0.0', () => {
452
- program = new Program_1.Program({ minFirmwareVersion: '10.0.0' });
453
- program.setFile('source/main.bs', `
454
- sub main()
455
- obj = {}
456
- value = obj?.name
457
- end sub
458
- `);
459
- program.validate();
460
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.featureRequiresMinFirmwareVersion('optional chaining', '11.0.0', '10.0.0'))]);
461
- });
462
- it('flags optional chaining (indexed get) in .brs files when minFirmwareVersion is below 11.0.0', () => {
463
- program = new Program_1.Program({ minFirmwareVersion: '10.0.0' });
464
- program.setFile('source/main.brs', `
465
- sub main()
466
- arr = []
467
- value = arr?[0]
468
- end sub
469
- `);
470
- program.validate();
471
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.featureRequiresMinFirmwareVersion('optional chaining', '11.0.0', '10.0.0'))]);
472
- });
473
- it('flags optional chaining (call expression) in .brs files when minFirmwareVersion is below 11.0.0', () => {
474
- program = new Program_1.Program({ minFirmwareVersion: '10.0.0' });
475
- program.setFile('source/main.brs', `
476
- sub main()
477
- obj = {}
478
- obj.doSomething?()
479
- end sub
480
- `);
481
- program.validate();
482
- (0, testHelpers_spec_1.expectDiagnostics)(program, [Object.assign({}, DiagnosticMessages_1.DiagnosticMessages.featureRequiresMinFirmwareVersion('optional chaining', '11.0.0', '10.0.0'))]);
483
- });
484
- });
485
- });
486
- });
487
- //# sourceMappingURL=BrsFileValidator.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrsFileValidator.spec.js","sourceRoot":"","sources":["../../../src/bscPlugin/validation/BrsFileValidator.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
4
- const Sequencer_1 = require("./Sequencer");
5
- const chai_config_spec_1 = require("../chai-config.spec");
6
- describe('Sequencer', () => {
7
- it('cancels when asked', () => {
8
- const cancellationTokenSource = new vscode_languageserver_protocol_1.CancellationTokenSource();
9
- const values = [];
10
- new Sequencer_1.Sequencer({
11
- name: 'test',
12
- cancellationToken: cancellationTokenSource.token,
13
- minSyncDuration: 100
14
- }).forEach([1, 2, 3], (i) => {
15
- values.push(i);
16
- if (i === 2) {
17
- cancellationTokenSource.cancel();
18
- }
19
- }).runSync();
20
- (0, chai_config_spec_1.expect)(values).to.eql([1, 2]);
21
- });
22
- it('throws when returning a promise from runSync', () => {
23
- let error;
24
- try {
25
- new Sequencer_1.Sequencer().once(() => {
26
- return Promise.resolve();
27
- }).runSync();
28
- }
29
- catch (e) {
30
- error = e;
31
- }
32
- (0, chai_config_spec_1.expect)(error === null || error === void 0 ? void 0 : error.message).to.eql(`Action returned a promise which is unsupported when running 'runSync'`);
33
- });
34
- it('waits for async actions to complete', async () => {
35
- const values = [];
36
- await new Sequencer_1.Sequencer().forEach([1, 2, 3], async (i) => {
37
- await new Promise((resolve) => {
38
- setTimeout(resolve, 10);
39
- });
40
- values.push(i);
41
- }).run();
42
- (0, chai_config_spec_1.expect)(values).to.eql([1, 2, 3]);
43
- });
44
- it('runSync() calls cancel before throwing', () => {
45
- let cancelCalled = false;
46
- try {
47
- new Sequencer_1.Sequencer().once(() => {
48
- throw new Error('crash');
49
- }).onCancel(() => {
50
- cancelCalled = true;
51
- }).runSync();
52
- }
53
- catch (e) {
54
- //this is expected
55
- (0, chai_config_spec_1.expect)(e.message).to.eql('crash');
56
- }
57
- (0, chai_config_spec_1.expect)(cancelCalled).to.be.true;
58
- });
59
- it('run() calls cancel before throwing', async () => {
60
- let cancelCalled = false;
61
- try {
62
- await new Sequencer_1.Sequencer().once(() => {
63
- throw new Error('crash');
64
- }).onCancel(() => {
65
- cancelCalled = true;
66
- }).run();
67
- }
68
- catch (e) {
69
- //this is expected
70
- (0, chai_config_spec_1.expect)(e.message).to.eql('crash');
71
- }
72
- (0, chai_config_spec_1.expect)(cancelCalled).to.be.true;
73
- });
74
- });
75
- //# sourceMappingURL=Sequencer.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Sequencer.spec.js","sourceRoot":"","sources":["../../src/common/Sequencer.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};