@alloy-js/csharp 0.20.0-dev.1 → 0.20.0-dev.10

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 (391) hide show
  1. package/dist/src/components/Declaration.d.ts +2 -2
  2. package/dist/src/components/Declaration.d.ts.map +1 -1
  3. package/dist/src/components/Declaration.js +5 -14
  4. package/dist/src/components/Declaration.js.map +1 -0
  5. package/dist/src/components/Name.js +2 -1
  6. package/dist/src/components/Name.js.map +1 -0
  7. package/dist/src/components/ProjectDirectory.js +2 -1
  8. package/dist/src/components/ProjectDirectory.js.map +1 -0
  9. package/dist/src/components/Reference.d.ts.map +1 -1
  10. package/dist/src/components/Reference.js +7 -2
  11. package/dist/src/components/Reference.js.map +1 -0
  12. package/dist/src/components/UsingDirective.d.ts +5 -1
  13. package/dist/src/components/UsingDirective.d.ts.map +1 -1
  14. package/dist/src/components/UsingDirective.js +5 -2
  15. package/dist/src/components/UsingDirective.js.map +1 -0
  16. package/dist/src/components/access-expression/access-expression.d.ts +54 -0
  17. package/dist/src/components/access-expression/access-expression.d.ts.map +1 -0
  18. package/dist/src/components/access-expression/access-expression.js +277 -0
  19. package/dist/src/components/access-expression/access-expression.js.map +1 -0
  20. package/dist/src/components/access-expression/access-expression.test.d.ts +2 -0
  21. package/dist/src/components/access-expression/access-expression.test.d.ts.map +1 -0
  22. package/dist/src/components/access-expression/access-expression.test.js +336 -0
  23. package/dist/src/components/access-expression/access-expression.test.js.map +1 -0
  24. package/dist/src/components/access-expression/part-descriptors.d.ts +32 -0
  25. package/dist/src/components/access-expression/part-descriptors.d.ts.map +1 -0
  26. package/dist/src/components/access-expression/part-descriptors.js +99 -0
  27. package/dist/src/components/access-expression/part-descriptors.js.map +1 -0
  28. package/dist/src/components/attributes/attributes.js +2 -1
  29. package/dist/src/components/attributes/attributes.js.map +1 -0
  30. package/dist/src/components/attributes/attributes.test.js +2 -1
  31. package/dist/src/components/attributes/attributes.test.js.map +1 -0
  32. package/dist/src/components/class/declaration.d.ts +2 -2
  33. package/dist/src/components/class/declaration.d.ts.map +1 -1
  34. package/dist/src/components/class/declaration.js +21 -34
  35. package/dist/src/components/class/declaration.js.map +1 -0
  36. package/dist/src/components/class/declaration.test.js +199 -200
  37. package/dist/src/components/class/declaration.test.js.map +1 -0
  38. package/dist/src/components/constructor/constructor.d.ts.map +1 -1
  39. package/dist/src/components/constructor/constructor.js +13 -20
  40. package/dist/src/components/constructor/constructor.js.map +1 -0
  41. package/dist/src/components/constructor/constructor.test.js +12 -20
  42. package/dist/src/components/constructor/constructor.test.js.map +1 -0
  43. package/dist/src/components/doc/comment.js +2 -1
  44. package/dist/src/components/doc/comment.js.map +1 -0
  45. package/dist/src/components/doc/comment.test.js +2 -1
  46. package/dist/src/components/doc/comment.test.js.map +1 -0
  47. package/dist/src/components/doc/from-markdown.js +2 -1
  48. package/dist/src/components/doc/from-markdown.js.map +1 -0
  49. package/dist/src/components/doc/from-markdown.test.js +2 -1
  50. package/dist/src/components/doc/from-markdown.test.js.map +1 -0
  51. package/dist/src/components/{EnumDeclaration.d.ts → enum/declaration.d.ts} +6 -11
  52. package/dist/src/components/enum/declaration.d.ts.map +1 -0
  53. package/dist/src/components/enum/declaration.js +55 -0
  54. package/dist/src/components/enum/declaration.js.map +1 -0
  55. package/dist/src/components/enum/declaration.ref.test.d.ts +2 -0
  56. package/dist/src/components/enum/declaration.ref.test.d.ts.map +1 -0
  57. package/dist/src/components/enum/declaration.ref.test.js +121 -0
  58. package/dist/src/components/enum/declaration.ref.test.js.map +1 -0
  59. package/dist/src/components/enum/declaration.test.d.ts +2 -0
  60. package/dist/src/components/enum/declaration.test.d.ts.map +1 -0
  61. package/dist/src/components/enum/declaration.test.js +40 -0
  62. package/dist/src/components/enum/declaration.test.js.map +1 -0
  63. package/dist/src/components/enum/member.d.ts +7 -0
  64. package/dist/src/components/enum/member.d.ts.map +1 -0
  65. package/dist/src/components/enum/member.js +30 -0
  66. package/dist/src/components/enum/member.js.map +1 -0
  67. package/dist/src/components/enum/member.test.d.ts +2 -0
  68. package/dist/src/components/enum/member.test.d.ts.map +1 -0
  69. package/dist/src/components/enum/member.test.js +29 -0
  70. package/dist/src/components/enum/member.test.js.map +1 -0
  71. package/dist/src/components/field/field.d.ts.map +1 -1
  72. package/dist/src/components/field/field.js +11 -18
  73. package/dist/src/components/field/field.js.map +1 -0
  74. package/dist/src/components/field/field.test.js +9 -8
  75. package/dist/src/components/field/field.test.js.map +1 -0
  76. package/dist/src/components/index.d.ts +7 -3
  77. package/dist/src/components/index.d.ts.map +1 -1
  78. package/dist/src/components/index.js +9 -4
  79. package/dist/src/components/index.js.map +1 -0
  80. package/dist/src/components/interface/declaration.d.ts.map +1 -1
  81. package/dist/src/components/interface/declaration.js +21 -22
  82. package/dist/src/components/interface/declaration.js.map +1 -0
  83. package/dist/src/components/interface/declaration.test.js +28 -36
  84. package/dist/src/components/interface/declaration.test.js.map +1 -0
  85. package/dist/src/components/interface/method.d.ts.map +1 -1
  86. package/dist/src/components/interface/method.js +9 -19
  87. package/dist/src/components/interface/method.js.map +1 -0
  88. package/dist/src/components/interface/method.test.js +40 -48
  89. package/dist/src/components/interface/method.test.js.map +1 -0
  90. package/dist/src/components/interface/property.d.ts.map +1 -1
  91. package/dist/src/components/interface/property.js +23 -40
  92. package/dist/src/components/interface/property.js.map +1 -0
  93. package/dist/src/components/interface/property.test.js +13 -12
  94. package/dist/src/components/interface/property.test.js.map +1 -0
  95. package/dist/src/components/invocation-expression/invocation-expression.d.ts +29 -0
  96. package/dist/src/components/invocation-expression/invocation-expression.d.ts.map +1 -0
  97. package/dist/src/components/invocation-expression/invocation-expression.js +70 -0
  98. package/dist/src/components/invocation-expression/invocation-expression.js.map +1 -0
  99. package/dist/src/components/invocation-expression/invocation-expression.test.d.ts +2 -0
  100. package/dist/src/components/invocation-expression/invocation-expression.test.d.ts.map +1 -0
  101. package/dist/src/components/invocation-expression/invocation-expression.test.js +105 -0
  102. package/dist/src/components/invocation-expression/invocation-expression.test.js.map +1 -0
  103. package/dist/src/components/lexical-scope.d.ts +8 -0
  104. package/dist/src/components/lexical-scope.d.ts.map +1 -0
  105. package/dist/src/components/lexical-scope.js +25 -0
  106. package/dist/src/components/lexical-scope.js.map +1 -0
  107. package/dist/src/components/method/method.d.ts +5 -2
  108. package/dist/src/components/method/method.d.ts.map +1 -1
  109. package/dist/src/components/method/method.js +9 -17
  110. package/dist/src/components/method/method.js.map +1 -0
  111. package/dist/src/components/method/method.test.js +13 -12
  112. package/dist/src/components/method/method.test.js.map +1 -0
  113. package/dist/src/components/method-scope.d.ts +8 -0
  114. package/dist/src/components/method-scope.d.ts.map +1 -0
  115. package/dist/src/components/method-scope.js +25 -0
  116. package/dist/src/components/method-scope.js.map +1 -0
  117. package/dist/src/components/namespace-scopes.d.ts +13 -0
  118. package/dist/src/components/namespace-scopes.d.ts.map +1 -0
  119. package/dist/src/components/namespace-scopes.js +45 -0
  120. package/dist/src/components/namespace-scopes.js.map +1 -0
  121. package/dist/src/components/namespace.d.ts +7 -0
  122. package/dist/src/components/namespace.d.ts.map +1 -0
  123. package/dist/src/components/namespace.js +47 -0
  124. package/dist/src/components/namespace.js.map +1 -0
  125. package/dist/src/components/namespace.ref.test.d.ts +2 -0
  126. package/dist/src/components/namespace.ref.test.d.ts.map +1 -0
  127. package/dist/src/components/namespace.ref.test.js +182 -0
  128. package/dist/src/components/namespace.ref.test.js.map +1 -0
  129. package/dist/src/components/namespace.test.d.ts.map +1 -0
  130. package/dist/src/components/namespace.test.js +79 -0
  131. package/dist/src/components/namespace.test.js.map +1 -0
  132. package/dist/src/components/parameters/parameters.d.ts +2 -3
  133. package/dist/src/components/parameters/parameters.d.ts.map +1 -1
  134. package/dist/src/components/parameters/parameters.js +15 -15
  135. package/dist/src/components/parameters/parameters.js.map +1 -0
  136. package/dist/src/components/parameters/parameters.test.d.ts +2 -0
  137. package/dist/src/components/parameters/parameters.test.d.ts.map +1 -0
  138. package/dist/src/components/parameters/parameters.test.js +154 -0
  139. package/dist/src/components/parameters/parameters.test.js.map +1 -0
  140. package/dist/src/components/property/property.d.ts +2 -2
  141. package/dist/src/components/property/property.d.ts.map +1 -1
  142. package/dist/src/components/property/property.js +30 -40
  143. package/dist/src/components/property/property.js.map +1 -0
  144. package/dist/src/components/property/property.test.js +16 -15
  145. package/dist/src/components/property/property.test.js.map +1 -0
  146. package/dist/src/components/record/declaration.d.ts +18 -0
  147. package/dist/src/components/record/declaration.d.ts.map +1 -1
  148. package/dist/src/components/record/declaration.js +21 -14
  149. package/dist/src/components/record/declaration.js.map +1 -0
  150. package/dist/src/components/record/declaration.test.js +52 -4
  151. package/dist/src/components/record/declaration.test.js.map +1 -0
  152. package/dist/src/components/source-file/source-file.d.ts +19 -0
  153. package/dist/src/components/source-file/source-file.d.ts.map +1 -0
  154. package/dist/src/components/source-file/source-file.js +59 -0
  155. package/dist/src/components/source-file/source-file.js.map +1 -0
  156. package/dist/src/components/source-file/source-file.test.d.ts +2 -0
  157. package/dist/src/components/source-file/source-file.test.d.ts.map +1 -0
  158. package/dist/src/components/source-file/source-file.test.js +136 -0
  159. package/dist/src/components/source-file/source-file.test.js.map +1 -0
  160. package/dist/src/components/stc/index.js +2 -1
  161. package/dist/src/components/stc/index.js.map +1 -0
  162. package/dist/src/components/struct/declaration.d.ts.map +1 -1
  163. package/dist/src/components/struct/declaration.js +6 -7
  164. package/dist/src/components/struct/declaration.js.map +1 -0
  165. package/dist/src/components/struct/declaration.test.js +32 -40
  166. package/dist/src/components/struct/declaration.test.js.map +1 -0
  167. package/dist/src/components/type-parameters/type-parameter-constraints.js +2 -1
  168. package/dist/src/components/type-parameters/type-parameter-constraints.js.map +1 -0
  169. package/dist/src/components/type-parameters/type-parameter-constraints.test.js +2 -1
  170. package/dist/src/components/type-parameters/type-parameter-constraints.test.js.map +1 -0
  171. package/dist/src/components/type-parameters/type-parameter.d.ts.map +1 -1
  172. package/dist/src/components/type-parameters/type-parameter.js +9 -11
  173. package/dist/src/components/type-parameters/type-parameter.js.map +1 -0
  174. package/dist/src/components/type-parameters/type-parameters.js +2 -1
  175. package/dist/src/components/type-parameters/type-parameters.js.map +1 -0
  176. package/dist/src/components/type-parameters/type-parameters.test.js +5 -4
  177. package/dist/src/components/type-parameters/type-parameters.test.js.map +1 -0
  178. package/dist/src/components/var/declaration.d.ts.map +1 -1
  179. package/dist/src/components/var/declaration.js +8 -9
  180. package/dist/src/components/var/declaration.js.map +1 -0
  181. package/dist/src/components/var/declaration.test.js +13 -21
  182. package/dist/src/components/var/declaration.test.js.map +1 -0
  183. package/dist/src/contexts/format-options.d.ts +5 -0
  184. package/dist/src/contexts/format-options.d.ts.map +1 -0
  185. package/dist/src/contexts/format-options.js +9 -0
  186. package/dist/src/contexts/format-options.js.map +1 -0
  187. package/dist/src/contexts/global-namespace.d.ts +5 -0
  188. package/dist/src/contexts/global-namespace.d.ts.map +1 -0
  189. package/dist/src/contexts/global-namespace.js +25 -0
  190. package/dist/src/contexts/global-namespace.js.map +1 -0
  191. package/dist/src/contexts/namespace.d.ts +8 -0
  192. package/dist/src/contexts/namespace.d.ts.map +1 -0
  193. package/dist/src/contexts/namespace.js +6 -0
  194. package/dist/src/contexts/namespace.js.map +1 -0
  195. package/dist/src/index.d.ts +2 -0
  196. package/dist/src/index.d.ts.map +1 -1
  197. package/dist/src/index.js +4 -1
  198. package/dist/src/index.js.map +1 -0
  199. package/dist/src/modifiers.d.ts +11 -0
  200. package/dist/src/modifiers.d.ts.map +1 -1
  201. package/dist/src/modifiers.js +2 -1
  202. package/dist/src/modifiers.js.map +1 -0
  203. package/dist/src/name-policy.js +2 -1
  204. package/dist/src/name-policy.js.map +1 -0
  205. package/dist/src/scopes/class.d.ts +10 -0
  206. package/dist/src/scopes/class.d.ts.map +1 -0
  207. package/dist/src/scopes/class.js +11 -0
  208. package/dist/src/scopes/class.js.map +1 -0
  209. package/dist/src/scopes/contexts.d.ts +9 -0
  210. package/dist/src/scopes/contexts.d.ts.map +1 -0
  211. package/dist/src/scopes/contexts.js +34 -0
  212. package/dist/src/scopes/contexts.js.map +1 -0
  213. package/dist/src/scopes/csharp.d.ts +10 -0
  214. package/dist/src/scopes/csharp.d.ts.map +1 -0
  215. package/dist/src/scopes/csharp.js +15 -0
  216. package/dist/src/scopes/csharp.js.map +1 -0
  217. package/dist/src/scopes/factories.d.ts +9 -0
  218. package/dist/src/scopes/factories.d.ts.map +1 -0
  219. package/dist/src/scopes/factories.js +24 -0
  220. package/dist/src/scopes/factories.js.map +1 -0
  221. package/dist/src/scopes/index.d.ts +10 -0
  222. package/dist/src/scopes/index.d.ts.map +1 -0
  223. package/dist/src/scopes/index.js +10 -0
  224. package/dist/src/scopes/index.js.map +1 -0
  225. package/dist/src/scopes/lexical.d.ts +7 -0
  226. package/dist/src/scopes/lexical.d.ts.map +1 -0
  227. package/dist/src/scopes/lexical.js +8 -0
  228. package/dist/src/scopes/lexical.js.map +1 -0
  229. package/dist/src/scopes/method.d.ts +9 -0
  230. package/dist/src/scopes/method.d.ts.map +1 -0
  231. package/dist/src/scopes/method.js +14 -0
  232. package/dist/src/scopes/method.js.map +1 -0
  233. package/dist/src/scopes/named-type.d.ts +22 -0
  234. package/dist/src/scopes/named-type.d.ts.map +1 -0
  235. package/dist/src/scopes/named-type.js +33 -0
  236. package/dist/src/scopes/named-type.js.map +1 -0
  237. package/dist/src/scopes/namespace.d.ts +11 -0
  238. package/dist/src/scopes/namespace.d.ts.map +1 -0
  239. package/dist/src/scopes/namespace.js +39 -0
  240. package/dist/src/scopes/namespace.js.map +1 -0
  241. package/dist/src/scopes/source-file.d.ts +16 -0
  242. package/dist/src/scopes/source-file.d.ts.map +1 -0
  243. package/dist/src/scopes/source-file.js +44 -0
  244. package/dist/src/scopes/source-file.js.map +1 -0
  245. package/dist/src/symbols/csharp.d.ts +87 -0
  246. package/dist/src/symbols/csharp.d.ts.map +1 -0
  247. package/dist/src/symbols/csharp.js +246 -0
  248. package/dist/src/symbols/csharp.js.map +1 -0
  249. package/dist/src/symbols/factories.d.ts +25 -0
  250. package/dist/src/symbols/factories.d.ts.map +1 -0
  251. package/dist/src/symbols/factories.js +93 -0
  252. package/dist/src/symbols/factories.js.map +1 -0
  253. package/dist/src/symbols/index.d.ts +5 -2
  254. package/dist/src/symbols/index.d.ts.map +1 -1
  255. package/dist/src/symbols/index.js +6 -2
  256. package/dist/src/symbols/index.js.map +1 -0
  257. package/dist/src/symbols/method.d.ts +13 -0
  258. package/dist/src/symbols/method.d.ts.map +1 -0
  259. package/dist/src/symbols/method.js +16 -0
  260. package/dist/src/symbols/method.js.map +1 -0
  261. package/dist/src/symbols/named-type.d.ts +19 -0
  262. package/dist/src/symbols/named-type.d.ts.map +1 -0
  263. package/dist/src/symbols/named-type.js +31 -0
  264. package/dist/src/symbols/named-type.js.map +1 -0
  265. package/dist/src/symbols/namespace.d.ts +22 -0
  266. package/dist/src/symbols/namespace.d.ts.map +1 -0
  267. package/dist/src/symbols/namespace.js +45 -0
  268. package/dist/src/symbols/namespace.js.map +1 -0
  269. package/dist/src/symbols/reference.d.ts +2 -2
  270. package/dist/src/symbols/reference.d.ts.map +1 -1
  271. package/dist/src/symbols/reference.js +50 -44
  272. package/dist/src/symbols/reference.js.map +1 -0
  273. package/dist/test/project-directory.test.js +20 -19
  274. package/dist/test/project-directory.test.js.map +1 -0
  275. package/dist/test/using.test.js +23 -21
  276. package/dist/test/using.test.js.map +1 -0
  277. package/dist/test/utils.d.ts.map +1 -1
  278. package/dist/test/utils.js +7 -4
  279. package/dist/test/utils.js.map +1 -0
  280. package/dist/test/vitest.setup.js +2 -1
  281. package/dist/test/vitest.setup.js.map +1 -0
  282. package/dist/tsconfig.tsbuildinfo +1 -1
  283. package/package.json +12 -6
  284. package/src/components/Declaration.tsx +3 -6
  285. package/src/components/Reference.tsx +3 -1
  286. package/src/components/UsingDirective.tsx +12 -2
  287. package/src/components/access-expression/access-expression.test.tsx +284 -0
  288. package/src/components/access-expression/access-expression.tsx +375 -0
  289. package/src/components/access-expression/part-descriptors.ts +175 -0
  290. package/src/components/class/declaration.test.tsx +142 -150
  291. package/src/components/class/declaration.tsx +20 -32
  292. package/src/components/constructor/constructor.test.tsx +10 -16
  293. package/src/components/constructor/constructor.tsx +13 -32
  294. package/src/components/enum/declaration.ref.test.tsx +93 -0
  295. package/src/components/enum/declaration.test.tsx +34 -0
  296. package/src/components/enum/declaration.tsx +65 -0
  297. package/src/components/enum/member.test.tsx +24 -0
  298. package/src/components/enum/member.tsx +36 -0
  299. package/src/components/field/field.test.tsx +7 -7
  300. package/src/components/field/field.tsx +12 -22
  301. package/src/components/index.ts +7 -3
  302. package/src/components/interface/declaration.test.tsx +26 -32
  303. package/src/components/interface/declaration.tsx +16 -18
  304. package/src/components/interface/method.test.tsx +38 -44
  305. package/src/components/interface/method.tsx +7 -20
  306. package/src/components/interface/property.test.tsx +11 -11
  307. package/src/components/interface/property.tsx +15 -34
  308. package/src/components/invocation-expression/invocation-expression.test.tsx +101 -0
  309. package/src/components/invocation-expression/invocation-expression.tsx +60 -0
  310. package/src/components/lexical-scope.tsx +29 -0
  311. package/src/components/method/method.test.tsx +11 -11
  312. package/src/components/method/method.tsx +12 -23
  313. package/src/components/method-scope.tsx +27 -0
  314. package/src/components/namespace-scopes.tsx +44 -0
  315. package/src/components/namespace.ref.test.tsx +139 -0
  316. package/src/components/namespace.test.tsx +52 -0
  317. package/src/components/namespace.tsx +45 -0
  318. package/src/components/parameters/parameters.test.tsx +117 -0
  319. package/src/components/parameters/parameters.tsx +11 -23
  320. package/src/components/property/property.test.tsx +14 -14
  321. package/src/components/property/property.tsx +23 -41
  322. package/src/components/record/declaration.test.tsx +47 -3
  323. package/src/components/record/declaration.tsx +34 -11
  324. package/src/components/source-file/source-file.test.tsx +96 -0
  325. package/src/components/source-file/source-file.tsx +98 -0
  326. package/src/components/struct/declaration.test.tsx +16 -22
  327. package/src/components/struct/declaration.tsx +4 -6
  328. package/src/components/type-parameters/type-parameter.tsx +14 -11
  329. package/src/components/type-parameters/type-parameters.test.tsx +4 -4
  330. package/src/components/var/declaration.test.tsx +8 -14
  331. package/src/components/var/declaration.tsx +12 -6
  332. package/src/contexts/format-options.ts +14 -0
  333. package/src/contexts/global-namespace.ts +29 -0
  334. package/src/contexts/namespace.ts +13 -0
  335. package/src/index.ts +2 -0
  336. package/src/modifiers.ts +14 -0
  337. package/src/scopes/class.ts +12 -0
  338. package/src/scopes/contexts.ts +45 -0
  339. package/src/scopes/csharp.ts +23 -0
  340. package/src/scopes/factories.ts +45 -0
  341. package/src/scopes/index.ts +9 -0
  342. package/src/scopes/lexical.ts +10 -0
  343. package/src/scopes/method.ts +22 -0
  344. package/src/scopes/named-type.ts +44 -0
  345. package/src/scopes/namespace.ts +59 -0
  346. package/src/scopes/source-file.ts +67 -0
  347. package/src/symbols/csharp.ts +339 -0
  348. package/src/symbols/factories.ts +215 -0
  349. package/src/symbols/index.ts +5 -2
  350. package/src/symbols/method.ts +26 -0
  351. package/src/symbols/named-type.ts +54 -0
  352. package/src/symbols/namespace.ts +62 -0
  353. package/src/symbols/reference.tsx +64 -0
  354. package/temp/api.json +6919 -2532
  355. package/test/project-directory.test.tsx +14 -16
  356. package/test/using.test.tsx +21 -21
  357. package/test/utils.tsx +2 -1
  358. package/tsconfig.json +4 -1
  359. package/tsdoc-metadata.json +1 -1
  360. package/dist/src/components/EnumDeclaration.d.ts.map +0 -1
  361. package/dist/src/components/EnumDeclaration.js +0 -85
  362. package/dist/src/components/Namespace.d.ts +0 -11
  363. package/dist/src/components/Namespace.d.ts.map +0 -1
  364. package/dist/src/components/Namespace.js +0 -33
  365. package/dist/src/components/SourceFile.d.ts +0 -14
  366. package/dist/src/components/SourceFile.d.ts.map +0 -1
  367. package/dist/src/components/SourceFile.js +0 -69
  368. package/dist/src/symbols/csharp-output-symbol.d.ts +0 -8
  369. package/dist/src/symbols/csharp-output-symbol.d.ts.map +0 -1
  370. package/dist/src/symbols/csharp-output-symbol.js +0 -19
  371. package/dist/src/symbols/scopes.d.ts +0 -14
  372. package/dist/src/symbols/scopes.d.ts.map +0 -1
  373. package/dist/src/symbols/scopes.js +0 -31
  374. package/dist/test/enum.test.d.ts +0 -2
  375. package/dist/test/enum.test.d.ts.map +0 -1
  376. package/dist/test/enum.test.js +0 -178
  377. package/dist/test/namespace.test.d.ts.map +0 -1
  378. package/dist/test/namespace.test.js +0 -81
  379. package/dist/test/sourcefile.test.d.ts +0 -2
  380. package/dist/test/sourcefile.test.d.ts.map +0 -1
  381. package/dist/test/sourcefile.test.js +0 -58
  382. package/src/components/EnumDeclaration.tsx +0 -99
  383. package/src/components/Namespace.tsx +0 -35
  384. package/src/components/SourceFile.tsx +0 -78
  385. package/src/symbols/csharp-output-symbol.ts +0 -22
  386. package/src/symbols/reference.ts +0 -65
  387. package/src/symbols/scopes.ts +0 -41
  388. package/test/enum.test.tsx +0 -149
  389. package/test/namespace.test.tsx +0 -55
  390. package/test/sourcefile.test.tsx +0 -47
  391. /package/dist/{test → src/components}/namespace.test.d.ts +0 -0
