@ts-for-gir/cli 3.0.0-beta.10 → 3.0.0-beta.12

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 (764) hide show
  1. package/lib/commands/doc.js +2 -3
  2. package/lib/commands/doc.js.map +1 -1
  3. package/lib/commands/generate.js +2 -3
  4. package/lib/commands/generate.js.map +1 -1
  5. package/lib/commands/list.js +1 -3
  6. package/lib/commands/list.js.map +1 -1
  7. package/lib/config.d.ts +1 -1
  8. package/lib/config.js +17 -6
  9. package/lib/config.js.map +1 -1
  10. package/lib/generation-handler.d.ts +3 -4
  11. package/lib/generation-handler.js +5 -8
  12. package/lib/generation-handler.js.map +1 -1
  13. package/lib/index.d.ts +0 -12
  14. package/lib/index.js +0 -12
  15. package/lib/index.js.map +1 -1
  16. package/lib/module-loader.d.ts +2 -3
  17. package/lib/module-loader.js +1 -6
  18. package/lib/module-loader.js.map +1 -1
  19. package/lib/start.d.ts +1 -1
  20. package/lib/start.js +1 -1
  21. package/lib/utils.d.ts +0 -262
  22. package/lib/utils.js +8 -371
  23. package/lib/utils.js.map +1 -1
  24. package/package.json +15 -22
  25. package/src/commands/doc.ts +4 -4
  26. package/src/commands/generate.ts +4 -3
  27. package/src/commands/list.ts +3 -3
  28. package/src/config.ts +25 -7
  29. package/src/generation-handler.ts +10 -9
  30. package/src/index.ts +0 -12
  31. package/src/module-loader.ts +13 -8
  32. package/src/start.ts +1 -1
  33. package/src/utils.ts +8 -401
  34. package/lib/conflict-resolver.d.ts +0 -155
  35. package/lib/conflict-resolver.js +0 -1103
  36. package/lib/conflict-resolver.js.map +0 -1
  37. package/lib/constants.d.ts +0 -18
  38. package/lib/constants.js +0 -23
  39. package/lib/constants.js.map +0 -1
  40. package/lib/dependency-manager.d.ts +0 -34
  41. package/lib/dependency-manager.js +0 -78
  42. package/lib/dependency-manager.js.map +0 -1
  43. package/lib/generator.d.ts +0 -5
  44. package/lib/generator.js +0 -2
  45. package/lib/generator.js.map +0 -1
  46. package/lib/gir-factory.d.ts +0 -52
  47. package/lib/gir-factory.js +0 -376
  48. package/lib/gir-factory.js.map +0 -1
  49. package/lib/gir-module.d.ts +0 -259
  50. package/lib/gir-module.js +0 -2181
  51. package/lib/gir-module.js.map +0 -1
  52. package/lib/html-doc-generator.d.ts +0 -13
  53. package/lib/html-doc-generator.js +0 -18
  54. package/lib/html-doc-generator.js.map +0 -1
  55. package/lib/injection/callbacks/gjs/Gio-2.0.d.ts +0 -2
  56. package/lib/injection/callbacks/gjs/Gio-2.0.js +0 -36
  57. package/lib/injection/callbacks/gjs/Gio-2.0.js.map +0 -1
  58. package/lib/injection/callbacks/gjs/index.d.ts +0 -2
  59. package/lib/injection/callbacks/gjs/index.js +0 -3
  60. package/lib/injection/callbacks/gjs/index.js.map +0 -1
  61. package/lib/injection/callbacks/index.d.ts +0 -4
  62. package/lib/injection/callbacks/index.js +0 -4
  63. package/lib/injection/callbacks/index.js.map +0 -1
  64. package/lib/injection/callbacks/node-gtk/index.d.ts +0 -2
  65. package/lib/injection/callbacks/node-gtk/index.js +0 -2
  66. package/lib/injection/callbacks/node-gtk/index.js.map +0 -1
  67. package/lib/injection/classes/GLib-2-0.d.ts +0 -2
  68. package/lib/injection/classes/GLib-2-0.js +0 -35
  69. package/lib/injection/classes/GLib-2-0.js.map +0 -1
  70. package/lib/injection/classes/gjs/GLib-2.0.d.ts +0 -2
  71. package/lib/injection/classes/gjs/GLib-2.0.js +0 -205
  72. package/lib/injection/classes/gjs/GLib-2.0.js.map +0 -1
  73. package/lib/injection/classes/gjs/GObject-2.0.d.ts +0 -2
  74. package/lib/injection/classes/gjs/GObject-2.0.js +0 -634
  75. package/lib/injection/classes/gjs/GObject-2.0.js.map +0 -1
  76. package/lib/injection/classes/gjs/Gio-2.0.d.ts +0 -5
  77. package/lib/injection/classes/gjs/Gio-2.0.js +0 -218
  78. package/lib/injection/classes/gjs/Gio-2.0.js.map +0 -1
  79. package/lib/injection/classes/gjs/index.d.ts +0 -2
  80. package/lib/injection/classes/gjs/index.js +0 -5
  81. package/lib/injection/classes/gjs/index.js.map +0 -1
  82. package/lib/injection/classes/index.d.ts +0 -4
  83. package/lib/injection/classes/index.js +0 -5
  84. package/lib/injection/classes/index.js.map +0 -1
  85. package/lib/injection/classes/node-gtk/GLib-2.0.d.ts +0 -2
  86. package/lib/injection/classes/node-gtk/GLib-2.0.js +0 -19
  87. package/lib/injection/classes/node-gtk/GLib-2.0.js.map +0 -1
  88. package/lib/injection/classes/node-gtk/GObject-2.0.d.ts +0 -2
  89. package/lib/injection/classes/node-gtk/GObject-2.0.js +0 -66
  90. package/lib/injection/classes/node-gtk/GObject-2.0.js.map +0 -1
  91. package/lib/injection/classes/node-gtk/Gdk-4.0.d.ts +0 -2
  92. package/lib/injection/classes/node-gtk/Gdk-4.0.js +0 -32
  93. package/lib/injection/classes/node-gtk/Gdk-4.0.js.map +0 -1
  94. package/lib/injection/classes/node-gtk/Gio-2.0.d.ts +0 -2
  95. package/lib/injection/classes/node-gtk/Gio-2.0.js +0 -14
  96. package/lib/injection/classes/node-gtk/Gio-2.0.js.map +0 -1
  97. package/lib/injection/classes/node-gtk/Graphene-1.0.d.ts +0 -2
  98. package/lib/injection/classes/node-gtk/Graphene-1.0.js +0 -133
  99. package/lib/injection/classes/node-gtk/Graphene-1.0.js.map +0 -1
  100. package/lib/injection/classes/node-gtk/Gtk-3.0.d.ts +0 -2
  101. package/lib/injection/classes/node-gtk/Gtk-3.0.js +0 -31
  102. package/lib/injection/classes/node-gtk/Gtk-3.0.js.map +0 -1
  103. package/lib/injection/classes/node-gtk/Gtk-4.0.d.ts +0 -2
  104. package/lib/injection/classes/node-gtk/Gtk-4.0.js +0 -52
  105. package/lib/injection/classes/node-gtk/Gtk-4.0.js.map +0 -1
  106. package/lib/injection/classes/node-gtk/Pango-1.0.d.ts +0 -2
  107. package/lib/injection/classes/node-gtk/Pango-1.0.js +0 -31
  108. package/lib/injection/classes/node-gtk/Pango-1.0.js.map +0 -1
  109. package/lib/injection/classes/node-gtk/index.d.ts +0 -2
  110. package/lib/injection/classes/node-gtk/index.js +0 -19
  111. package/lib/injection/classes/node-gtk/index.js.map +0 -1
  112. package/lib/injection/index.d.ts +0 -3
  113. package/lib/injection/index.js +0 -4
  114. package/lib/injection/index.js.map +0 -1
  115. package/lib/injection/injector.d.ts +0 -17
  116. package/lib/injection/injector.js +0 -139
  117. package/lib/injection/injector.js.map +0 -1
  118. package/lib/logger.d.ts +0 -36
  119. package/lib/logger.js +0 -137
  120. package/lib/logger.js.map +0 -1
  121. package/lib/messages.d.ts +0 -31
  122. package/lib/messages.js +0 -46
  123. package/lib/messages.js.map +0 -1
  124. package/lib/symtable.d.ts +0 -24
  125. package/lib/symtable.js +0 -63
  126. package/lib/symtable.js.map +0 -1
  127. package/lib/template-processor.d.ts +0 -74
  128. package/lib/template-processor.js +0 -165
  129. package/lib/template-processor.js.map +0 -1
  130. package/lib/transformation.d.ts +0 -156
  131. package/lib/transformation.js +0 -524
  132. package/lib/transformation.js.map +0 -1
  133. package/lib/type-definition-generator.d.ts +0 -116
  134. package/lib/type-definition-generator.js +0 -996
  135. package/lib/type-definition-generator.js.map +0 -1
  136. package/lib/types/answer-version.d.ts +0 -4
  137. package/lib/types/answer-version.js +0 -2
  138. package/lib/types/answer-version.js.map +0 -1
  139. package/lib/types/build-type.d.ts +0 -1
  140. package/lib/types/build-type.js +0 -2
  141. package/lib/types/build-type.js.map +0 -1
  142. package/lib/types/class-parent.d.ts +0 -13
  143. package/lib/types/class-parent.js +0 -2
  144. package/lib/types/class-parent.js.map +0 -1
  145. package/lib/types/config-flags.d.ts +0 -4
  146. package/lib/types/config-flags.js +0 -2
  147. package/lib/types/config-flags.js.map +0 -1
  148. package/lib/types/conflict-child-element.d.ts +0 -10
  149. package/lib/types/conflict-child-element.js +0 -2
  150. package/lib/types/conflict-child-element.js.map +0 -1
  151. package/lib/types/conflict-grouped-element.d.ts +0 -6
  152. package/lib/types/conflict-grouped-element.js +0 -2
  153. package/lib/types/conflict-grouped-element.js.map +0 -1
  154. package/lib/types/conflict-grouped-elements.d.ts +0 -4
  155. package/lib/types/conflict-grouped-elements.js +0 -2
  156. package/lib/types/conflict-grouped-elements.js.map +0 -1
  157. package/lib/types/construct-name.d.ts +0 -1
  158. package/lib/types/construct-name.js +0 -2
  159. package/lib/types/construct-name.js.map +0 -1
  160. package/lib/types/dependency-map.d.ts +0 -4
  161. package/lib/types/dependency-map.js +0 -2
  162. package/lib/types/dependency-map.js.map +0 -1
  163. package/lib/types/dependency.d.ts +0 -15
  164. package/lib/types/dependency.js +0 -2
  165. package/lib/types/dependency.js.map +0 -1
  166. package/lib/types/environment.d.ts +0 -1
  167. package/lib/types/environment.js +0 -2
  168. package/lib/types/environment.js.map +0 -1
  169. package/lib/types/file-info.d.ts +0 -14
  170. package/lib/types/file-info.js +0 -2
  171. package/lib/types/file-info.js.map +0 -1
  172. package/lib/types/generate-config.d.ts +0 -34
  173. package/lib/types/generate-config.js +0 -2
  174. package/lib/types/generate-config.js.map +0 -1
  175. package/lib/types/generator-type.d.ts +0 -4
  176. package/lib/types/generator-type.js +0 -6
  177. package/lib/types/generator-type.js.map +0 -1
  178. package/lib/types/gir-alias-element.d.ts +0 -13
  179. package/lib/types/gir-alias-element.js +0 -2
  180. package/lib/types/gir-alias-element.js.map +0 -1
  181. package/lib/types/gir-annotation.d.ts +0 -9
  182. package/lib/types/gir-annotation.js +0 -2
  183. package/lib/types/gir-annotation.js.map +0 -1
  184. package/lib/types/gir-any-element.d.ts +0 -2
  185. package/lib/types/gir-any-element.js +0 -2
  186. package/lib/types/gir-any-element.js.map +0 -1
  187. package/lib/types/gir-any-type.d.ts +0 -5
  188. package/lib/types/gir-any-type.js +0 -2
  189. package/lib/types/gir-any-type.js.map +0 -1
  190. package/lib/types/gir-array-type.d.ts +0 -20
  191. package/lib/types/gir-array-type.js +0 -3
  192. package/lib/types/gir-array-type.js.map +0 -1
  193. package/lib/types/gir-bitfield-element.d.ts +0 -17
  194. package/lib/types/gir-bitfield-element.js +0 -2
  195. package/lib/types/gir-bitfield-element.js.map +0 -1
  196. package/lib/types/gir-boolean.d.ts +0 -1
  197. package/lib/types/gir-boolean.js +0 -2
  198. package/lib/types/gir-boolean.js.map +0 -1
  199. package/lib/types/gir-boxed-element.d.ts +0 -15
  200. package/lib/types/gir-boxed-element.js +0 -2
  201. package/lib/types/gir-boxed-element.js.map +0 -1
  202. package/lib/types/gir-c-include.d.ts +0 -7
  203. package/lib/types/gir-c-include.js +0 -2
  204. package/lib/types/gir-c-include.js.map +0 -1
  205. package/lib/types/gir-callable-attrs.d.ts +0 -15
  206. package/lib/types/gir-callable-attrs.js +0 -3
  207. package/lib/types/gir-callable-attrs.js.map +0 -1
  208. package/lib/types/gir-callable-param-element.d.ts +0 -30
  209. package/lib/types/gir-callable-param-element.js +0 -2
  210. package/lib/types/gir-callable-param-element.js.map +0 -1
  211. package/lib/types/gir-callable-param.d.ts +0 -7
  212. package/lib/types/gir-callable-param.js +0 -2
  213. package/lib/types/gir-callable-param.js.map +0 -1
  214. package/lib/types/gir-callable-return.d.ts +0 -22
  215. package/lib/types/gir-callable-return.js +0 -2
  216. package/lib/types/gir-callable-return.js.map +0 -1
  217. package/lib/types/gir-callback-element.d.ts +0 -15
  218. package/lib/types/gir-callback-element.js +0 -2
  219. package/lib/types/gir-callback-element.js.map +0 -1
  220. package/lib/types/gir-class-element.d.ts +0 -48
  221. package/lib/types/gir-class-element.js +0 -2
  222. package/lib/types/gir-class-element.js.map +0 -1
  223. package/lib/types/gir-constant-element.d.ts +0 -15
  224. package/lib/types/gir-constant-element.js +0 -2
  225. package/lib/types/gir-constant-element.js.map +0 -1
  226. package/lib/types/gir-constructor-element.d.ts +0 -8
  227. package/lib/types/gir-constructor-element.js +0 -2
  228. package/lib/types/gir-constructor-element.js.map +0 -1
  229. package/lib/types/gir-direction.d.ts +0 -5
  230. package/lib/types/gir-direction.js +0 -7
  231. package/lib/types/gir-direction.js.map +0 -1
  232. package/lib/types/gir-doc-element.d.ts +0 -68
  233. package/lib/types/gir-doc-element.js +0 -2
  234. package/lib/types/gir-doc-element.js.map +0 -1
  235. package/lib/types/gir-enum-element.d.ts +0 -19
  236. package/lib/types/gir-enum-element.js +0 -2
  237. package/lib/types/gir-enum-element.js.map +0 -1
  238. package/lib/types/gir-field-element.d.ts +0 -18
  239. package/lib/types/gir-field-element.js +0 -2
  240. package/lib/types/gir-field-element.js.map +0 -1
  241. package/lib/types/gir-function-element.d.ts +0 -8
  242. package/lib/types/gir-function-element.js +0 -2
  243. package/lib/types/gir-function-element.js.map +0 -1
  244. package/lib/types/gir-implements.d.ts +0 -8
  245. package/lib/types/gir-implements.js +0 -2
  246. package/lib/types/gir-implements.js.map +0 -1
  247. package/lib/types/gir-include.d.ts +0 -9
  248. package/lib/types/gir-include.js +0 -2
  249. package/lib/types/gir-include.js.map +0 -1
  250. package/lib/types/gir-info-attrs.d.ts +0 -13
  251. package/lib/types/gir-info-attrs.js +0 -2
  252. package/lib/types/gir-info-attrs.js.map +0 -1
  253. package/lib/types/gir-info-elements.d.ts +0 -5
  254. package/lib/types/gir-info-elements.js +0 -2
  255. package/lib/types/gir-info-elements.js.map +0 -1
  256. package/lib/types/gir-instance-parameter.d.ts +0 -21
  257. package/lib/types/gir-instance-parameter.js +0 -2
  258. package/lib/types/gir-instance-parameter.js.map +0 -1
  259. package/lib/types/gir-interface-element.d.ts +0 -31
  260. package/lib/types/gir-interface-element.js +0 -2
  261. package/lib/types/gir-interface-element.js.map +0 -1
  262. package/lib/types/gir-member-element.d.ts +0 -17
  263. package/lib/types/gir-member-element.js +0 -2
  264. package/lib/types/gir-member-element.js.map +0 -1
  265. package/lib/types/gir-method-element.d.ts +0 -13
  266. package/lib/types/gir-method-element.js +0 -2
  267. package/lib/types/gir-method-element.js.map +0 -1
  268. package/lib/types/gir-module-resolved-by.d.ts +0 -10
  269. package/lib/types/gir-module-resolved-by.js +0 -2
  270. package/lib/types/gir-module-resolved-by.js.map +0 -1
  271. package/lib/types/gir-modules-grouped-map.d.ts +0 -4
  272. package/lib/types/gir-modules-grouped-map.js +0 -2
  273. package/lib/types/gir-modules-grouped-map.js.map +0 -1
  274. package/lib/types/gir-modules-grouped.d.ts +0 -12
  275. package/lib/types/gir-modules-grouped.js +0 -2
  276. package/lib/types/gir-modules-grouped.js.map +0 -1
  277. package/lib/types/gir-namespace.d.ts +0 -30
  278. package/lib/types/gir-namespace.js +0 -2
  279. package/lib/types/gir-namespace.js.map +0 -1
  280. package/lib/types/gir-package.d.ts +0 -7
  281. package/lib/types/gir-package.js +0 -2
  282. package/lib/types/gir-package.js.map +0 -1
  283. package/lib/types/gir-prerequisite.d.ts +0 -5
  284. package/lib/types/gir-prerequisite.js +0 -2
  285. package/lib/types/gir-prerequisite.js.map +0 -1
  286. package/lib/types/gir-property-element.d.ts +0 -21
  287. package/lib/types/gir-property-element.js +0 -2
  288. package/lib/types/gir-property-element.js.map +0 -1
  289. package/lib/types/gir-record-element.d.ts +0 -30
  290. package/lib/types/gir-record-element.js +0 -2
  291. package/lib/types/gir-record-element.js.map +0 -1
  292. package/lib/types/gir-repository.d.ts +0 -16
  293. package/lib/types/gir-repository.js +0 -2
  294. package/lib/types/gir-repository.js.map +0 -1
  295. package/lib/types/gir-signal.d.ts +0 -25
  296. package/lib/types/gir-signal.js +0 -2
  297. package/lib/types/gir-signal.js.map +0 -1
  298. package/lib/types/gir-transfer-ownership-type.d.ts +0 -5
  299. package/lib/types/gir-transfer-ownership-type.js +0 -7
  300. package/lib/types/gir-transfer-ownership-type.js.map +0 -1
  301. package/lib/types/gir-transfer-ownership.d.ts +0 -5
  302. package/lib/types/gir-transfer-ownership.js +0 -2
  303. package/lib/types/gir-transfer-ownership.js.map +0 -1
  304. package/lib/types/gir-type.d.ts +0 -14
  305. package/lib/types/gir-type.js +0 -2
  306. package/lib/types/gir-type.js.map +0 -1
  307. package/lib/types/gir-union-element.d.ts +0 -22
  308. package/lib/types/gir-union-element.js +0 -2
  309. package/lib/types/gir-union-element.js.map +0 -1
  310. package/lib/types/gir-unparsed-number.d.ts +0 -2
  311. package/lib/types/gir-unparsed-number.js +0 -2
  312. package/lib/types/gir-unparsed-number.js.map +0 -1
  313. package/lib/types/gir-var-args.d.ts +0 -5
  314. package/lib/types/gir-var-args.js +0 -2
  315. package/lib/types/gir-var-args.js.map +0 -1
  316. package/lib/types/gir-virtual-method.d.ts +0 -10
  317. package/lib/types/gir-virtual-method.js +0 -2
  318. package/lib/types/gir-virtual-method.js.map +0 -1
  319. package/lib/types/index.d.ts +0 -120
  320. package/lib/types/index.js +0 -121
  321. package/lib/types/index.js.map +0 -1
  322. package/lib/types/inheritance-table.d.ts +0 -3
  323. package/lib/types/inheritance-table.js +0 -2
  324. package/lib/types/inheritance-table.js.map +0 -1
  325. package/lib/types/injection-callback.d.ts +0 -16
  326. package/lib/types/injection-callback.js +0 -2
  327. package/lib/types/injection-callback.js.map +0 -1
  328. package/lib/types/injection-class.d.ts +0 -25
  329. package/lib/types/injection-class.js +0 -2
  330. package/lib/types/injection-class.js.map +0 -1
  331. package/lib/types/injection-function.d.ts +0 -7
  332. package/lib/types/injection-function.js +0 -2
  333. package/lib/types/injection-function.js.map +0 -1
  334. package/lib/types/injection-generic-parameter.d.ts +0 -2
  335. package/lib/types/injection-generic-parameter.js +0 -2
  336. package/lib/types/injection-generic-parameter.js.map +0 -1
  337. package/lib/types/injection-instance-parameter.d.ts +0 -2
  338. package/lib/types/injection-instance-parameter.js +0 -2
  339. package/lib/types/injection-instance-parameter.js.map +0 -1
  340. package/lib/types/injection-parameter.d.ts +0 -8
  341. package/lib/types/injection-parameter.js +0 -2
  342. package/lib/types/injection-parameter.js.map +0 -1
  343. package/lib/types/injection-property.d.ts +0 -4
  344. package/lib/types/injection-property.js +0 -2
  345. package/lib/types/injection-property.js.map +0 -1
  346. package/lib/types/injection-type.d.ts +0 -2
  347. package/lib/types/injection-type.js +0 -2
  348. package/lib/types/injection-type.js.map +0 -1
  349. package/lib/types/injection.d.ts +0 -5
  350. package/lib/types/injection.js +0 -2
  351. package/lib/types/injection.js.map +0 -1
  352. package/lib/types/local-name-check.d.ts +0 -4
  353. package/lib/types/local-name-check.js +0 -2
  354. package/lib/types/local-name-check.js.map +0 -1
  355. package/lib/types/local-name-type.d.ts +0 -1
  356. package/lib/types/local-name-type.js +0 -2
  357. package/lib/types/local-name-type.js.map +0 -1
  358. package/lib/types/local-name.d.ts +0 -7
  359. package/lib/types/local-name.js +0 -2
  360. package/lib/types/local-name.js.map +0 -1
  361. package/lib/types/local-names.d.ts +0 -4
  362. package/lib/types/local-names.js +0 -2
  363. package/lib/types/local-names.js.map +0 -1
  364. package/lib/types/module-type.d.ts +0 -1
  365. package/lib/types/module-type.js +0 -2
  366. package/lib/types/module-type.js.map +0 -1
  367. package/lib/types/parsed-gir.d.ts +0 -4
  368. package/lib/types/parsed-gir.js +0 -2
  369. package/lib/types/parsed-gir.js.map +0 -1
  370. package/lib/types/part-of-class.d.ts +0 -7
  371. package/lib/types/part-of-class.js +0 -2
  372. package/lib/types/part-of-class.js.map +0 -1
  373. package/lib/types/part-of-module.d.ts +0 -6
  374. package/lib/types/part-of-module.js +0 -2
  375. package/lib/types/part-of-module.js.map +0 -1
  376. package/lib/types/promisify-func.d.ts +0 -7
  377. package/lib/types/promisify-func.js +0 -2
  378. package/lib/types/promisify-func.js.map +0 -1
  379. package/lib/types/resolve-type.d.ts +0 -4
  380. package/lib/types/resolve-type.js +0 -6
  381. package/lib/types/resolve-type.js.map +0 -1
  382. package/lib/types/sym-table-items.d.ts +0 -4
  383. package/lib/types/sym-table-items.js +0 -2
  384. package/lib/types/sym-table-items.js.map +0 -1
  385. package/lib/types/transformation-case.d.ts +0 -1
  386. package/lib/types/transformation-case.js +0 -2
  387. package/lib/types/transformation-case.js.map +0 -1
  388. package/lib/types/transformations.d.ts +0 -11
  389. package/lib/types/transformations.js +0 -2
  390. package/lib/types/transformations.js.map +0 -1
  391. package/lib/types/ts-alias.d.ts +0 -10
  392. package/lib/types/ts-alias.js +0 -2
  393. package/lib/types/ts-alias.js.map +0 -1
  394. package/lib/types/ts-callback-interface.d.ts +0 -10
  395. package/lib/types/ts-callback-interface.js +0 -2
  396. package/lib/types/ts-callback-interface.js.map +0 -1
  397. package/lib/types/ts-callback.d.ts +0 -17
  398. package/lib/types/ts-callback.js +0 -2
  399. package/lib/types/ts-callback.js.map +0 -1
  400. package/lib/types/ts-class.d.ts +0 -85
  401. package/lib/types/ts-class.js +0 -2
  402. package/lib/types/ts-class.js.map +0 -1
  403. package/lib/types/ts-doc-tag.d.ts +0 -21
  404. package/lib/types/ts-doc-tag.js +0 -2
  405. package/lib/types/ts-doc-tag.js.map +0 -1
  406. package/lib/types/ts-doc.d.ts +0 -16
  407. package/lib/types/ts-doc.js +0 -2
  408. package/lib/types/ts-doc.js.map +0 -1
  409. package/lib/types/ts-enum.d.ts +0 -12
  410. package/lib/types/ts-enum.js +0 -2
  411. package/lib/types/ts-enum.js.map +0 -1
  412. package/lib/types/ts-function.d.ts +0 -55
  413. package/lib/types/ts-function.js +0 -2
  414. package/lib/types/ts-function.js.map +0 -1
  415. package/lib/types/ts-generic-parameter.d.ts +0 -8
  416. package/lib/types/ts-generic-parameter.js +0 -2
  417. package/lib/types/ts-generic-parameter.js.map +0 -1
  418. package/lib/types/ts-instance-parameter.d.ts +0 -4
  419. package/lib/types/ts-instance-parameter.js +0 -2
  420. package/lib/types/ts-instance-parameter.js.map +0 -1
  421. package/lib/types/ts-member.d.ts +0 -10
  422. package/lib/types/ts-member.js +0 -2
  423. package/lib/types/ts-member.js.map +0 -1
  424. package/lib/types/ts-method.d.ts +0 -5
  425. package/lib/types/ts-method.js +0 -2
  426. package/lib/types/ts-method.js.map +0 -1
  427. package/lib/types/ts-parameter.d.ts +0 -15
  428. package/lib/types/ts-parameter.js +0 -2
  429. package/lib/types/ts-parameter.js.map +0 -1
  430. package/lib/types/ts-property.d.ts +0 -17
  431. package/lib/types/ts-property.js +0 -2
  432. package/lib/types/ts-property.js.map +0 -1
  433. package/lib/types/ts-signal.d.ts +0 -17
  434. package/lib/types/ts-signal.js +0 -2
  435. package/lib/types/ts-signal.js.map +0 -1
  436. package/lib/types/ts-type-name.d.ts +0 -1
  437. package/lib/types/ts-type-name.js +0 -2
  438. package/lib/types/ts-type-name.js.map +0 -1
  439. package/lib/types/ts-type-separator.d.ts +0 -1
  440. package/lib/types/ts-type-separator.js +0 -2
  441. package/lib/types/ts-type-separator.js.map +0 -1
  442. package/lib/types/ts-type.d.ts +0 -26
  443. package/lib/types/ts-type.js +0 -2
  444. package/lib/types/ts-type.js.map +0 -1
  445. package/lib/types/ts-var.d.ts +0 -17
  446. package/lib/types/ts-var.js +0 -2
  447. package/lib/types/ts-var.js.map +0 -1
  448. package/lib/types/type-gir-alias.d.ts +0 -2
  449. package/lib/types/type-gir-alias.js +0 -2
  450. package/lib/types/type-gir-alias.js.map +0 -1
  451. package/lib/types/type-gir-class.d.ts +0 -2
  452. package/lib/types/type-gir-class.js +0 -2
  453. package/lib/types/type-gir-class.js.map +0 -1
  454. package/lib/types/type-gir-element.d.ts +0 -3
  455. package/lib/types/type-gir-element.js +0 -2
  456. package/lib/types/type-gir-element.js.map +0 -1
  457. package/lib/types/type-gir-enumeration-member.d.ts +0 -2
  458. package/lib/types/type-gir-enumeration-member.js +0 -2
  459. package/lib/types/type-gir-enumeration-member.js.map +0 -1
  460. package/lib/types/type-gir-enumeration.d.ts +0 -2
  461. package/lib/types/type-gir-enumeration.js +0 -2
  462. package/lib/types/type-gir-enumeration.js.map +0 -1
  463. package/lib/types/type-gir-function.d.ts +0 -1
  464. package/lib/types/type-gir-function.js +0 -2
  465. package/lib/types/type-gir-function.js.map +0 -1
  466. package/lib/types/type-gir-interface.d.ts +0 -2
  467. package/lib/types/type-gir-interface.js +0 -2
  468. package/lib/types/type-gir-interface.js.map +0 -1
  469. package/lib/types/type-gir-method.d.ts +0 -2
  470. package/lib/types/type-gir-method.js +0 -2
  471. package/lib/types/type-gir-method.js.map +0 -1
  472. package/lib/types/type-gir-parameter.d.ts +0 -1
  473. package/lib/types/type-gir-parameter.js +0 -2
  474. package/lib/types/type-gir-parameter.js.map +0 -1
  475. package/lib/types/type-gir-property.d.ts +0 -2
  476. package/lib/types/type-gir-property.js +0 -2
  477. package/lib/types/type-gir-property.js.map +0 -1
  478. package/lib/types/type-gir-variable.d.ts +0 -1
  479. package/lib/types/type-gir-variable.js +0 -2
  480. package/lib/types/type-gir-variable.js.map +0 -1
  481. package/lib/types/type-ts-element.d.ts +0 -3
  482. package/lib/types/type-ts-element.js +0 -2
  483. package/lib/types/type-ts-element.js.map +0 -1
  484. package/lib/types/type-ts-enumeration-member.d.ts +0 -2
  485. package/lib/types/type-ts-enumeration-member.js +0 -2
  486. package/lib/types/type-ts-enumeration-member.js.map +0 -1
  487. package/lib/types/type-ts-function.d.ts +0 -1
  488. package/lib/types/type-ts-function.js +0 -2
  489. package/lib/types/type-ts-function.js.map +0 -1
  490. package/lib/types/type-ts-property.d.ts +0 -1
  491. package/lib/types/type-ts-property.js +0 -2
  492. package/lib/types/type-ts-property.js.map +0 -1
  493. package/lib/types/user-config-load-result.d.ts +0 -6
  494. package/lib/types/user-config-load-result.js +0 -2
  495. package/lib/types/user-config-load-result.js.map +0 -1
  496. package/lib/types/user-config.d.ts +0 -42
  497. package/lib/types/user-config.js +0 -2
  498. package/lib/types/user-config.js.map +0 -1
  499. package/src/conflict-resolver.ts +0 -1358
  500. package/src/constants.ts +0 -29
  501. package/src/dependency-manager.ts +0 -91
  502. package/src/generator.ts +0 -10
  503. package/src/gir-factory.ts +0 -526
  504. package/src/gir-module.ts +0 -2953
  505. package/src/html-doc-generator.ts +0 -23
  506. package/src/injection/callbacks/gjs/Gio-2.0.ts +0 -37
  507. package/src/injection/callbacks/gjs/index.ts +0 -5
  508. package/src/injection/callbacks/index.ts +0 -6
  509. package/src/injection/callbacks/node-gtk/index.ts +0 -3
  510. package/src/injection/classes/GLib-2-0.ts +0 -36
  511. package/src/injection/classes/gjs/GLib-2.0.ts +0 -206
  512. package/src/injection/classes/gjs/GObject-2.0.ts +0 -635
  513. package/src/injection/classes/gjs/Gio-2.0.ts +0 -219
  514. package/src/injection/classes/gjs/index.ts +0 -7
  515. package/src/injection/classes/index.ts +0 -7
  516. package/src/injection/classes/node-gtk/GLib-2.0.ts +0 -20
  517. package/src/injection/classes/node-gtk/GObject-2.0.ts +0 -67
  518. package/src/injection/classes/node-gtk/Gdk-4.0.ts +0 -33
  519. package/src/injection/classes/node-gtk/Gio-2.0.ts +0 -15
  520. package/src/injection/classes/node-gtk/Graphene-1.0.ts +0 -134
  521. package/src/injection/classes/node-gtk/Gtk-3.0.ts +0 -32
  522. package/src/injection/classes/node-gtk/Gtk-4.0.ts +0 -53
  523. package/src/injection/classes/node-gtk/Pango-1.0.ts +0 -32
  524. package/src/injection/classes/node-gtk/index.ts +0 -21
  525. package/src/injection/index.ts +0 -3
  526. package/src/injection/injector.ts +0 -184
  527. package/src/logger.ts +0 -134
  528. package/src/messages.ts +0 -69
  529. package/src/symtable.ts +0 -72
  530. package/src/template-processor.ts +0 -199
  531. package/src/transformation.ts +0 -584
  532. package/src/type-definition-generator.ts +0 -1467
  533. package/src/types/answer-version.ts +0 -4
  534. package/src/types/build-type.ts +0 -1
  535. package/src/types/class-parent.ts +0 -14
  536. package/src/types/config-flags.ts +0 -5
  537. package/src/types/conflict-child-element.ts +0 -11
  538. package/src/types/conflict-grouped-element.ts +0 -7
  539. package/src/types/conflict-grouped-elements.ts +0 -5
  540. package/src/types/construct-name.ts +0 -11
  541. package/src/types/dependency-map.ts +0 -4
  542. package/src/types/dependency.ts +0 -16
  543. package/src/types/environment.ts +0 -1
  544. package/src/types/file-info.ts +0 -14
  545. package/src/types/generate-config.ts +0 -35
  546. package/src/types/generator-type.ts +0 -4
  547. package/src/types/gir-alias-element.ts +0 -15
  548. package/src/types/gir-annotation.ts +0 -10
  549. package/src/types/gir-any-element.ts +0 -35
  550. package/src/types/gir-any-type.ts +0 -7
  551. package/src/types/gir-array-type.ts +0 -23
  552. package/src/types/gir-bitfield-element.ts +0 -20
  553. package/src/types/gir-boolean.ts +0 -1
  554. package/src/types/gir-boxed-element.ts +0 -19
  555. package/src/types/gir-c-include.ts +0 -7
  556. package/src/types/gir-callable-attrs.ts +0 -19
  557. package/src/types/gir-callable-param-element.ts +0 -45
  558. package/src/types/gir-callable-param.ts +0 -9
  559. package/src/types/gir-callable-return.ts +0 -25
  560. package/src/types/gir-callback-element.ts +0 -28
  561. package/src/types/gir-class-element.ts +0 -71
  562. package/src/types/gir-constant-element.ts +0 -17
  563. package/src/types/gir-constructor-element.ts +0 -18
  564. package/src/types/gir-direction.ts +0 -5
  565. package/src/types/gir-doc-element.ts +0 -73
  566. package/src/types/gir-enum-element.ts +0 -28
  567. package/src/types/gir-field-element.ts +0 -31
  568. package/src/types/gir-function-element.ts +0 -19
  569. package/src/types/gir-implements.ts +0 -9
  570. package/src/types/gir-include.ts +0 -9
  571. package/src/types/gir-info-attrs.ts +0 -16
  572. package/src/types/gir-info-elements.ts +0 -8
  573. package/src/types/gir-instance-parameter.ts +0 -25
  574. package/src/types/gir-interface-element.ts +0 -53
  575. package/src/types/gir-member-element.ts +0 -19
  576. package/src/types/gir-method-element.ts +0 -25
  577. package/src/types/gir-module-resolved-by.ts +0 -11
  578. package/src/types/gir-modules-grouped-map.ts +0 -5
  579. package/src/types/gir-modules-grouped.ts +0 -13
  580. package/src/types/gir-namespace.ts +0 -47
  581. package/src/types/gir-package.ts +0 -7
  582. package/src/types/gir-prerequisite.ts +0 -5
  583. package/src/types/gir-property-element.ts +0 -31
  584. package/src/types/gir-record-element.ts +0 -47
  585. package/src/types/gir-repository.ts +0 -20
  586. package/src/types/gir-signal.ts +0 -43
  587. package/src/types/gir-transfer-ownership-type.ts +0 -5
  588. package/src/types/gir-transfer-ownership.ts +0 -6
  589. package/src/types/gir-type.ts +0 -16
  590. package/src/types/gir-union-element.ts +0 -35
  591. package/src/types/gir-unparsed-number.ts +0 -2
  592. package/src/types/gir-var-args.ts +0 -6
  593. package/src/types/gir-virtual-method.ts +0 -22
  594. package/src/types/index.ts +0 -120
  595. package/src/types/inheritance-table.ts +0 -3
  596. package/src/types/injection-callback.ts +0 -20
  597. package/src/types/injection-class.ts +0 -30
  598. package/src/types/injection-function.ts +0 -31
  599. package/src/types/injection-generic-parameter.ts +0 -3
  600. package/src/types/injection-instance-parameter.ts +0 -3
  601. package/src/types/injection-parameter.ts +0 -9
  602. package/src/types/injection-property.ts +0 -7
  603. package/src/types/injection-type.ts +0 -3
  604. package/src/types/injection.ts +0 -6
  605. package/src/types/local-name-check.ts +0 -5
  606. package/src/types/local-name-type.ts +0 -1
  607. package/src/types/local-name.ts +0 -8
  608. package/src/types/local-names.ts +0 -5
  609. package/src/types/module-type.ts +0 -1
  610. package/src/types/parsed-gir.ts +0 -5
  611. package/src/types/part-of-class.ts +0 -9
  612. package/src/types/part-of-module.ts +0 -8
  613. package/src/types/promisify-func.ts +0 -9
  614. package/src/types/resolve-type.ts +0 -4
  615. package/src/types/sym-table-items.ts +0 -5
  616. package/src/types/transformation-case.ts +0 -7
  617. package/src/types/transformations.ts +0 -12
  618. package/src/types/ts-alias.ts +0 -11
  619. package/src/types/ts-callback-interface.ts +0 -11
  620. package/src/types/ts-callback.ts +0 -21
  621. package/src/types/ts-class.ts +0 -109
  622. package/src/types/ts-doc-tag.ts +0 -23
  623. package/src/types/ts-doc.ts +0 -18
  624. package/src/types/ts-enum.ts +0 -15
  625. package/src/types/ts-function.ts +0 -70
  626. package/src/types/ts-generic-parameter.ts +0 -8
  627. package/src/types/ts-instance-parameter.ts +0 -4
  628. package/src/types/ts-member.ts +0 -11
  629. package/src/types/ts-method.ts +0 -6
  630. package/src/types/ts-parameter.ts +0 -20
  631. package/src/types/ts-property.ts +0 -22
  632. package/src/types/ts-signal.ts +0 -21
  633. package/src/types/ts-type-name.ts +0 -1
  634. package/src/types/ts-type-separator.ts +0 -1
  635. package/src/types/ts-type.ts +0 -28
  636. package/src/types/ts-var.ts +0 -21
  637. package/src/types/type-gir-alias.ts +0 -2
  638. package/src/types/type-gir-class.ts +0 -2
  639. package/src/types/type-gir-element.ts +0 -25
  640. package/src/types/type-gir-enumeration-member.ts +0 -2
  641. package/src/types/type-gir-enumeration.ts +0 -2
  642. package/src/types/type-gir-function.ts +0 -8
  643. package/src/types/type-gir-interface.ts +0 -2
  644. package/src/types/type-gir-method.ts +0 -2
  645. package/src/types/type-gir-parameter.ts +0 -1
  646. package/src/types/type-gir-property.ts +0 -2
  647. package/src/types/type-gir-variable.ts +0 -1
  648. package/src/types/type-ts-element.ts +0 -13
  649. package/src/types/type-ts-enumeration-member.ts +0 -2
  650. package/src/types/type-ts-function.ts +0 -1
  651. package/src/types/type-ts-property.ts +0 -1
  652. package/src/types/user-config-load-result.ts +0 -6
  653. package/src/types/user-config.ts +0 -43
  654. package/templates/Cogl-2.0.d.ts +0 -0
  655. package/templates/Gjs/GObject-2.0.d.ts +0 -238
  656. package/templates/Gjs/Gio-2.0.d.ts +0 -101
  657. package/templates/Gjs/Gjs.d.ts +0 -204
  658. package/templates/Gjs/Gjs.js +0 -21
  659. package/templates/Gjs/GnomeShell.d.ts +0 -154
  660. package/templates/Gjs/GnomeShell.js +0 -10
  661. package/templates/Gjs/index.d.ts +0 -594
  662. package/templates/Gjs/index.js +0 -4
  663. package/templates/Gjs/misc/dbusUtils.d.ts +0 -15
  664. package/templates/Gjs/misc/dbusUtils.js +0 -6
  665. package/templates/Gjs/misc/extensionUtils.d.ts +0 -99
  666. package/templates/Gjs/misc/extensionUtils.js +0 -6
  667. package/templates/Gjs/misc/fileUtils.d.ts +0 -51
  668. package/templates/Gjs/misc/fileUtils.js +0 -6
  669. package/templates/Gjs/misc/gnomeSession.d.ts +0 -74
  670. package/templates/Gjs/misc/gnomeSession.js +0 -6
  671. package/templates/Gjs/misc/parentalControlsManager.d.ts +0 -42
  672. package/templates/Gjs/misc/parentalControlsManager.js +0 -6
  673. package/templates/Gjs/misc/signals.d.ts +0 -15
  674. package/templates/Gjs/misc/signals.js +0 -6
  675. package/templates/Gjs/module.d.ts +0 -6
  676. package/templates/Gjs/module.js +0 -16
  677. package/templates/Gjs/tsconfig.alias.json +0 -10
  678. package/templates/Gjs/ui/accessDialog.d.ts +0 -19
  679. package/templates/Gjs/ui/accessDialog.js +0 -6
  680. package/templates/Gjs/ui/altTab.d.ts +0 -124
  681. package/templates/Gjs/ui/altTab.js +0 -6
  682. package/templates/Gjs/ui/animation.d.ts +0 -58
  683. package/templates/Gjs/ui/animation.js +0 -6
  684. package/templates/Gjs/ui/appDisplay.d.ts +0 -204
  685. package/templates/Gjs/ui/appDisplay.js +0 -6
  686. package/templates/Gjs/ui/appFavorites.d.ts +0 -34
  687. package/templates/Gjs/ui/appFavorites.js +0 -6
  688. package/templates/Gjs/ui/appMenu.d.ts +0 -74
  689. package/templates/Gjs/ui/appMenu.js +0 -6
  690. package/templates/Gjs/ui/audioDeviceSelection.d.ts +0 -51
  691. package/templates/Gjs/ui/audioDeviceSelection.js +0 -6
  692. package/templates/Gjs/ui/background.d.ts +0 -255
  693. package/templates/Gjs/ui/background.js +0 -5
  694. package/templates/Gjs/ui/backgroundMenu.d.ts +0 -19
  695. package/templates/Gjs/ui/backgroundMenu.js +0 -5
  696. package/templates/Gjs/ui/barLevel.d.ts +0 -42
  697. package/templates/Gjs/ui/barLevel.js +0 -5
  698. package/templates/Gjs/ui/boxpointer.d.ts +0 -103
  699. package/templates/Gjs/ui/boxpointer.js +0 -5
  700. package/templates/Gjs/ui/calendar.d.ts +0 -261
  701. package/templates/Gjs/ui/calendar.js +0 -5
  702. package/templates/Gjs/ui/checkBox.d.ts +0 -22
  703. package/templates/Gjs/ui/checkBox.js +0 -5
  704. package/templates/Gjs/ui/closeDialog.d.ts +0 -40
  705. package/templates/Gjs/ui/closeDialog.js +0 -5
  706. package/templates/Gjs/ui/components/__init__.d.ts +0 -9
  707. package/templates/Gjs/ui/components/__init__.js +0 -6
  708. package/templates/Gjs/ui/components/automountManager.d.ts +0 -8
  709. package/templates/Gjs/ui/components/automountManager.js +0 -6
  710. package/templates/Gjs/ui/components/autorunManager.d.ts +0 -8
  711. package/templates/Gjs/ui/components/autorunManager.js +0 -6
  712. package/templates/Gjs/ui/components/index.d.ts +0 -6
  713. package/templates/Gjs/ui/components/index.js +0 -6
  714. package/templates/Gjs/ui/components/keyring.d.ts +0 -19
  715. package/templates/Gjs/ui/components/keyring.js +0 -6
  716. package/templates/Gjs/ui/components/networkAgent.d.ts +0 -10
  717. package/templates/Gjs/ui/components/networkAgent.js +0 -6
  718. package/templates/Gjs/ui/components/polkitAgent.d.ts +0 -19
  719. package/templates/Gjs/ui/components/polkitAgent.js +0 -6
  720. package/templates/Gjs/ui/components/telepathyClient.d.ts +0 -10
  721. package/templates/Gjs/ui/components/telepathyClient.js +0 -6
  722. package/templates/Gjs/ui/dialog.d.ts +0 -78
  723. package/templates/Gjs/ui/dialog.js +0 -6
  724. package/templates/Gjs/ui/dnd.d.ts +0 -127
  725. package/templates/Gjs/ui/dnd.js +0 -6
  726. package/templates/Gjs/ui/iconGrid.d.ts +0 -172
  727. package/templates/Gjs/ui/iconGrid.js +0 -6
  728. package/templates/Gjs/ui/layout.d.ts +0 -311
  729. package/templates/Gjs/ui/layout.js +0 -6
  730. package/templates/Gjs/ui/main.d.ts +0 -215
  731. package/templates/Gjs/ui/main.js +0 -6
  732. package/templates/Gjs/ui/messageList.d.ts +0 -113
  733. package/templates/Gjs/ui/messageList.js +0 -6
  734. package/templates/Gjs/ui/messageTray.d.ts +0 -423
  735. package/templates/Gjs/ui/messageTray.js +0 -6
  736. package/templates/Gjs/ui/modalDialog.d.ts +0 -96
  737. package/templates/Gjs/ui/modalDialog.js +0 -6
  738. package/templates/Gjs/ui/mpris.d.ts +0 -78
  739. package/templates/Gjs/ui/mpris.js +0 -6
  740. package/templates/Gjs/ui/notificationDaemon.d.ts +0 -5
  741. package/templates/Gjs/ui/notificationDaemon.js +0 -6
  742. package/templates/Gjs/ui/panel.d.ts +0 -65
  743. package/templates/Gjs/ui/panel.js +0 -6
  744. package/templates/Gjs/ui/panelMenu.d.ts +0 -51
  745. package/templates/Gjs/ui/panelMenu.js +0 -6
  746. package/templates/Gjs/ui/popupMenu.d.ts +0 -228
  747. package/templates/Gjs/ui/popupMenu.js +0 -6
  748. package/templates/Gjs/ui/ripples.d.ts +0 -44
  749. package/templates/Gjs/ui/ripples.js +0 -6
  750. package/templates/Gjs/ui/search.d.ts +0 -158
  751. package/templates/Gjs/ui/search.js +0 -6
  752. package/templates/Gjs/ui/switcherPopup.d.ts +0 -107
  753. package/templates/Gjs/ui/switcherPopup.js +0 -6
  754. package/templates/Gjs/ui/userWidget.d.ts +0 -13
  755. package/templates/Gjs/ui/userWidget.js +0 -6
  756. package/templates/Granite-1.0.d.ts +0 -7
  757. package/templates/Granite-7.0.d.ts +0 -7
  758. package/templates/GstBase-0.10.d.ts +0 -5
  759. package/templates/RygelServer-2.6.d.ts +0 -3
  760. package/templates/node-gtk/GObject-2.0.d.ts +0 -57
  761. package/templates/node-gtk/index.d.ts +0 -40
  762. package/templates/node-gtk/index.js +0 -9
  763. package/templates/node-gtk/module.d.ts +0 -6
  764. package/templates/node-gtk/module.js +0 -17