@@ -0,0 +1,154 @@
1
+ import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { ClassDeclaration } from "#components/class/declaration.js";
3
+ import { Method } from "#components/method/method.js";
4
+ import { Property } from "#components/property/property.js";
5
+ import { List, memberRefkey, namekey } from "@alloy-js/core";
6
+ import { expect, it } from "vitest";
7
+ import { TestNamespace } from "../../../test/utils.js";
8
+ const Wrapper = props => _$createComponent(TestNamespace, {
9
+ get children() {
10
+ return _$createComponent(ClassDeclaration, {
11
+ "public": true,
12
+ name: "TestClass",
13
+ get children() {
14
+ return props.children;
15
+ }
16
+ });
17
+ }
18
+ });
19
+ it("can be referenced", () => {
20
+ const param1Key = namekey("param1");
21
+ const param2Key = namekey("param2");
22
+ expect(_$createComponent(Wrapper, {
23
+ get children() {
24
+ return _$createComponent(Method, {
25
+ name: "MethodOne",
26
+ parameters: [{
27
+ name: param1Key,
28
+ type: "T1"
29
+ }, {
30
+ name: param2Key,
31
+ type: "T2"
32
+ }]
33
+ });
34
+ }
35
+ })).toRenderTo(`
36
+ public class TestClass
37
+ {
38
+ void MethodOne(T1 param1, T2 param2) {}
39
+ }
40
+ `);
41
+ });
42
+ it("members can be referenced", () => {
43
+ const classKey = namekey("TestType");
44
+ const methodKey = namekey("TestMethod");
45
+ const param1Key = namekey("param1");
46
+ expect(_$createComponent(TestNamespace, {
47
+ get children() {
48
+ return _$createComponent(List, {
49
+ get children() {
50
+ return [_$createComponent(ClassDeclaration, {
51
+ name: classKey,
52
+ get children() {
53
+ return _$createComponent(Method, {
54
+ name: methodKey
55
+ });
56
+ }
57
+ }), _$createComponent(ClassDeclaration, {
58
+ name: "Test",
59
+ get children() {
60
+ return _$createComponent(Method, {
61
+ name: "Test",
62
+ parameters: [{
63
+ name: param1Key,
64
+ type: classKey
65
+ }],
66
+ get children() {
67
+ return ["return ", _$memo(() => memberRefkey(param1Key, methodKey)), "();"];
68
+ }
69
+ });
70
+ }
71
+ })];
72
+ }
73
+ });
74
+ }
75
+ })).toRenderTo(`
76
+ class TestType
77
+ {
78
+ void TestMethod() {}
79
+ }
80
+ class Test
81
+ {
82
+ void Test(TestType param1)
83
+ {
84
+ return param1.TestMethod();
85
+ }
86
+ }
87
+ `);
88
+ });
89
+ it("members can be referenced when the parameter is nullable", () => {
90
+ const propTypeKey = namekey("PropType");
91
+ const propTypePropKey = namekey("Field");
92
+ const classKey = namekey("TestType");
93
+ const propKey = namekey("TestProp");
94
+ const param1Key = namekey("param1");
95
+ expect(_$createComponent(TestNamespace, {
96
+ get children() {
97
+ return _$createComponent(List, {
98
+ get children() {
99
+ return [_$createComponent(ClassDeclaration, {
100
+ name: propTypeKey,
101
+ get children() {
102
+ return _$createComponent(Property, {
103
+ name: propTypePropKey,
104
+ type: "string",
105
+ nullable: true
106
+ });
107
+ }
108
+ }), _$createComponent(ClassDeclaration, {
109
+ name: classKey,
110
+ get children() {
111
+ return _$createComponent(Property, {
112
+ name: propKey,
113
+ type: propTypeKey,
114
+ nullable: true
115
+ });
116
+ }
117
+ }), _$createComponent(ClassDeclaration, {
118
+ name: "Test",
119
+ get children() {
120
+ return _$createComponent(Method, {
121
+ name: "Test",
122
+ parameters: [{
123
+ name: param1Key,
124
+ type: classKey,
125
+ optional: true
126
+ }],
127
+ get children() {
128
+ return ["return ", _$memo(() => memberRefkey(param1Key, propKey, propTypePropKey)), ";"];
129
+ }
130
+ });
131
+ }
132
+ })];
133
+ }
134
+ });
135
+ }
136
+ })).toRenderTo(`
137
+ class PropType
138
+ {
139
+ string? Field { }
140
+ }
141
+ class TestType
142
+ {
143
+ PropType? TestProp { }
144
+ }
145
+ class Test
146
+ {
147
+ void Test(TestType? param1)
148
+ {
149
+ return param1?.TestProp?.Field;
150
+ }
151
+ }
152
+ `);
153
+ });
154
+ //# sourceMappingURL=parameters.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ClassDeclaration","Method","Property","List","memberRefkey","namekey","expect","it","TestNamespace","Wrapper","props","_$createComponent","children","name","param1Key","param2Key","parameters","type","toRenderTo","classKey","methodKey","_$memo","propTypeKey","propTypePropKey","propKey","nullable","optional"],"sources":["../../../../src/components/parameters/parameters.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,gBAAgB;AACzB,SAASC,MAAM;AACf,SAASC,QAAQ;AACjB,SAASC,IAAI,EAAEC,YAAY,EAAEC,OAAO,QAAQ,gBAAgB;AAE5D,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,aAAa;AAEtB,MAAMC,OAAO,GAAIC,KAA6B,IAAAC,iBAAA,CAC3CH,aAAa;EAAA,IAAAI,SAAA;IAAA,OAAAD,iBAAA,CACXX,gBAAgB;MAAA;MAAQa,IAAI;MAAA,IAAAD,SAAA;QAAA,OAC1BF,KAAK,CAACE,QAAQ;MAAA;IAAA;EAAA;AAAA,EAGpB;AAEDL,EAAE,CAAC,mBAAmB,EAAE,MAAM;EAC5B,MAAMO,SAAS,GAAGT,OAAO,CAAC,QAAQ,CAAC;EACnC,MAAMU,SAAS,GAAGV,OAAO,CAAC,QAAQ,CAAC;EACnCC,MAAM,CAAAK,iBAAA,CACHF,OAAO;IAAA,IAAAG,SAAA;MAAA,OAAAD,iBAAA,CACLV,MAAM;QACLY,IAAI;QACJG,UAAU,EAAE,CACV;UAAEH,IAAI,EAAEC,SAAS;UAAEG,IAAI,EAAE;QAAK,CAAC,EAC/B;UAAEJ,IAAI,EAAEE,SAAS;UAAEE,IAAI,EAAE;QAAK,CAAC;MAChC;IAAA;EAAA,EAGP,CAAC,CAACC,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFX,EAAE,CAAC,2BAA2B,EAAE,MAAM;EACpC,MAAMY,QAAQ,GAAGd,OAAO,CAAC,UAAU,CAAC;EACpC,MAAMe,SAAS,GAAGf,OAAO,CAAC,YAAY,CAAC;EACvC,MAAMS,SAAS,GAAGT,OAAO,CAAC,QAAQ,CAAC;EAEnCC,MAAM,CAAAK,iBAAA,CACHH,aAAa;IAAA,IAAAI,SAAA;MAAA,OAAAD,iBAAA,CACXR,IAAI;QAAA,IAAAS,SAAA;UAAA,QAAAD,iBAAA,CACFX,gBAAgB;YAACa,IAAI,EAAEM,QAAQ;YAAA,IAAAP,SAAA;cAAA,OAAAD,iBAAA,CAC7BV,MAAM;gBAACY,IAAI,EAAEO;cAAS;YAAA;UAAA,IAAAT,iBAAA,CAExBX,gBAAgB;YAACa,IAAI;YAAA,IAAAD,SAAA;cAAA,OAAAD,iBAAA,CACnBV,MAAM;gBACLY,IAAI;gBACJG,UAAU,EAAE,CAAC;kBAAEH,IAAI,EAAEC,SAAS;kBAAEG,IAAI,EAAEE;gBAAS,CAAC,CAAC;gBAAA,IAAAP,SAAA;kBAAA,mBAAAS,MAAA,OAEzCjB,YAAY,CAACU,SAAS,EAAEM,SAAS,CAAC;gBAAA;cAAA;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA,EAKpD,CAAC,CAACF,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFX,EAAE,CAAC,0DAA0D,EAAE,MAAM;EACnE,MAAMe,WAAW,GAAGjB,OAAO,CAAC,UAAU,CAAC;EACvC,MAAMkB,eAAe,GAAGlB,OAAO,CAAC,OAAO,CAAC;EACxC,MAAMc,QAAQ,GAAGd,OAAO,CAAC,UAAU,CAAC;EACpC,MAAMmB,OAAO,GAAGnB,OAAO,CAAC,UAAU,CAAC;EACnC,MAAMS,SAAS,GAAGT,OAAO,CAAC,QAAQ,CAAC;EAEnCC,MAAM,CAAAK,iBAAA,CACHH,aAAa;IAAA,IAAAI,SAAA;MAAA,OAAAD,iBAAA,CACXR,IAAI;QAAA,IAAAS,SAAA;UAAA,QAAAD,iBAAA,CACFX,gBAAgB;YAACa,IAAI,EAAES,WAAW;YAAA,IAAAV,SAAA;cAAA,OAAAD,iBAAA,CAChCT,QAAQ;gBAACW,IAAI,EAAEU,eAAe;gBAAEN,IAAI,EAAE,QAAQ;gBAAEQ,QAAQ;cAAA;YAAA;UAAA,IAAAd,iBAAA,CAE1DX,gBAAgB;YAACa,IAAI,EAAEM,QAAQ;YAAA,IAAAP,SAAA;cAAA,OAAAD,iBAAA,CAC7BT,QAAQ;gBAACW,IAAI,EAAEW,OAAO;gBAAEP,IAAI,EAAEK,WAAW;gBAAEG,QAAQ;cAAA;YAAA;UAAA,IAAAd,iBAAA,CAErDX,gBAAgB;YAACa,IAAI;YAAA,IAAAD,SAAA;cAAA,OAAAD,iBAAA,CACnBV,MAAM;gBACLY,IAAI;gBACJG,UAAU,EAAE,CAAC;kBAAEH,IAAI,EAAEC,SAAS;kBAAEG,IAAI,EAAEE,QAAQ;kBAAEO,QAAQ,EAAE;gBAAK,CAAC,CAAC;gBAAA,IAAAd,SAAA;kBAAA,mBAAAS,MAAA,OAEzDjB,YAAY,CAACU,SAAS,EAAEU,OAAO,EAAED,eAAe,CAAC;gBAAA;cAAA;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA,EAKnE,CAAC,CAACL,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { Children, Refkey } from "@alloy-js/core";
1
+ import { Children, Namekey, Refkey } from "@alloy-js/core";
2
2
  import { AccessModifiers } from "../../modifiers.js";
3
3
  import { AttributesProp } from "../attributes/attributes.jsx";
4
4
  /** Property modifiers. */
@@ -19,7 +19,7 @@ export interface PropertyModifiers {
19
19
  }
20
20
  /** Properties for {@link Property} component */
21
21
  export interface PropertyProps extends AccessModifiers, PropertyModifiers {
22
- name: string;
22
+ name: Namekey | string;
23
23
  refkey?: Refkey;
24
24
  /** Property type */
25
25
  type: Children;
@@ -1 +1 @@
1
- {"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../../src/components/property/property.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAKR,MAAM,EAEP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAiB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG7E,0BAA0B;AAC1B,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAcD,gDAAgD;AAChD,MAAM,WAAW,aAAc,SAAQ,eAAe,EAAE,iBAAiB;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oBAAoB;IACpB,IAAI,EAAE,QAAQ,CAAC;IAEf,uCAAuC;IACvC,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,uCAAuC;IACvC,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,0DAA0D;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,kBAAkB;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IAEf;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC;IAEvB;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,YAsD5C"}
1
+ {"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../../src/components/property/property.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAMR,OAAO,EACP,MAAM,EACP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAiB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG7E,0BAA0B;AAC1B,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAcD,gDAAgD;AAChD,MAAM,WAAW,aAAc,SAAQ,eAAe,EAAE,iBAAiB;IACvE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oBAAoB;IACpB,IAAI,EAAE,QAAQ,CAAC;IAEf,uCAAuC;IACvC,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,uCAAuC;IACvC,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,0DAA0D;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,kBAAkB;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IAEf;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC;IAEvB;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,YAqC5C"}
@@ -1,9 +1,7 @@
1
1
  import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
2
- import { Block, code, List, MemberDeclaration, refkey, Scope } from "@alloy-js/core";
2
+ import { Block, code, createSymbolSlot, List, MemberDeclaration, MemberName } from "@alloy-js/core";
3
3
  import { computeModifiersPrefix, getAccessModifier, makeModifiers } from "../../modifiers.js";
4
- import { useCSharpNamePolicy } from "../../name-policy.js";
5
- import { CSharpOutputSymbol } from "../../symbols/csharp-output-symbol.js";
6
- import { CSharpMemberScope, useCSharpScope } from "../../symbols/scopes.js";
4
+ import { createPropertySymbol } from "../../symbols/factories.js";
7
5
  import { AttributeList } from "../attributes/attributes.js";
8
6
  import { DocWhen } from "../doc/comment.js";
9
7
 
@@ -23,19 +21,11 @@ const getModifiers = makeModifiers(["new", "static", "virtual", "sealed", "overr
23
21
  * ```
24
22
  */
25
23
  export function Property(props) {
26
- const name = useCSharpNamePolicy().getName(props.name, "class-property");
27
- const scope = useCSharpScope();
28
- if (scope.kind !== "member" || scope.name !== "class-decl" && scope.name !== "record-decl" && scope.name !== "struct-decl") {
29
- throw new Error("can't define an interface method outside of an interface scope");
30
- }
31
- const propertySymbol = new CSharpOutputSymbol(name, {
32
- scope,
33
- refkeys: props.refkey ?? refkey(props.name)
34
- });
35
-
36
- // scope for property declaration
37
- const propertyScope = new CSharpMemberScope("property-decl", {
38
- owner: propertySymbol
24
+ const TypeSlot = createSymbolSlot();
25
+ const propertySymbol = createPropertySymbol(props.name, {
26
+ refkeys: props.refkey,
27
+ isNullable: props.nullable,
28
+ type: TypeSlot.firstSymbol
39
29
  });
40
30
  const modifiers = computeModifiersPrefix([getAccessModifier(props), getModifiers(props)]);
41
31
  if (props.init && props.set) {
@@ -45,32 +35,32 @@ export function Property(props) {
45
35
  return _$createComponent(MemberDeclaration, {
46
36
  symbol: propertySymbol,
47
37
  get children() {
48
- return _$createComponent(Scope, {
49
- value: propertyScope,
38
+ return [_$createComponent(DocWhen, {
39
+ get doc() {
40
+ return props.doc;
41
+ }
42
+ }), _$createComponent(AttributeList, {
43
+ get attributes() {
44
+ return props.attributes;
45
+ },
46
+ endline: true
47
+ }), modifiers, _$createComponent(TypeSlot, {
50
48
  get children() {
51
- return [_$createComponent(DocWhen, {
52
- get doc() {
53
- return props.doc;
54
- }
55
- }), _$createComponent(AttributeList, {
56
- get attributes() {
57
- return props.attributes;
58
- },
59
- endline: true
60
- }), modifiers, _$memo(() => props.type), _$memo(() => props.nullable && "?"), " ", name, " ", _$createComponent(Block, {
61
- newline: true,
62
- inline: true,
49
+ return props.type;
50
+ }
51
+ }), _$memo(() => props.nullable && "?"), " ", _$createComponent(MemberName, {}), " ", _$createComponent(Block, {
52
+ newline: true,
53
+ inline: true,
54
+ get children() {
55
+ return _$createComponent(List, {
56
+ joiner: " ",
63
57
  get children() {
64
- return _$createComponent(List, {
65
- joiner: " ",
66
- get children() {
67
- return [_$memo(() => props.get && "get;"), _$memo(() => props.set && "set;"), _$memo(() => props.init && "init;")];
68
- }
69
- });
58
+ return [_$memo(() => props.get && "get;"), _$memo(() => props.set && "set;"), _$memo(() => props.init && "init;")];
70
59
  }
71
- }), _$memo(() => props.initializer && code` = ${props.initializer};`)];
60
+ });
72
61
  }
73
- });
62
+ }), _$memo(() => props.initializer && code` = ${props.initializer};`)];
74
63
  }
75
64
  });
76
- }
65
+ }
66
+ //# sourceMappingURL=property.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Block","code","createSymbolSlot","List","MemberDeclaration","MemberName","computeModifiersPrefix","getAccessModifier","makeModifiers","createPropertySymbol","AttributeList","DocWhen","getModifiers","Property","props","TypeSlot","propertySymbol","name","refkeys","refkey","isNullable","nullable","type","firstSymbol","modifiers","init","set","Error","_$createComponent","symbol","children","doc","attributes","endline","_$memo","newline","inline","joiner","get","initializer"],"sources":["../../../../src/components/property/property.tsx"],"sourcesContent":[null],"mappings":";AAAA,SACEA,KAAK,EAELC,IAAI,EACJC,gBAAgB,EAChBC,IAAI,EACJC,iBAAiB,EACjBC,UAAU,QAGL,gBAAgB;AACvB,SAEEC,sBAAsB,EACtBC,iBAAiB,EACjBC,aAAa,QACR,oBAAoB;AAC3B,SAASC,oBAAoB,QAAQ,4BAA4B;AACjE,SAASC,aAAa;AACtB,SAASC,OAAO;;AAEhB;;AAiBA,MAAMC,YAAY,GAAGJ,aAAa,CAAoB,CACpD,KAAK,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,UAAU,CACX,CAAC;;AAEF;;AA2DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,QAAQA,CAACC,KAAoB,EAAE;EAC7C,MAAMC,QAAQ,GAAGb,gBAAgB,CAAC,CAAC;EAEnC,MAAMc,cAAc,GAAGP,oBAAoB,CAACK,KAAK,CAACG,IAAI,EAAE;IACtDC,OAAO,EAAEJ,KAAK,CAACK,MAAM;IACrBC,UAAU,EAAEN,KAAK,CAACO,QAAQ;IAC1BC,IAAI,EAAEP,QAAQ,CAACQ;EACjB,CAAC,CAAC;EAEF,MAAMC,SAAS,GAAGlB,sBAAsB,CAAC,CACvCC,iBAAiB,CAACO,KAAK,CAAC,EACxBF,YAAY,CAACE,KAAK,CAAC,CACpB,CAAC;EAEF,IAAIA,KAAK,CAACW,IAAI,IAAIX,KAAK,CAACY,GAAG,EAAE;IAC3B,MAAM,IAAIC,KAAK,CACb,qDAAqDV,IAAI,GAC3D,CAAC;EACH;EACA;EACA,OAAAW,iBAAA,CACGxB,iBAAiB;IAACyB,MAAM,EAAEb,cAAc;IAAA,IAAAc,SAAA;MAAA,QAAAF,iBAAA,CACtCjB,OAAO;QAAA,IAACoB,GAAGA,CAAA;UAAA,OAAEjB,KAAK,CAACiB,GAAG;QAAA;MAAA,IAAAH,iBAAA,CACtBlB,aAAa;QAAA,IAACsB,UAAUA,CAAA;UAAA,OAAElB,KAAK,CAACkB,UAAU;QAAA;QAAEC,OAAO;MAAA,IACnDT,SAAS,EAAAI,iBAAA,CACTb,QAAQ;QAAA,IAAAe,SAAA;UAAA,OAAEhB,KAAK,CAACQ,IAAI;QAAA;MAAA,IAAAY,MAAA,OACpBpB,KAAK,CAACO,QAAQ,IAAI,GAAG,QAAAO,iBAAA,CAAGvB,UAAU,OAAI,GAAG,EAAAuB,iBAAA,CACzC5B,KAAK;QAACmC,OAAO;QAACC,MAAM;QAAA,IAAAN,SAAA;UAAA,OAAAF,iBAAA,CAClBzB,IAAI;YAACkC,MAAM;YAAA,IAAAP,SAAA;cAAA,QAAAI,MAAA,OACTpB,KAAK,CAACwB,GAAG,IAAI,MAAM,GAAAJ,MAAA,OACnBpB,KAAK,CAACY,GAAG,IAAI,MAAM,GAAAQ,MAAA,OACnBpB,KAAK,CAACW,IAAI,IAAI,OAAO;YAAA;UAAA;QAAA;MAAA,IAAAS,MAAA,OAGzBpB,KAAK,CAACyB,WAAW,IAAItC,IAAI,MAAMa,KAAK,CAACyB,WAAW,GAAG;IAAA;EAAA;AAG1D","ignoreList":[]}
@@ -31,7 +31,7 @@ describe("modifiers", () => {
31
31
  })).toRenderTo(`
32
32
  public class TestClass
33
33
  {
34
- ${accessModifier} string TestProp { get; }
34
+ ${accessModifier} string TestProp { get; }
35
35
  }
36
36
  `);
37
37
  });
@@ -51,7 +51,7 @@ describe("modifiers", () => {
51
51
  })).toRenderTo(`
52
52
  public class TestClass
53
53
  {
54
- ${methodModifier} string TestProp { get; }
54
+ ${methodModifier} string TestProp { get; }
55
55
  }
56
56
  `);
57
57
  });
@@ -70,7 +70,7 @@ describe("modifiers", () => {
70
70
  })).toRenderTo(`
71
71
  public class TestClass
72
72
  {
73
- public new string TestProp { get; }
73
+ public new string TestProp { get; }
74
74
  }
75
75
  `);
76
76
  });
@@ -87,7 +87,7 @@ it("applies PascalCase naming policy", () => {
87
87
  })).toRenderTo(`
88
88
  public class TestClass
89
89
  {
90
- string TestProp { get; }
90
+ string TestProp { get; }
91
91
  }
92
92
  `);
93
93
  });
@@ -103,7 +103,7 @@ it("has getter only", () => {
103
103
  })).toRenderTo(`
104
104
  public class TestClass
105
105
  {
106
- string TestProp { get; }
106
+ string TestProp { get; }
107
107
  }
108
108
  `);
109
109
  });
@@ -119,7 +119,7 @@ it("has setter only", () => {
119
119
  })).toRenderTo(`
120
120
  public class TestClass
121
121
  {
122
- string TestProp { set; }
122
+ string TestProp { set; }
123
123
  }
124
124
  `);
125
125
  });
@@ -136,7 +136,7 @@ it("has getter and setter", () => {
136
136
  })).toRenderTo(`
137
137
  public class TestClass
138
138
  {
139
- string TestProp { get; set; }
139
+ string TestProp { get; set; }
140
140
  }
141
141
  `);
142
142
  });
@@ -153,7 +153,7 @@ it("has getter and init", () => {
153
153
  })).toRenderTo(`
154
154
  public class TestClass
155
155
  {
156
- string TestProp { get; init; }
156
+ string TestProp { get; init; }
157
157
  }
158
158
  `);
159
159
  });
@@ -176,8 +176,8 @@ it("specify doc comment", () => {
176
176
  })).toRenderTo(`
177
177
  class Test
178
178
  {
179
- /// This is a test
180
- string Method { get; set; }
179
+ /// This is a test
180
+ string Method { get; set; }
181
181
  }
182
182
  `);
183
183
  });
@@ -195,7 +195,7 @@ it("specify nullable property", () => {
195
195
  })).toRenderTo(`
196
196
  public class TestClass
197
197
  {
198
- string? TestProp { get; set; }
198
+ string? TestProp { get; set; }
199
199
  }
200
200
  `);
201
201
  });
@@ -213,7 +213,7 @@ it("specify initializer", () => {
213
213
  })).toRenderTo(`
214
214
  public class TestClass
215
215
  {
216
- string TestProp { get; set; } = "abc";
216
+ string TestProp { get; set; } = "abc";
217
217
  }
218
218
  `);
219
219
  });
@@ -235,8 +235,9 @@ it("specify attributes", () => {
235
235
  })).toRenderTo(`
236
236
  public class TestClass
237
237
  {
238
- [Test]
239
- int Test { get; set; }
238
+ [Test]
239
+ int Test { get; set; }
240
240
  }
241
241
  `);
242
- });
242
+ });
243
+ //# sourceMappingURL=property.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","TestNamespace","Attribute","ClassDeclaration","Property","Wrapper","props","_$createComponent","children","name","each","accessModifier","_$mergeProps","type","get","toRenderTo","methodModifier","set","init","doc","nullable","initializer","attributes"],"sources":["../../../../src/components/property/property.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  import * as core from "@alloy-js/core";
2
2
  import { AccessModifiers } from "../../modifiers.js";
3
+ import { ParameterProps } from "../parameters/parameters.jsx";
3
4
  export interface RecordModifiers {
4
5
  readonly partial?: boolean;
5
6
  }
@@ -10,6 +11,23 @@ export interface RecordDeclarationProps extends Omit<core.DeclarationProps, "nam
10
11
  doc?: core.Children;
11
12
  refkey?: core.Refkey;
12
13
  typeParameters?: Record<string, core.Refkey>;
14
+ /**
15
+ * Set the primary constructor parameters
16
+ * @example
17
+ * ```tsx
18
+ * <ClassDeclaration name="MyClass" primaryConstructor={[
19
+ * {name: "value", type: "int"}
20
+ * ]}>
21
+ * ```
22
+ * This will produce:
23
+ * ```csharp
24
+ * public class MyClass(int value)
25
+ * {
26
+ *
27
+ * }
28
+ * ```
29
+ */
30
+ primaryConstructor?: ParameterProps[];
13
31
  }
14
32
  /**
15
33
  * CSharp record declaration.
@@ -1 +1 @@
1
- {"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../../../src/components/record/declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAO5B,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID,2DAA2D;AAC3D,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAC7C,eAAe,EACf,eAAe;IACjB,IAAI,EAAE,MAAM,CAAC;IAEb,kBAAkB;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;CAC9C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,iBAwD9D"}
1
+ {"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../../../src/components/record/declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAS5B,OAAO,EAAE,cAAc,EAAc,MAAM,8BAA8B,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID,2DAA2D;AAC3D,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAC7C,eAAe,EACf,eAAe;IACjB,IAAI,EAAE,MAAM,CAAC;IAEb,kBAAkB;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAE7C;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,iBAyD9D"}
@@ -2,10 +2,11 @@ import { createComponent as _$createComponent, createIntrinsic as _$createIntrin
2
2
  import * as core from "@alloy-js/core";
3
3
  import { computeModifiersPrefix, getAccessModifier, makeModifiers } from "../../modifiers.js";
4
4
  import { useCSharpNamePolicy } from "../../name-policy.js";
5
- import { CSharpOutputSymbol } from "../../symbols/csharp-output-symbol.js";
6
- import { CSharpMemberScope } from "../../symbols/scopes.js";
5
+ import { createClassScope } from "../../scopes/factories.js";
6
+ import { createNamedTypeSymbol, createTypeParameterSymbol } from "../../symbols/factories.js";
7
7
  import { DocWhen } from "../doc/comment.js";
8
8
  import { Name } from "../Name.js";
9
+ import { Parameters } from "../parameters/parameters.js";
9
10
  const getRecordModifiers = makeModifiers(["partial"]);
10
11
 
11
12
  /** Props to use the {@link RecordDeclaration} component */
@@ -32,17 +33,13 @@ const getRecordModifiers = makeModifiers(["partial"]);
32
33
  */
33
34
  export function RecordDeclaration(props) {
34
35
  const name = useCSharpNamePolicy().getName(props.name, "record");
35
- const thisRecordSymbol = new CSharpOutputSymbol(name, {
36
- refkeys: props.refkey
37
- });
38
36
 
39
- // this creates a new scope for the record definition.
40
- // members will automatically "inherit" this scope so
41
- // that refkeys to them will produce the fully-qualified
42
- // name e.g. Foo.Bar.
43
- const thisRecordScope = new CSharpMemberScope("record-decl", {
44
- owner: thisRecordSymbol
37
+ // records don't have their own type kind but instead use class or struct
38
+ // depending on what kind of record we have.
39
+ const thisRecordSymbol = createNamedTypeSymbol(name, "record", {
40
+ refkeys: props.refkey
45
41
  });
42
+ const thisRecordScope = createClassScope(thisRecordSymbol);
46
43
  let typeParams;
47
44
  if (props.typeParameters) {
48
45
  const typeParamNames = new Array();
@@ -50,7 +47,7 @@ export function RecordDeclaration(props) {
50
47
  typeParamNames.push(useCSharpNamePolicy().getName(entry[0], "type-parameter"));
51
48
  // create a symbol for each type param so its
52
49
  // refkey resolves to the type param's name
53
- new CSharpOutputSymbol(entry[0], {
50
+ createTypeParameterSymbol(entry[0], {
54
51
  scope: thisRecordScope,
55
52
  refkeys: entry[1]
56
53
  });
@@ -74,7 +71,16 @@ export function RecordDeclaration(props) {
74
71
  get doc() {
75
72
  return props.doc;
76
73
  }
77
- }), modifiers, "record ", _$createComponent(Name, {}), typeParams, _$memo(() => _$memo(() => !!props.children)() ? _$createComponent(core.Block, {
74
+ }), modifiers, "record ", _$createComponent(Name, {}), typeParams, _$memo(() => _$memo(() => !!props.primaryConstructor)() && _$createComponent(core.Scope, {
75
+ value: thisRecordScope,
76
+ get children() {
77
+ return _$createComponent(Parameters, {
78
+ get parameters() {
79
+ return props.primaryConstructor;
80
+ }
81
+ });
82
+ }
83
+ })), _$memo(() => _$memo(() => !!props.children)() ? _$createComponent(core.Block, {
78
84
  newline: true,
79
85
  get children() {
80
86
  return _$createComponent(core.Scope, {
@@ -87,4 +93,5 @@ export function RecordDeclaration(props) {
87
93
  }) : ";")];
88
94
  }
89
95
  });
90
- }
96
+ }
97
+ //# sourceMappingURL=declaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["core","computeModifiersPrefix","getAccessModifier","makeModifiers","useCSharpNamePolicy","createClassScope","createNamedTypeSymbol","createTypeParameterSymbol","DocWhen","Name","Parameters","getRecordModifiers","RecordDeclaration","props","name","getName","thisRecordSymbol","refkeys","refkey","thisRecordScope","typeParams","typeParameters","typeParamNames","Array","entry","Object","entries","push","scope","_$createIntrinsic","children","_$createComponent","For","each","comma","line","modifiers","Declaration","symbol","doc","_$memo","primaryConstructor","Scope","value","parameters","Block","newline"],"sources":["../../../../src/components/record/declaration.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,19 @@
1
1
  import { createComponent as _$createComponent, mergeProps as _$mergeProps } from "@alloy-js/core/jsx-runtime";
2
+ import { code, refkey } from "@alloy-js/core";
2
3
  import { describe, expect, it } from "vitest";
3
4
  import { TestNamespace } from "../../../test/utils.js";
4
5
  import { Property } from "../property/property.js";
5
6
  import { RecordDeclaration } from "./declaration.js";
6
- it("declares class with no members", () => {
7
+
8
+ // Remove Wrapper that added <SourceFile> because TestNamespace already does
9
+ function Wrapper({
10
+ children
11
+ }) {
12
+ return _$createComponent(TestNamespace, {
13
+ children: children
14
+ });
15
+ }
16
+ it("declares record with no members", () => {
7
17
  expect(_$createComponent(TestNamespace, {
8
18
  get children() {
9
19
  return _$createComponent(RecordDeclaration, {
@@ -68,7 +78,7 @@ it("specify doc comment", () => {
68
78
  record TestRecord;
69
79
  `);
70
80
  });