@@ -1,996 +0,0 @@
1
- import TemplateProcessor from './template-processor.js';
2
- import { Logger } from './logger.js';
3
- import { generateIndent, removeNamespace, removeClassModule, girElementIsIntrospectable, typeIsOptional, } from './utils.js';
4
- import { NO_TSDATA, WARN_NOT_FOUND_DEPENDENCY_GIR_FILE, WARN_IGNORE_MULTIPLE_CALLBACKS, WARN_IGNORE_MULTIPLE_FUNC_DESC, } from './messages.js';
5
- export default class TypeDefinitionGenerator {
6
- config;
7
- log;
8
- constructor(config) {
9
- this.config = config;
10
- this.log = new Logger(config.environment, config.verbose, TypeDefinitionGenerator.name);
11
- }
12
- /**
13
- *
14
- * @param namespace E.g. 'Gtk'
15
- * @param packageName E.g. 'Gtk-3.0'
16
- * @param asExternType Currently only used for node type imports
17
- */
18
- generateModuleDependenciesImport(namespace, packageName, asExternType = false) {
19
- const def = [];
20
- const sas = !this.config.noNamespace && packageName !== 'Gjs' ? '' : '* as ';
21
- if (this.config.buildType === 'lib') {
22
- def.push(`import type ${sas}${namespace} from './${packageName}.js';`);
23
- }
24
- else if (this.config.buildType === 'types') {
25
- if (asExternType) {
26
- // def.push(`/// <reference types="${packageName}" />`)
27
- def.push(`import ${namespace} from "${packageName}.js"`);
28
- }
29
- else {
30
- def.push(`/// <reference path="${packageName}.d.ts" />`);
31
- def.push(`import type ${sas}${namespace} from './${packageName}.js';`);
32
- }
33
- }
34
- return def;
35
- }
36
- generateExport(type, name, definition, indentCount = 0) {
37
- const exp = !this.config.noNamespace || this.config.buildType === 'types' ? '' : 'export ';
38
- const indent = generateIndent(indentCount);
39
- if (!definition.startsWith(':')) {
40
- definition = ' ' + definition;
41
- }
42
- return `${indent}${exp}${type} ${name}${definition}`;
43
- }
44
- generateProperty(tsProp, onlyStatic, namespace, indentCount = 0) {
45
- if (!tsProp) {
46
- throw new Error('[generateProperty] Not all required properties set!');
47
- }
48
- const desc = [];
49
- const isStatic = tsProp.isStatic;
50
- if ((isStatic && !onlyStatic) || (!isStatic && onlyStatic)) {
51
- return desc;
52
- }
53
- if (!tsProp.hasUnresolvedConflict) {
54
- desc.push(...this.addGirDocComment(tsProp.doc, indentCount));
55
- }
56
- const indent = generateIndent(indentCount);
57
- const varDesc = this.generateVariable(tsProp, namespace, 0, false);
58
- const staticStr = isStatic ? 'static ' : '';
59
- const readonly = tsProp.readonly ? 'readonly ' : '';
60
- // temporary solution, will be solved differently later
61
- const commentOut = tsProp.hasUnresolvedConflict ? '// Has conflict: ' : '';
62
- desc.push(`${indent}${commentOut}${staticStr}${readonly}${varDesc}`);
63
- return desc;
64
- }
65
- generateProperties(tsProps, onlyStatic, namespace, comment, indentCount = 0) {
66
- const def = [];
67
- for (const tsProp of tsProps) {
68
- def.push(...this.generateProperty(tsProp, onlyStatic, namespace, indentCount));
69
- }
70
- if (def.length > 0) {
71
- def.unshift(...this.addInfoComment(comment, indentCount));
72
- }
73
- return def;
74
- }
75
- generateVariableCallbackType(tsType, namespace) {
76
- // The type of a callback is a functions definition
77
- let typeStr = 'any';
78
- const { callbacks } = tsType;
79
- if (!callbacks.length)
80
- return typeStr;
81
- if (callbacks.length > 1) {
82
- this.log.warn(WARN_IGNORE_MULTIPLE_CALLBACKS);
83
- }
84
- const girCallback = callbacks[0];
85
- if (!girCallback._tsData) {
86
- throw new Error(NO_TSDATA('generateVariableCallbackType'));
87
- }
88
- const funcDesc = this.generateFunction(girCallback._tsData, false, namespace, 0);
89
- if (girCallback._tsData && funcDesc?.length) {
90
- if (funcDesc.length > 1) {
91
- this.log.warn(WARN_IGNORE_MULTIPLE_FUNC_DESC);
92
- }
93
- typeStr = funcDesc[0];
94
- }
95
- return typeStr;
96
- }
97
- generateVariable(tsVar, namespace, indentCount = 0, allowCommentOut = true) {
98
- const indent = generateIndent(indentCount);
99
- const name = tsVar.name;
100
- const optional = typeIsOptional(tsVar.type);
101
- if (!name) {
102
- throw new Error('[generateVariable] "name" not set!');
103
- }
104
- const affix = optional ? '?' : '';
105
- const typeStr = this.generateTypes(tsVar.type, namespace);
106
- // temporary solution, will be solved differently later
107
- const commentOut = allowCommentOut && tsVar.hasUnresolvedConflict ? '// Has conflict: ' : '';
108
- return `${indent}${commentOut}${name}${affix}: ${typeStr}`;
109
- }
110
- generateTypes(tsTypes, namespace) {
111
- let def = '';
112
- for (const tsType of tsTypes) {
113
- const separator = tsType.leftSeparator || '|';
114
- const typeStr = this.generateType(tsType, namespace);
115
- if (!def) {
116
- def = typeStr;
117
- }
118
- else {
119
- def += ` ${separator} ${typeStr}`;
120
- }
121
- }
122
- return def;
123
- }
124
- generateGenericValues(tsType, namespace) {
125
- // We just use the generic values here
126
- const genericValues = tsType.generics.map((g) => removeNamespace(g.value || '', namespace)).filter((g) => !!g);
127
- const genericStr = tsType.generics.length ? `<${genericValues.join(', ')}>` : '';
128
- return genericStr;
129
- }
130
- generateType(tsType, namespace) {
131
- let typeName = removeNamespace(tsType.type, namespace);
132
- if (tsType.callbacks.length) {
133
- typeName = this.generateVariableCallbackType(tsType, namespace);
134
- }
135
- if (!typeName) {
136
- throw new Error('[generateVariable] "typeName" not set!');
137
- }
138
- let prefix = tsType.isArray ? '[]' : '';
139
- prefix += tsType.nullable ? ' | null' : '';
140
- // We just use the generic values here
141
- const genericStr = this.generateGenericValues(tsType, namespace);
142
- return `${typeName}${genericStr}${prefix}`;
143
- }
144
- /**
145
- * Generates signals from all properties of a base class
146
- * TODO: Build new `GirSignalElement`s in `gir-module.ts` instead of generate the strings directly
147
- * @param girClass
148
- * @param namespace
149
- * @param indentCount
150
- * @returns
151
- */
152
- generateClassPropertySignals(girClass, namespace, indentCount = 1) {
153
- const def = [];
154
- if (!girClass._tsData || !girClass._fullSymName || !girClass._module) {
155
- throw new Error(NO_TSDATA('generateClassPropertySignals'));
156
- }
157
- if (girClass._tsData?.isDerivedFromGObject) {
158
- if (girClass._tsData.propertySignalMethods.length > 0) {
159
- def.push(...this.addInfoComment(`Class property signals of ${girClass._module?.packageName}.${girClass._fullSymName}`, indentCount));
160
- for (const tsSignalMethod of girClass._tsData.propertySignalMethods) {
161
- if (!tsSignalMethod) {
162
- continue;
163
- }
164
- def.push(...this.generateFunction(tsSignalMethod, false, namespace, indentCount));
165
- }
166
- }
167
- }
168
- return def;
169
- }
170
- generateInParameters(inParams, instanceParameters, namespace) {
171
- const inParamsDef = [];
172
- // TODO: Should use of a constructor, and even of an instance, be discouraged?
173
- for (const instanceParameter of instanceParameters) {
174
- if (instanceParameter._tsData) {
175
- let { structFor } = instanceParameter._tsData;
176
- const { name } = instanceParameter._tsData;
177
- const gobject = namespace === 'GObject' || namespace === 'GLib' ? '' : 'GObject.';
178
- structFor = removeNamespace(structFor, namespace);
179
- const returnTypes = [structFor, 'Function', `${gobject}GType`];
180
- inParamsDef.push(`${name}: ${returnTypes.join(' | ')}`);
181
- }
182
- }
183
- for (const inParam of inParams) {
184
- if (inParam._tsData)
185
- inParamsDef.push(...this.generateParameter(inParam._tsData, namespace));
186
- }
187
- return inParamsDef;
188
- }
189
- generateSignals(girSignals, girClass, namespace, indentCount = 0) {
190
- const def = [];
191
- for (const girSignal of girSignals) {
192
- if (girSignal._tsData?.tsMethods?.length) {
193
- for (const tsSignalMethod of girSignal._tsData?.tsMethods) {
194
- if (!tsSignalMethod) {
195
- continue;
196
- }
197
- def.push(...this.generateFunction(tsSignalMethod, false, namespace, indentCount));
198
- }
199
- }
200
- }
201
- return def;
202
- }
203
- /**
204
- * Adds documentation comments
205
- * @see https://github.com/microsoft/tsdoc
206
- * @param lines
207
- * @param indentCount
208
- */
209
- addTSDocCommentLines(lines, indentCount = 0) {
210
- const def = [];
211
- const indent = generateIndent(indentCount);
212
- def.push(`${indent}/**`);
213
- for (const line of lines) {
214
- def.push(`${indent} * ${line}`);
215
- }
216
- def.push(`${indent} */`);
217
- return def;
218
- }
219
- /**
220
- * Adds the documentation as comments
221
- * @see https://github.com/microsoft/tsdoc
222
- * @param girDoc
223
- * @param indentCount
224
- * @param overwriteDoc
225
- * @returns
226
- */
227
- addGirDocComment(tsDoc, indentCount = 0, overwriteDoc) {
228
- const desc = [];
229
- const indent = generateIndent(indentCount);
230
- if (this.config.noComments) {
231
- return desc;
232
- }
233
- const text = overwriteDoc?.text || tsDoc?.text;
234
- const tags = overwriteDoc?.tags || tsDoc?.tags || [];
235
- if (text) {
236
- desc.push(`${indent}/**`);
237
- if (text) {
238
- const lines = text.split('\n');
239
- if (lines.length) {
240
- for (const line of lines) {
241
- desc.push(`${indent} * ${line}`);
242
- }
243
- }
244
- }
245
- for (const tag of tags) {
246
- if (tag.paramName) {
247
- desc.push(`${indent} * @${tag.tagName} ${tag.paramName} ${tag.text}`);
248
- }
249
- else {
250
- desc.push(`${indent} * @${tag.tagName} ${tag.text}`);
251
- }
252
- }
253
- desc.push(`${indent} */`);
254
- }
255
- return desc;
256
- }
257
- /**
258
- * Adds an info comment, is used for debugging the generated types
259
- * @param comment
260
- * @param indentCount
261
- * @returns
262
- */
263
- addInfoComment(comment, indentCount = 0) {
264
- const def = [];
265
- if (this.config.noDebugComments) {
266
- return def;
267
- }
268
- const indent = generateIndent(indentCount);
269
- if (comment) {
270
- def.push('');
271
- def.push(`${indent}// ${comment}`);
272
- def.push('');
273
- }
274
- return def;
275
- }
276
- /**
277
- * Adds an inline info comment, is used for debugging the generated types
278
- * @param comment
279
- * @param indentCount
280
- * @returns
281
- */
282
- addInlineInfoComment(comment, indentCount = 0) {
283
- const def = [];
284
- if (this.config.noDebugComments) {
285
- return def;
286
- }
287
- const indent = generateIndent(indentCount);
288
- if (comment) {
289
- def.push(`${indent}/* ${comment} */`);
290
- }
291
- return def;
292
- }
293
- mergeDescs(descs, comment, indentCount = 1) {
294
- const def = [];
295
- const indent = generateIndent(indentCount);
296
- for (const desc of descs) {
297
- def.push(`${indent}${desc}`);
298
- }
299
- if (def.length > 0) {
300
- def.unshift(...this.addInfoComment(comment, indentCount));
301
- }
302
- return def;
303
- }
304
- generateParameter(tsParam, namespace) {
305
- if (typeof tsParam?.name !== 'string') {
306
- throw new Error(NO_TSDATA('generateParameter'));
307
- }
308
- const types = tsParam.type;
309
- const name = tsParam.name;
310
- const typeStr = this.generateTypes(types, namespace);
311
- const optional = typeIsOptional(types) && !tsParam.isRest;
312
- const affix = optional ? '?' : '';
313
- const prefix = tsParam.isRest ? '...' : '';
314
- return [`${prefix}${name}${affix}: ${typeStr}`];
315
- }
316
- /**
317
- *
318
- * @param tsGenerics
319
- * @param isOut If this generic parameters are out do only generate the type parameter names
320
- * @returns
321
- */
322
- generateGenericParameters(tsGenerics, isOut = false) {
323
- const desc = [];
324
- if (!tsGenerics?.length) {
325
- return '';
326
- }
327
- for (const tsGeneric of tsGenerics) {
328
- if (!tsGeneric.name) {
329
- continue;
330
- }
331
- let genericStr = `${tsGeneric.name}`;
332
- if (!isOut && tsGeneric.extends) {
333
- genericStr += ` extends ${tsGeneric.extends}`;
334
- }
335
- if (!isOut && tsGeneric.value) {
336
- genericStr += ` = ${tsGeneric.value}`;
337
- }
338
- desc.push(genericStr);
339
- }
340
- return `<${desc.join(', ')}>`;
341
- }
342
- generateOutParameterReturn(girParam, namespace) {
343
- const desc = [];
344
- if (!girParam._tsData) {
345
- this.log.warn(NO_TSDATA('generateOutParameterReturn'));
346
- return desc;
347
- }
348
- const { name } = girParam._tsData;
349
- const typeStr = this.generateTypes(girParam._tsData.type, namespace);
350
- desc.push(`/* ${name} */ ${typeStr}`);
351
- return desc;
352
- }
353
- generateFunctionReturn(tsFunction, namespace) {
354
- if (tsFunction.name === 'constructor') {
355
- return '';
356
- }
357
- const overrideReturnType = tsFunction.overrideReturnType;
358
- const outParams = tsFunction.outParams;
359
- const retTypeIsVoid = tsFunction.retTypeIsVoid;
360
- const isPromise = tsFunction.isPromise || false;
361
- const typeStr = this.generateTypes(tsFunction.returnTypes, namespace);
362
- let desc = typeStr;
363
- if (overrideReturnType) {
364
- desc = removeNamespace(overrideReturnType, namespace);
365
- }
366
- // TODO: Transform the outParams to `tsFunction.returnTypes` to move this logic to `gir-module.ts`
367
- else if (outParams.length + (retTypeIsVoid ? 0 : 1) > 1) {
368
- const outParamsDesc = [];
369
- if (!retTypeIsVoid) {
370
- outParamsDesc.push(`/* returnType */ ${typeStr}`);
371
- }
372
- for (const outParam of outParams) {
373
- outParamsDesc.push(...this.generateOutParameterReturn(outParam, namespace));
374
- }
375
- desc = outParamsDesc.join(', ');
376
- desc = `[ ${desc} ]`;
377
- }
378
- else if (outParams.length === 1 && retTypeIsVoid) {
379
- desc = this.generateOutParameterReturn(outParams[0], namespace).join(' ');
380
- }
381
- if (isPromise) {
382
- desc = `globalThis.Promise<${desc}>`;
383
- }
384
- return desc;
385
- }
386
- generateFunction(tsFunction,
387
- /** If true only generate static functions otherwise generate only non static functions */
388
- onlyStatic, namespace, indentCount = 1, overloads = true) {
389
- const def = [];
390
- const indent = generateIndent(indentCount);
391
- if (!tsFunction) {
392
- this.log.warn(NO_TSDATA('generateFunction'));
393
- return def;
394
- }
395
- let { name } = tsFunction;
396
- const { isStatic } = tsFunction;
397
- const { isArrowType, isGlobal, inParams, instanceParameters } = tsFunction;
398
- if ((isStatic && !onlyStatic) || (!isStatic && onlyStatic)) {
399
- return def;
400
- }
401
- if (tsFunction.doc && !tsFunction.hasUnresolvedConflict)
402
- def.push(...this.addGirDocComment(tsFunction.doc, indentCount));
403
- const staticStr = isStatic && tsFunction.name !== 'constructor' ? 'static ' : '';
404
- const globalStr = isGlobal ? 'function ' : '';
405
- const genericStr = this.generateGenericParameters(tsFunction.generics);
406
- // temporary solution, will be solved differently later
407
- const commentOut = tsFunction.hasUnresolvedConflict ? '// Has conflict: ' : '';
408
- let exportStr = '';
409
- // `tsType === 'function'` are a global methods which can be exported
410
- if (isGlobal) {
411
- exportStr = !this.config.noNamespace || this.config.buildType === 'types' ? '' : 'export ';
412
- }
413
- const returnType = this.generateFunctionReturn(tsFunction, namespace);
414
- let retSep = '';
415
- if (returnType) {
416
- if (isArrowType) {
417
- name = '';
418
- retSep = ' =>';
419
- }
420
- else {
421
- retSep = ':';
422
- }
423
- }
424
- const inParamsDef = this.generateInParameters(inParams, instanceParameters, namespace);
425
- def.push(`${indent}${commentOut}${exportStr}${staticStr}${globalStr}${name}${genericStr}(${inParamsDef.join(', ')})${retSep} ${returnType}`);
426
- // Add overloaded methods
427
- if (overloads && tsFunction.overloads.length > 0) {
428
- def.push(...this.addInfoComment(`Overloads of ${name}`, indentCount));
429
- for (const func of tsFunction.overloads) {
430
- def.push(...this.generateFunction(func, onlyStatic, namespace, indentCount, false));
431
- }
432
- }
433
- return def;
434
- }
435
- generateFunctions(tsFunctions, onlyStatic, namespace, indentCount = 1, comment) {
436
- const def = [];
437
- for (const girFunction of tsFunctions) {
438
- def.push(...this.generateFunction(girFunction, onlyStatic, namespace, indentCount));
439
- }
440
- if (def.length > 0) {
441
- def.unshift(...this.addInfoComment(comment, indentCount));
442
- }
443
- return def;
444
- }
445
- generateCallbackInterface(tsCallback, namespace, indentCount = 0, classModuleName) {
446
- const def = [];
447
- if (!tsCallback?.tsCallbackInterface) {
448
- this.log.warn(NO_TSDATA('generateCallbackInterface'));
449
- return def;
450
- }
451
- def.push(...this.addGirDocComment(tsCallback.doc, indentCount, tsCallback.tsCallbackInterface.overwriteDoc));
452
- const indent = generateIndent(indentCount);
453
- const indentBody = generateIndent(indentCount + 1);
454
- const { inParams, instanceParameters } = tsCallback;
455
- const returnTypeStr = this.generateTypes(tsCallback.returnTypes, namespace);
456
- // Get name, remove namespace and remove module class name prefix
457
- let { name } = tsCallback.tsCallbackInterface;
458
- const { generics } = tsCallback.tsCallbackInterface;
459
- name = removeNamespace(name, namespace);
460
- if (classModuleName)
461
- name = removeClassModule(name, classModuleName);
462
- const genericParameters = this.generateGenericParameters(generics);
463
- const inParamsDef = this.generateInParameters(inParams, instanceParameters, namespace);
464
- const interfaceHead = `${name}${genericParameters}`;
465
- def.push(this.generateExport('interface', `${interfaceHead}`, '{', indentCount));
466
- def.push(`${indentBody}(${inParamsDef.join(', ')}): ${returnTypeStr}`);
467
- def.push(indent + '}');
468
- return def;
469
- }
470
- generateCallbackInterfaces(tsCallbacks, namespace, indentCount = 0, classModuleName, comment) {
471
- const def = [];
472
- for (const tsCallback of tsCallbacks) {
473
- def.push(...this.generateCallbackInterface(tsCallback, namespace, indentCount, classModuleName), '');
474
- }
475
- if (def.length > 0) {
476
- def.unshift(...this.addInfoComment(comment, indentCount));
477
- }
478
- return def;
479
- }
480
- generateEnumeration(girEnum, indentCount = 0) {
481
- const desc = [];
482
- if (!girElementIsIntrospectable(girEnum)) {
483
- return desc;
484
- }
485
- if (!girEnum._tsData) {
486
- this.log.warn(NO_TSDATA('generateEnumeration'));
487
- return desc;
488
- }
489
- desc.push(...this.addGirDocComment(girEnum._tsData.doc, indentCount));
490
- const { name } = girEnum._tsData;
491
- desc.push(this.generateExport('enum', name, '{', indentCount));
492
- if (girEnum.member) {
493
- for (const girEnumMember of girEnum.member) {
494
- if (!girEnumMember._tsData)
495
- continue;
496
- desc.push(...this.generateEnumerationMember(girEnumMember._tsData, indentCount + 1));
497
- }
498
- }
499
- desc.push('}');
500
- return desc;
501
- }
502
- generateEnumerationMember(tsMember, indentCount = 1) {
503
- const desc = [];
504
- if (!tsMember) {
505
- this.log.warn(NO_TSDATA('generateEnumerationMember'));
506
- return desc;
507
- }
508
- desc.push(...this.addGirDocComment(tsMember.doc, indentCount));
509
- const indent = generateIndent(indentCount);
510
- desc.push(`${indent}${tsMember.name},`);
511
- return desc;
512
- }
513
- generateConstant(tsConst, namespace, indentCount = 0) {
514
- const desc = [];
515
- if (!tsConst.hasUnresolvedConflict) {
516
- desc.push(...this.addGirDocComment(tsConst.doc, indentCount));
517
- }
518
- const indent = generateIndent(indentCount);
519
- const exp = !this.config.noNamespace || this.config.buildType === 'types' ? '' : 'export ';
520
- const varDesc = this.generateVariable(tsConst, namespace, 0);
521
- desc.push(`${indent}${exp}const ${varDesc}`);
522
- return desc;
523
- }
524
- generateAlias(girAlias, namespace, indentCount = 0) {
525
- const desc = [];
526
- if (!girElementIsIntrospectable(girAlias)) {
527
- return '';
528
- }
529
- if (!girAlias._tsData) {
530
- this.log.warn(NO_TSDATA('generateAlias'));
531
- return desc;
532
- }
533
- const indent = generateIndent(indentCount);
534
- const exp = !this.config.noNamespace || this.config.buildType === 'types' ? '' : 'export ';
535
- const type = removeNamespace(girAlias._tsData.type, namespace);
536
- desc.push(`${indent}${exp}type ${girAlias._tsData.name} = ${type}`);
537
- return desc;
538
- }
539
- generateConstructPropsInterface(girClass, namespace, indentCount = 0) {
540
- const def = [];
541
- if (!girClass._tsData || !girClass._fullSymName || !girClass._module) {
542
- throw new Error(NO_TSDATA('generateConstructPropsInterface'));
543
- }
544
- if (!girClass._tsData.isDerivedFromGObject) {
545
- return def;
546
- }
547
- const indent = generateIndent(indentCount);
548
- const exp = !this.config.noNamespace || this.config.buildType === 'types' ? '' : 'export ';
549
- let ext = '';
550
- if (girClass._tsData.inheritConstructPropInterfaceNames.length) {
551
- const constructPropInterfaceNames = girClass._tsData.inheritConstructPropInterfaceNames.map((n) => removeNamespace(n, namespace));
552
- ext = `extends ${constructPropInterfaceNames.join(', ')} `;
553
- }
554
- // Remove namespace and class module name
555
- const constructPropInterfaceName = removeClassModule(removeNamespace(girClass._tsData.constructPropInterfaceName, namespace), girClass._tsData.name);
556
- def.push(...this.addInfoComment('Constructor properties interface', indentCount));
557
- // START BODY
558
- {
559
- def.push(`${indent}${exp}interface ${constructPropInterfaceName} ${ext}{`);
560
- def.push(...this.generateProperties(girClass._tsData.constructProps.map((cp) => cp._tsData).filter((cp) => !!cp), false, namespace, `Own constructor properties of ${girClass._module.packageName}.${girClass._fullSymName}`, indentCount + 1));
561
- def.push(`${indent}}`, '');
562
- }
563
- // END BODY
564
- return def;
565
- }
566
- generateClassFields(girClass, onlyStatic, namespace, indentCount = 1) {
567
- const def = [];
568
- if (!girClass._tsData || !girClass._fullSymName || !girClass._module) {
569
- throw new Error(NO_TSDATA('generateClassFields'));
570
- }
571
- def.push(...this.generateProperties(girClass._tsData.fields.map((f) => f._tsData).filter((f) => !!f), onlyStatic, namespace, `Own fields of ${girClass._module.packageName}.${girClass._fullSymName}`, indentCount));
572
- return def;
573
- }
574
- generateClassProperties(girClass, onlyStatic, namespace, indentCount = 1) {
575
- const def = [];
576
- if (!girClass._tsData || !girClass._fullSymName || !girClass._module) {
577
- throw new Error(NO_TSDATA('generateClassProperties'));
578
- }
579
- def.push(...this.generateProperties(girClass._tsData.properties.map((p) => p._tsData).filter((p) => !!p), onlyStatic, namespace, `Own properties of ${girClass._module.packageName}.${girClass._fullSymName}`, indentCount));
580
- def.push(...this.generateProperties(girClass._tsData.conflictProperties, onlyStatic, namespace, `Conflicting properties`, indentCount));
581
- return def;
582
- }
583
- generateClassMethods(girClass, onlyStatic, namespace, indentCount = 1) {
584
- const def = [];
585
- if (!girClass._tsData || !girClass._fullSymName || !girClass._module) {
586
- throw new Error(NO_TSDATA('generateClassMethods'));
587
- }
588
- def.push(...this.generateFunctions(girClass._tsData.methods.map((girFunc) => girFunc._tsData).filter((tsFunc) => !!tsFunc), onlyStatic, namespace, indentCount, `Owm ${onlyStatic ? 'static ' : ''}methods of ${girClass._module.packageName}.${girClass._fullSymName}`));
589
- def.push(...this.generateFunctions(girClass._tsData.conflictMethods, onlyStatic, namespace, indentCount, `Conflicting ${onlyStatic ? 'static ' : ''}methods`));
590
- return def;
591
- }
592
- generateClassConstructors(girClass, namespace, indentCount = 1) {
593
- const def = [];
594
- if (!girClass._tsData || !girClass._fullSymName || !girClass._module) {
595
- throw new Error(NO_TSDATA('generateClassConstructors'));
596
- }
597
- // Constructors
598
- def.push(...this.generateFunctions(girClass._tsData.constructors
599
- .map((girFunc) => girFunc._tsData)
600
- .filter((tsFunc) => !!tsFunc), true, namespace, indentCount));
601
- // _init method
602
- def.push(...this.generateFunctions(girClass._tsData.constructors
603
- .map((girFunc) => girFunc._tsData)
604
- .filter((tsFunc) => !!tsFunc), false, namespace, indentCount));
605
- // Pseudo constructors
606
- def.push(...this.generateFunctions(girClass._tsData.staticFunctions
607
- .map((girFunc) => girFunc._tsData)
608
- .filter((tsFunc) => !!tsFunc), true, namespace, indentCount));
609
- if (def.length) {
610
- def.unshift(...this.addInfoComment(`Constructors of ${girClass._module.packageName}.${girClass._fullSymName}`, indentCount));
611
- }
612
- return def;
613
- }
614
- /**
615
- * Instance methods, vfunc_ prefix
616
- * @param girClass
617
- */
618
- generateClassVirtualMethods(girClass, namespace, indentCount = 1) {
619
- const def = [];
620
- if (!girClass._tsData || !girClass._fullSymName || !girClass._module) {
621
- throw new Error(NO_TSDATA('generateClassVirtualMethods'));
622
- }
623
- def.push(...this.generateFunctions(girClass._tsData.virtualMethods
624
- .map((girFunc) => girFunc._tsData)
625
- .filter((tsFunc) => !!tsFunc), false, namespace, indentCount, `Own virtual methods of ${girClass._module.packageName}.${girClass._fullSymName}`));
626
- return def;
627
- }
628
- generateClassSignalInterfaces(girClass, namespace, indentCount = 0) {
629
- const def = [];
630
- if (!girClass._tsData) {
631
- throw new Error(NO_TSDATA('generateClassSignalInterface'));
632
- }
633
- const tsSignals = girClass._tsData.signals
634
- .map((signal) => signal._tsData)
635
- .filter((signal) => !!signal);
636
- def.push(...this.generateCallbackInterfaces(tsSignals, namespace, indentCount, girClass._tsData.name, 'Signal callback interfaces'));
637
- return def;
638
- }
639
- generateClassSignals(girClass, namespace) {
640
- const def = [];
641
- if (!girClass._tsData || !girClass._fullSymName || !girClass._module) {
642
- throw new Error(NO_TSDATA('generateClassSignals'));
643
- }
644
- const signalDescs = this.generateSignals(girClass._tsData.signals, girClass, namespace, 0);
645
- def.push(...this.mergeDescs(signalDescs, `Own signals of ${girClass._module.packageName}.${girClass._fullSymName}`, 1));
646
- return def;
647
- }
648
- generateClassModules(girClass, namespace, indentCount = 0) {
649
- const def = [];
650
- const bodyDef = [];
651
- if (!girClass._tsData)
652
- return def;
653
- const indent = generateIndent(indentCount);
654
- const exp = !this.config.noNamespace || this.config.buildType === 'types' ? '' : 'export ';
655
- // Signal interfaces
656
- bodyDef.push(...this.generateClassSignalInterfaces(girClass, namespace, indentCount + 1));
657
- // Properties interface for construction
658
- bodyDef.push(...this.generateConstructPropsInterface(girClass, namespace, indentCount + 1));
659
- if (!bodyDef.length) {
660
- return [];
661
- }
662
- // START BODY
663
- {
664
- def.push(`${indent}${exp}module ${girClass._tsData.name} {`);
665
- // Properties interface for construction
666
- def.push(...bodyDef);
667
- def.push(`${indent}}`, '');
668
- }
669
- // END BODY
670
- return def;
671
- }
672
- /**
673
- * In Typescript, interfaces and classes can have the same name,
674
- * so we use this to generate interfaces with the same name to implement multiple inheritance
675
- * @param girClass
676
- * @param namespace
677
- */
678
- generateImplementationInterface(girClass, namespace) {
679
- const def = [];
680
- if (!girClass._tsData)
681
- return def;
682
- const genericParameters = this.generateGenericParameters(girClass._tsData.generics);
683
- const implementationNames = girClass._tsData.parents
684
- .filter((implementation) => implementation.type !== 'parent')
685
- .map((implementation) => implementation.localParentName);
686
- const ext = implementationNames.length ? ` extends ${implementationNames.join(', ')}` : '';
687
- const interfaceHead = `${girClass._tsData.name}${genericParameters}${ext}`;
688
- // START INTERFACE
689
- {
690
- def.push(this.generateExport('interface', interfaceHead, '{'));
691
- // START BODY
692
- {
693
- // Properties
694
- def.push(...this.generateClassProperties(girClass, false, namespace));
695
- // Fields
696
- def.push(...this.generateClassFields(girClass, false, namespace));
697
- // Methods
698
- def.push(...this.generateClassMethods(girClass, false, namespace));
699
- // Virtual methods
700
- def.push(...this.generateClassVirtualMethods(girClass, namespace));
701
- // Signals
702
- def.push(...this.generateClassSignals(girClass, namespace));
703
- // TODO: Generate `GirSignalElement`s instead of generate the signal definition strings directly
704
- def.push(...this.generateClassPropertySignals(girClass, namespace));
705
- }
706
- // END BODY
707
- // END INTERFACE
708
- def.push('}');
709
- def.push('');
710
- }
711
- return def;
712
- }
713
- /**
714
- * Represents a record, GObject class or interface as a Typescript class
715
- * @param girClass
716
- * @param namespace
717
- */
718
- generateClass(girClass, namespace) {
719
- const def = [];
720
- if (!girClass._tsData)
721
- return def;
722
- def.push(...this.generateClassModules(girClass, namespace));
723
- def.push(...this.generateImplementationInterface(girClass, namespace));
724
- def.push(...this.addGirDocComment(girClass._tsData.doc, 0));
725
- const genericParameters = this.generateGenericParameters(girClass._tsData.generics);
726
- const parentName = girClass._tsData.parents.find((parent) => parent.type === 'parent')?.localParentName;
727
- const ext = parentName ? ` extends ${parentName}` : '';
728
- const classHead = `${girClass._tsData.name}${genericParameters}${ext}`;
729
- // START CLASS
730
- {
731
- if (girClass._tsData.isAbstract) {
732
- def.push(this.generateExport('abstract class', classHead, '{'));
733
- }
734
- else {
735
- def.push(this.generateExport('class', classHead, '{'));
736
- }
737
- // START BODY
738
- {
739
- // Static Properties
740
- def.push(...this.generateClassProperties(girClass, true, namespace));
741
- // Static Fields
742
- def.push(...this.generateClassFields(girClass, true, namespace));
743
- // Constructors
744
- def.push(...this.generateClassConstructors(girClass, namespace));
745
- // Static Methods
746
- def.push(...this.generateClassMethods(girClass, true, namespace));
747
- }
748
- // END BODY
749
- // END CLASS
750
- def.push('}');
751
- def.push('');
752
- }
753
- return def;
754
- }
755
- async exportModuleJS(moduleTemplateProcessor, girModule) {
756
- const template = 'module.js';
757
- if (this.config.outdir) {
758
- await moduleTemplateProcessor.create(template, this.config.outdir, `${girModule.packageName}.js`);
759
- }
760
- else {
761
- const moduleContent = moduleTemplateProcessor.load(template);
762
- this.log.log(moduleContent);
763
- }
764
- }
765
- async exportModuleTS(moduleTemplateProcessor, girModule) {
766
- const template = 'module.d.ts';
767
- const out = [];
768
- out.push(...this.addTSDocCommentLines([girModule.packageName]));
769
- out.push('');
770
- // Module dependencies as type references or imports
771
- if (this.config.environment === 'gjs') {
772
- out.push(...this.generateModuleDependenciesImport('Gjs', 'Gjs', false));
773
- }
774
- for (const dependency of girModule.transitiveDependencies) {
775
- // Don't reference yourself as a dependency
776
- if (girModule.packageName !== dependency.packageName) {
777
- if (dependency.exists) {
778
- out.push(...this.generateModuleDependenciesImport(dependency.namespace, dependency.packageName, false));
779
- }
780
- else {
781
- out.push(`// WARN: Dependency not found: '${dependency.packageName}'`);
782
- this.log.warn(WARN_NOT_FOUND_DEPENDENCY_GIR_FILE(dependency.filename));
783
- }
784
- }
785
- }
786
- // START Namespace
787
- {
788
- if (this.config.buildType === 'types') {
789
- out.push('');
790
- out.push(`declare namespace ${girModule.namespace} {`);
791
- }
792
- else if (!this.config.noNamespace) {
793
- out.push('');
794
- out.push(`export namespace ${girModule.namespace} {`);
795
- }
796
- // Newline
797
- out.push('');
798
- if (girModule.ns.enumeration)
799
- for (const girEnum of girModule.ns.enumeration)
800
- out.push(...this.generateEnumeration(girEnum));
801
- if (girModule.ns.bitfield)
802
- for (const girBitfield of girModule.ns.bitfield)
803
- out.push(...this.generateEnumeration(girBitfield));
804
- if (girModule.ns.constant)
805
- for (const girConst of girModule.ns.constant) {
806
- if (!girConst._tsData)
807
- continue;
808
- out.push(...this.generateConstant(girConst._tsData, girModule.namespace, 0));
809
- }
810
- if (girModule.ns.function)
811
- for (const girFunc of girModule.ns.function) {
812
- if (!girFunc._tsData) {
813
- // this.log.warn(NO_TSDATA('exportModuleTS functions'))
814
- continue;
815
- }
816
- out.push(...this.generateFunction(girFunc._tsData, false, girModule.namespace, 0));
817
- }
818
- if (girModule.ns.callback)
819
- for (const girCallback of girModule.ns.callback) {
820
- if (!girCallback._tsData)
821
- continue;
822
- out.push(...this.generateCallbackInterface(girCallback._tsData, girModule.namespace));
823
- }
824
- if (girModule.ns.interface)
825
- for (const girIface of girModule.ns.interface)
826
- if (girIface._module) {
827
- out.push(...this.generateClass(girIface, girIface._module.namespace));
828
- }
829
- // Extra interfaces if a template with the module name (e.g. '../templates/GObject-2.0.d.ts') is found
830
- // E.g. used for GObject-2.0 to help define GObject classes in js;
831
- // these aren't part of gi.
832
- if (moduleTemplateProcessor.exists(`${girModule.packageName}.d.ts`)) {
833
- const templatePatches = await moduleTemplateProcessor.load(`${girModule.packageName}.d.ts`);
834
- out.push(templatePatches);
835
- }
836
- if (girModule.ns.class)
837
- for (const gitClass of girModule.ns.class)
838
- if (gitClass._module) {
839
- out.push(...this.generateClass(gitClass, gitClass._module.namespace));
840
- }
841
- if (girModule.ns.record)
842
- for (const girRecord of girModule.ns.record)
843
- if (girRecord._module) {
844
- out.push(...this.generateClass(girRecord, girRecord._module.namespace));
845
- }
846
- if (girModule.ns.union)
847
- for (const girUnion of girModule.ns.union)
848
- if (girUnion._module) {
849
- out.push(...this.generateClass(girUnion, girUnion._module.namespace));
850
- }
851
- if (girModule.ns.alias)
852
- // GType is not a number in GJS
853
- for (const girAlias of girModule.ns.alias)
854
- if (girModule.packageName !== 'GObject-2.0' || girAlias.$.name !== 'Type')
855
- out.push(...this.generateAlias(girAlias, girModule.namespace, 1));
856
- if (this.config.environment === 'gjs') {
857
- // Properties added to every GIRepositoryNamespace
858
- // https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L186-190
859
- out.push(...this.generateConstant({
860
- doc: {
861
- text: 'Name of the imported GIR library',
862
- tags: [
863
- {
864
- text: 'https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188',
865
- tagName: 'see',
866
- paramName: '',
867
- },
868
- ],
869
- },
870
- name: '__name__',
871
- type: [
872
- {
873
- type: 'string',
874
- optional: false,
875
- nullable: false,
876
- callbacks: [],
877
- generics: [],
878
- isArray: false,
879
- isFunction: false,
880
- isCallback: false,
881
- },
882
- ],
883
- isInjected: false,
884
- tsTypeName: 'constant',
885
- girTypeName: 'constant',
886
- }, girModule.namespace, 0), ...this.generateConstant({
887
- doc: {
888
- text: 'Version of the imported GIR library',
889
- tags: [
890
- {
891
- text: 'https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189',
892
- tagName: 'see',
893
- paramName: '',
894
- },
895
- ],
896
- },
897
- name: '__version__',
898
- type: [
899
- {
900
- type: 'string',
901
- optional: false,
902
- nullable: false,
903
- callbacks: [],
904
- generics: [],
905
- isArray: false,
906
- isFunction: false,
907
- isCallback: false,
908
- },
909
- ],
910
- isInjected: false,
911
- tsTypeName: 'constant',
912
- girTypeName: 'constant',
913
- }, girModule.namespace, 0));
914
- }
915
- }
916
- // END Namespace
917
- if (!this.config.noNamespace) {
918
- out.push(`}`);
919
- }
920
- if (!this.config.noNamespace) {
921
- out.push(`export default ${girModule.namespace};`);
922
- }
923
- const outResult = out.join('\n'); // End of file
924
- if (this.config.outdir) {
925
- await moduleTemplateProcessor.create(template, this.config.outdir, `${girModule.packageName}.d.ts`, outResult);
926
- }
927
- else {
928
- const moduleContent = await moduleTemplateProcessor.load(template);
929
- this.log.log(moduleContent + '\n' + outResult);
930
- }
931
- }
932
- async exportModule(girModule) {
933
- const moduleTemplateProcessor = new TemplateProcessor({
934
- name: girModule.namespace,
935
- namespace: girModule.namespace,
936
- version: girModule.version,
937
- importName: girModule.importName,
938
- }, girModule.packageName, this.config);
939
- await this.exportModuleTS(moduleTemplateProcessor, girModule);
940
- if (this.config.buildType === 'lib') {
941
- await this.exportModuleJS(moduleTemplateProcessor, girModule);
942
- }
943
- }
944
- async exportGjs(girModules, girModulesGrouped) {
945
- if (!this.config.outdir)
946
- return;
947
- const templateProcessor = new TemplateProcessor({ girModules: girModules, girModulesGrouped, typeDir: this.config.outdir + '/Gjs' }, 'gjs', this.config);
948
- // Types
949
- await templateProcessor.create('Gjs.d.ts', this.config.outdir, 'Gjs.d.ts');
950
- await templateProcessor.create('index.d.ts', this.config.outdir, 'index.d.ts');
951
- if (this.config.gnomeShellTypes) {
952
- await templateProcessor.create('GnomeShell.d.ts', this.config.outdir, 'GnomeShell.d.ts');
953
- await templateProcessor.createAll('.d.ts', 'misc', this.config.outdir, 'misc');
954
- await templateProcessor.createAll('.d.ts', 'ui', this.config.outdir, 'ui');
955
- await templateProcessor.createAll('.d.ts', 'ui/components', this.config.outdir, 'ui/components');
956
- }
957
- // Lib
958
- if (this.config.buildType === 'lib') {
959
- await templateProcessor.create('Gjs.js', this.config.outdir, 'Gjs.js');
960
- await templateProcessor.create('index.js', this.config.outdir, 'index.js');
961
- if (this.config.gnomeShellTypes) {
962
- await templateProcessor.create('GnomeShell.js', this.config.outdir, 'GnomeShell.js');
963
- await templateProcessor.createAll('.js', 'misc', this.config.outdir, 'misc');
964
- await templateProcessor.createAll('.js', 'ui', this.config.outdir, 'ui');
965
- await templateProcessor.createAll('.js', 'ui/components', this.config.outdir, 'ui/components');
966
- }
967
- }
968
- // Alias
969
- if (this.config.generateAlias) {
970
- await templateProcessor.create('tsconfig.alias.json', './', 'tsconfig.alias.json', '', false);
971
- }
972
- }
973
- async exportNodeGtk(girModules, girModulesGrouped) {
974
- if (!this.config.outdir)
975
- return;
976
- const templateProcessor = new TemplateProcessor({ girModules, girModulesGrouped }, 'node', this.config);
977
- await templateProcessor.create('index.d.ts', this.config.outdir, 'index.d.ts');
978
- if (this.config.buildType === 'lib') {
979
- await templateProcessor.create('index.js', this.config.outdir, 'index.js');
980
- }
981
- }
982
- async start(girModules, girModulesGrouped, inheritanceTable) {
983
- for (const girModule of girModules) {
984
- await this.exportModule(girModule);
985
- }
986
- if (this.config.environment === 'node' && girModulesGrouped) {
987
- // node-gtk internal stuff
988
- await this.exportNodeGtk(girModules, girModulesGrouped);
989
- }
990
- if (this.config.environment === 'gjs' && girModulesGrouped && inheritanceTable) {
991
- // GJS internal stuff
992
- await this.exportGjs(girModules, girModulesGrouped);
993
- }
994
- }
995
- }
996
- //# sourceMappingURL=type-definition-generator.js.map