71
- it("specify class property inside", () => {
81
+ it("specify record property inside", () => {
72
82
  expect(_$createComponent(TestNamespace, {
73
83
  get children() {
74
84
  return _$createComponent(RecordDeclaration, {
@@ -88,7 +98,45 @@ it("specify class property inside", () => {
88
98
  /// This is a test
89
99
  record TestRecord
90
100
  {
91
- string Prop { get; set; }
101
+ string Prop { get; set; }
92
102
  }
93
103
  `);
94
- });
104
+ });
105
+ describe("constructor", () => {
106
+ it("declares primary constructor with args", () => {
107
+ const paramNameRefkey = refkey();
108
+ const paramSizeRefkey = refkey();
109
+ const ctorParams = [{
110
+ name: "name",
111
+ type: "string",
112
+ refkey: paramNameRefkey
113
+ }, {
114
+ name: "size",
115
+ type: "int",
116
+ refkey: paramSizeRefkey
117
+ }];
118
+ expect(_$createComponent(Wrapper, {
119
+ get children() {
120
+ return _$createComponent(RecordDeclaration, {
121
+ "public": true,
122
+ name: "Test",
123
+ primaryConstructor: ctorParams,
124
+ get children() {
125
+ return _$createComponent(Property, {
126
+ name: "PrettyName",
127
+ type: "string",
128
+ get: true,
129
+ initializer: code`$"{${paramNameRefkey}} {${paramSizeRefkey}}"`
130
+ });
131
+ }
132
+ });
133
+ }
134
+ })).toRenderTo(`
135
+ public record Test(string name, int size)
136
+ {
137
+ string PrettyName { get; } = $"{name} {size}";
138
+ }
139
+ `);
140
+ });
141
+ });
142
+ //# sourceMappingURL=declaration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["code","refkey","describe","expect","it","TestNamespace","Property","RecordDeclaration","Wrapper","children","_$createComponent","name","toRenderTo","each","mod","_$mergeProps","partial","doc","get","set","type","paramNameRefkey","paramSizeRefkey","ctorParams","primaryConstructor","initializer"],"sources":["../../../../src/components/record/declaration.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ import { Children } from "@alloy-js/core";
2
+ import { CSharpFormatOptions } from "../../contexts/format-options.js";
3
+ /**
4
+ * Props for {@link SourceFile} component
5
+ */
6
+ export interface SourceFileProps extends CSharpFormatOptions {
7
+ /** Path of the source file */
8
+ path: string;
9
+ /** Source file content */
10
+ children?: Children;
11
+ /**
12
+ * A list of using directives to explicitly include. Note that providing
13
+ * explicit usings is not necessary when referencing symbols via refkeys.
14
+ */
15
+ using?: string[];
16
+ }
17
+ /** A C# source file exists within the context of a namespace contains using statements and declarations */
18
+ export declare function SourceFile(props: SourceFileProps): Children;
19
+ //# sourceMappingURL=source-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-file.d.ts","sourceRoot":"","sources":["../../../../src/components/source-file/source-file.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,QAAQ,EAKT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EAEpB,MAAM,kCAAkC,CAAC;AAM1C;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,2GAA2G;AAC3G,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,YA2DhD"}