@ts-for-gir/lib 4.0.0-beta.4 → 4.0.0-beta.40

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 (541) hide show
  1. package/README.md +13 -1
  2. package/package.json +17 -31
  3. package/src/constants.ts +152 -0
  4. package/src/dependency-manager.ts +445 -0
  5. package/src/formatters/default.ts +7 -0
  6. package/src/formatters/formatter.ts +3 -0
  7. package/src/formatters/index.ts +3 -0
  8. package/src/formatters/json.ts +7 -0
  9. package/src/generators/generator.ts +65 -0
  10. package/src/generators/index.ts +2 -0
  11. package/src/generics/clutter.ts +80 -0
  12. package/src/generics/generify.ts +101 -0
  13. package/src/generics/gio.ts +91 -0
  14. package/src/generics/glib.ts +31 -0
  15. package/src/generics/gtk.ts +99 -0
  16. package/src/generics/meta.ts +50 -0
  17. package/src/generics/st.ts +206 -0
  18. package/src/generics/visitor.ts +484 -0
  19. package/src/gir/alias.ts +73 -0
  20. package/src/gir/callback.ts +79 -0
  21. package/src/gir/const.ts +73 -0
  22. package/src/gir/constructor.ts +91 -0
  23. package/src/gir/data.ts +12 -0
  24. package/src/gir/dependency-resolver.ts +81 -0
  25. package/src/gir/direct-allocation-constructor.ts +65 -0
  26. package/src/gir/enum-member.ts +51 -0
  27. package/src/gir/enum.ts +129 -0
  28. package/src/gir/error.ts +89 -0
  29. package/src/gir/function.ts +296 -0
  30. package/src/gir/generics.ts +66 -0
  31. package/src/gir/gir-complex-record.ts +7 -0
  32. package/src/gir/index.ts +25 -0
  33. package/src/gir/introspected-base.ts +104 -0
  34. package/src/gir/introspected-class-member.ts +15 -0
  35. package/src/gir/introspected-classes.ts +1521 -0
  36. package/src/gir/introspected-namespace-member.ts +24 -0
  37. package/src/gir/namespace.ts +76 -0
  38. package/src/gir/parameter.ts +199 -0
  39. package/src/gir/promisify.ts +209 -0
  40. package/src/gir/property.ts +203 -0
  41. package/src/gir/record.ts +488 -0
  42. package/src/gir/registry.ts +184 -0
  43. package/src/gir/signal.ts +246 -0
  44. package/src/gir-module.ts +759 -0
  45. package/src/gir.ts +893 -0
  46. package/src/index.ts +16 -0
  47. package/src/injections/gee08.ts +89 -0
  48. package/src/injections/gee1.ts +35 -0
  49. package/src/injections/gio.ts +707 -0
  50. package/src/injections/glib.ts +275 -0
  51. package/src/injections/gobject.ts +901 -0
  52. package/src/injections/gtk4.ts +23 -0
  53. package/src/injections/inject.ts +49 -0
  54. package/src/injections/shell.ts +49 -0
  55. package/src/injections/tracker1.ts +42 -0
  56. package/src/library-version.ts +50 -0
  57. package/src/logger.ts +104 -0
  58. package/src/messages.ts +57 -0
  59. package/src/templates/index.ts +1 -0
  60. package/src/templates/template-engine.ts +178 -0
  61. package/src/types/answer-version.ts +4 -0
  62. package/src/types/any-introspected-type.ts +5 -0
  63. package/src/types/class-function-types.ts +57 -0
  64. package/src/types/class-member.ts +5 -0
  65. package/src/types/class-parent.ts +14 -0
  66. package/src/types/class.ts +43 -0
  67. package/src/types/config-flags.ts +5 -0
  68. package/src/types/construct-name.ts +13 -0
  69. package/src/types/dependency-map.ts +4 -0
  70. package/src/types/dependency.ts +49 -0
  71. package/src/types/file-info.ts +14 -0
  72. package/src/types/format.ts +1 -0
  73. package/src/types/generator-constructor.ts +7 -0
  74. package/src/types/generics-config.ts +90 -0
  75. package/src/types/gir-any-element.ts +35 -0
  76. package/src/types/gir-module-interface.ts +22 -0
  77. package/src/types/gir-module-resolved.ts +32 -0
  78. package/src/types/gir-type-name.ts +20 -0
  79. package/src/types/index.ts +92 -0
  80. package/{lib/types/inheritance-table.d.ts → src/types/inheritance-table.ts} +1 -1
  81. package/src/types/introspected.ts +18 -0
  82. package/src/types/local-name-check.ts +5 -0
  83. package/src/types/local-name-type.ts +1 -0
  84. package/src/types/local-name.ts +8 -0
  85. package/src/types/local-names.ts +5 -0
  86. package/src/types/metadata.ts +6 -0
  87. package/src/types/ns-loader.ts +6 -0
  88. package/src/types/options-base.ts +8 -0
  89. package/src/types/options-generation.ts +53 -0
  90. package/src/types/options-load.ts +6 -0
  91. package/src/types/options-transform.ts +5 -0
  92. package/src/types/output-format.ts +1 -0
  93. package/src/types/package-data-parsed.ts +28 -0
  94. package/src/types/package-data.ts +24 -0
  95. package/src/types/package-section-parsed.ts +9 -0
  96. package/src/types/parsed-gir.ts +5 -0
  97. package/src/types/parsed-package-data.ts +7 -0
  98. package/src/types/property-case.ts +1 -0
  99. package/src/types/resolve-type.ts +4 -0
  100. package/src/types/template-data.ts +8 -0
  101. package/src/types/template-options.ts +33 -0
  102. package/src/types/transformation-case.ts +9 -0
  103. package/src/types/transformations.ts +5 -0
  104. package/{lib/types/ts-doc-tag.d.ts → src/types/ts-doc-tag.ts} +14 -12
  105. package/src/types/ts-doc.ts +18 -0
  106. package/{lib/types/type-gir-alias.d.ts → src/types/type-gir-alias.ts} +1 -1
  107. package/src/types/type-gir-class.ts +2 -0
  108. package/src/types/type-gir-element.ts +25 -0
  109. package/src/types/type-gir-enumeration-member.ts +2 -0
  110. package/{lib/types/type-gir-enumeration.d.ts → src/types/type-gir-enumeration.ts} +1 -1
  111. package/src/types/type-gir-function.ts +8 -0
  112. package/{lib/types/type-gir-interface.d.ts → src/types/type-gir-interface.ts} +1 -1
  113. package/src/types/type-gir-method.ts +2 -0
  114. package/src/types/type-gir-parameter.ts +1 -0
  115. package/{lib/types/type-gir-property.d.ts → src/types/type-gir-property.ts} +1 -1
  116. package/src/types/type-gir-variable.ts +1 -0
  117. package/src/types/type-ts-element.ts +13 -0
  118. package/{lib/types/type-ts-enumeration-member.d.ts → src/types/type-ts-enumeration-member.ts} +1 -1
  119. package/src/types/type-ts-function.ts +1 -0
  120. package/src/types/type-ts-property.ts +1 -0
  121. package/src/types/user-config-load-result.ts +6 -0
  122. package/src/types/user-config.ts +58 -0
  123. package/src/util.ts +84 -0
  124. package/src/utils/conflicts/conflict-resolver.ts +122 -0
  125. package/src/utils/conflicts/function-conflict-detector.ts +139 -0
  126. package/src/utils/conflicts/index.ts +2 -0
  127. package/src/utils/conflicts.ts +627 -0
  128. package/src/utils/documentation.ts +61 -0
  129. package/src/utils/files.ts +71 -0
  130. package/src/utils/function-type-guards.ts +61 -0
  131. package/src/utils/generation.ts +69 -0
  132. package/src/utils/gir-parsing.ts +243 -0
  133. package/src/utils/girs.ts +113 -0
  134. package/src/utils/index.ts +14 -0
  135. package/src/utils/naming.ts +188 -0
  136. package/src/utils/numbers.ts +8 -0
  137. package/src/utils/objects.ts +129 -0
  138. package/src/utils/path.ts +7 -0
  139. package/src/utils/registry.ts +5 -0
  140. package/src/utils/strings.ts +134 -0
  141. package/src/utils/type-resolution.ts +116 -0
  142. package/src/utils/types.ts +247 -0
  143. package/src/validators/class.ts +324 -0
  144. package/src/validators/function-parameters.ts +52 -0
  145. package/src/validators/interface.ts +20 -0
  146. package/src/visitor.ts +58 -0
  147. package/lib/constants.d.ts +0 -26
  148. package/lib/constants.js +0 -28
  149. package/lib/constants.js.map +0 -1
  150. package/lib/dependency-manager.d.ts +0 -183
  151. package/lib/dependency-manager.js +0 -401
  152. package/lib/dependency-manager.js.map +0 -1
  153. package/lib/formatters/default.d.ts +0 -4
  154. package/lib/formatters/default.js +0 -7
  155. package/lib/formatters/default.js.map +0 -1
  156. package/lib/formatters/formatter.d.ts +0 -3
  157. package/lib/formatters/formatter.js +0 -3
  158. package/lib/formatters/formatter.js.map +0 -1
  159. package/lib/formatters/json.d.ts +0 -4
  160. package/lib/formatters/json.js +0 -7
  161. package/lib/formatters/json.js.map +0 -1
  162. package/lib/generators/dts/glib.d.ts +0 -2
  163. package/lib/generators/dts/glib.js +0 -514
  164. package/lib/generators/dts/glib.js.map +0 -1
  165. package/lib/generators/dts/gobject.d.ts +0 -2
  166. package/lib/generators/dts/gobject.js +0 -117
  167. package/lib/generators/dts/gobject.js.map +0 -1
  168. package/lib/generators/dts-inline.d.ts +0 -8
  169. package/lib/generators/dts-inline.js +0 -59
  170. package/lib/generators/dts-inline.js.map +0 -1
  171. package/lib/generators/dts-modules.d.ts +0 -8
  172. package/lib/generators/dts-modules.js +0 -100
  173. package/lib/generators/dts-modules.js.map +0 -1
  174. package/lib/generators/dts.d.ts +0 -45
  175. package/lib/generators/dts.js +0 -682
  176. package/lib/generators/dts.js.map +0 -1
  177. package/lib/generators/generator.d.ts +0 -45
  178. package/lib/generators/generator.js +0 -9
  179. package/lib/generators/generator.js.map +0 -1
  180. package/lib/generators/index.d.ts +0 -5
  181. package/lib/generators/index.js +0 -6
  182. package/lib/generators/index.js.map +0 -1
  183. package/lib/generators/json.d.ts +0 -256
  184. package/lib/generators/json.js +0 -869
  185. package/lib/generators/json.js.map +0 -1
  186. package/lib/generics/clutter.d.ts +0 -26
  187. package/lib/generics/clutter.js +0 -49
  188. package/lib/generics/clutter.js.map +0 -1
  189. package/lib/generics/generify.d.ts +0 -2
  190. package/lib/generics/generify.js +0 -39
  191. package/lib/generics/generify.js.map +0 -1
  192. package/lib/generics/gio.d.ts +0 -7
  193. package/lib/generics/gio.js +0 -51
  194. package/lib/generics/gio.js.map +0 -1
  195. package/lib/generics/glib.d.ts +0 -7
  196. package/lib/generics/glib.js +0 -18
  197. package/lib/generics/glib.js.map +0 -1
  198. package/lib/generics/meta.d.ts +0 -21
  199. package/lib/generics/meta.js +0 -26
  200. package/lib/generics/meta.js.map +0 -1
  201. package/lib/generics/st.d.ts +0 -16
  202. package/lib/generics/st.js +0 -92
  203. package/lib/generics/st.js.map +0 -1
  204. package/lib/generics/visitor.d.ts +0 -20
  205. package/lib/generics/visitor.js +0 -255
  206. package/lib/generics/visitor.js.map +0 -1
  207. package/lib/gir/alias.d.ts +0 -24
  208. package/lib/gir/alias.js +0 -43
  209. package/lib/gir/alias.js.map +0 -1
  210. package/lib/gir/base.d.ts +0 -62
  211. package/lib/gir/base.js +0 -95
  212. package/lib/gir/base.js.map +0 -1
  213. package/lib/gir/class.d.ts +0 -189
  214. package/lib/gir/class.js +0 -1131
  215. package/lib/gir/class.js.map +0 -1
  216. package/lib/gir/const.d.ts +0 -25
  217. package/lib/gir/const.js +0 -43
  218. package/lib/gir/const.js.map +0 -1
  219. package/lib/gir/enum.d.ts +0 -45
  220. package/lib/gir/enum.js +0 -164
  221. package/lib/gir/enum.js.map +0 -1
  222. package/lib/gir/function.d.ts +0 -199
  223. package/lib/gir/function.js +0 -683
  224. package/lib/gir/function.js.map +0 -1
  225. package/lib/gir/generics.d.ts +0 -5
  226. package/lib/gir/generics.js +0 -57
  227. package/lib/gir/generics.js.map +0 -1
  228. package/lib/gir/namespace.d.ts +0 -21
  229. package/lib/gir/namespace.js +0 -57
  230. package/lib/gir/namespace.js.map +0 -1
  231. package/lib/gir/nodes.d.ts +0 -11
  232. package/lib/gir/nodes.js +0 -12
  233. package/lib/gir/nodes.js.map +0 -1
  234. package/lib/gir/property.d.ts +0 -60
  235. package/lib/gir/property.js +0 -128
  236. package/lib/gir/property.js.map +0 -1
  237. package/lib/gir/registry.d.ts +0 -51
  238. package/lib/gir/registry.js +0 -144
  239. package/lib/gir/registry.js.map +0 -1
  240. package/lib/gir/signal.d.ts +0 -33
  241. package/lib/gir/signal.js +0 -165
  242. package/lib/gir/signal.js.map +0 -1
  243. package/lib/gir/util.d.ts +0 -49
  244. package/lib/gir/util.js +0 -559
  245. package/lib/gir/util.js.map +0 -1
  246. package/lib/gir-module.d.ts +0 -112
  247. package/lib/gir-module.js +0 -570
  248. package/lib/gir-module.js.map +0 -1
  249. package/lib/gir.d.ts +0 -253
  250. package/lib/gir.js +0 -642
  251. package/lib/gir.js.map +0 -1
  252. package/lib/index.d.ts +0 -14
  253. package/lib/index.js +0 -17
  254. package/lib/index.js.map +0 -1
  255. package/lib/injections/gee08.d.ts +0 -7
  256. package/lib/injections/gee08.js +0 -68
  257. package/lib/injections/gee08.js.map +0 -1
  258. package/lib/injections/gee1.d.ts +0 -7
  259. package/lib/injections/gee1.js +0 -28
  260. package/lib/injections/gee1.js.map +0 -1
  261. package/lib/injections/gio.d.ts +0 -7
  262. package/lib/injections/gio.js +0 -431
  263. package/lib/injections/gio.js.map +0 -1
  264. package/lib/injections/glib.d.ts +0 -7
  265. package/lib/injections/glib.js +0 -204
  266. package/lib/injections/glib.js.map +0 -1
  267. package/lib/injections/gobject.d.ts +0 -7
  268. package/lib/injections/gobject.js +0 -479
  269. package/lib/injections/gobject.js.map +0 -1
  270. package/lib/injections/inject.d.ts +0 -4
  271. package/lib/injections/inject.js +0 -28
  272. package/lib/injections/inject.js.map +0 -1
  273. package/lib/injections/tracker1.d.ts +0 -7
  274. package/lib/injections/tracker1.js +0 -30
  275. package/lib/injections/tracker1.js.map +0 -1
  276. package/lib/library-version.d.ts +0 -10
  277. package/lib/library-version.js +0 -45
  278. package/lib/library-version.js.map +0 -1
  279. package/lib/logger.d.ts +0 -36
  280. package/lib/logger.js +0 -134
  281. package/lib/logger.js.map +0 -1
  282. package/lib/messages.d.ts +0 -26
  283. package/lib/messages.js +0 -42
  284. package/lib/messages.js.map +0 -1
  285. package/lib/registry.d.ts +0 -8
  286. package/lib/registry.js +0 -12
  287. package/lib/registry.js.map +0 -1
  288. package/lib/transformation.d.ts +0 -181
  289. package/lib/transformation.js +0 -480
  290. package/lib/transformation.js.map +0 -1
  291. package/lib/types/answer-version.d.ts +0 -4
  292. package/lib/types/answer-version.js +0 -2
  293. package/lib/types/answer-version.js.map +0 -1
  294. package/lib/types/class-parent.d.ts +0 -13
  295. package/lib/types/class-parent.js +0 -2
  296. package/lib/types/class-parent.js.map +0 -1
  297. package/lib/types/config-flags.d.ts +0 -4
  298. package/lib/types/config-flags.js +0 -2
  299. package/lib/types/config-flags.js.map +0 -1
  300. package/lib/types/construct-name.d.ts +0 -1
  301. package/lib/types/construct-name.js +0 -2
  302. package/lib/types/construct-name.js.map +0 -1
  303. package/lib/types/dependency-map.d.ts +0 -4
  304. package/lib/types/dependency-map.js +0 -2
  305. package/lib/types/dependency-map.js.map +0 -1
  306. package/lib/types/dependency.d.ts +0 -42
  307. package/lib/types/dependency.js +0 -2
  308. package/lib/types/dependency.js.map +0 -1
  309. package/lib/types/file-info.d.ts +0 -14
  310. package/lib/types/file-info.js +0 -2
  311. package/lib/types/file-info.js.map +0 -1
  312. package/lib/types/format.d.ts +0 -1
  313. package/lib/types/format.js +0 -2
  314. package/lib/types/format.js.map +0 -1
  315. package/lib/types/gir-alias-element.d.ts +0 -4
  316. package/lib/types/gir-alias-element.js +0 -2
  317. package/lib/types/gir-alias-element.js.map +0 -1
  318. package/lib/types/gir-annotation.d.ts +0 -9
  319. package/lib/types/gir-annotation.js +0 -2
  320. package/lib/types/gir-annotation.js.map +0 -1
  321. package/lib/types/gir-any-element.d.ts +0 -2
  322. package/lib/types/gir-any-element.js +0 -2
  323. package/lib/types/gir-any-element.js.map +0 -1
  324. package/lib/types/gir-bitfield-element.d.ts +0 -6
  325. package/lib/types/gir-bitfield-element.js +0 -2
  326. package/lib/types/gir-bitfield-element.js.map +0 -1
  327. package/lib/types/gir-callable-param-element.d.ts +0 -4
  328. package/lib/types/gir-callable-param-element.js +0 -2
  329. package/lib/types/gir-callable-param-element.js.map +0 -1
  330. package/lib/types/gir-callable-params.d.ts +0 -7
  331. package/lib/types/gir-callable-params.js +0 -2
  332. package/lib/types/gir-callable-params.js.map +0 -1
  333. package/lib/types/gir-callable-return.d.ts +0 -5
  334. package/lib/types/gir-callable-return.js +0 -2
  335. package/lib/types/gir-callable-return.js.map +0 -1
  336. package/lib/types/gir-callback-element.d.ts +0 -6
  337. package/lib/types/gir-callback-element.js +0 -2
  338. package/lib/types/gir-callback-element.js.map +0 -1
  339. package/lib/types/gir-class-element.d.ts +0 -17
  340. package/lib/types/gir-class-element.js +0 -2
  341. package/lib/types/gir-class-element.js.map +0 -1
  342. package/lib/types/gir-constant-element.d.ts +0 -4
  343. package/lib/types/gir-constant-element.js +0 -2
  344. package/lib/types/gir-constant-element.js.map +0 -1
  345. package/lib/types/gir-constructor-element.d.ts +0 -6
  346. package/lib/types/gir-constructor-element.js +0 -2
  347. package/lib/types/gir-constructor-element.js.map +0 -1
  348. package/lib/types/gir-enum-element.d.ts +0 -6
  349. package/lib/types/gir-enum-element.js +0 -2
  350. package/lib/types/gir-enum-element.js.map +0 -1
  351. package/lib/types/gir-field-element.d.ts +0 -5
  352. package/lib/types/gir-field-element.js +0 -2
  353. package/lib/types/gir-field-element.js.map +0 -1
  354. package/lib/types/gir-function-element.d.ts +0 -6
  355. package/lib/types/gir-function-element.js +0 -2
  356. package/lib/types/gir-function-element.js.map +0 -1
  357. package/lib/types/gir-instance-parameter.d.ts +0 -8
  358. package/lib/types/gir-instance-parameter.js +0 -2
  359. package/lib/types/gir-instance-parameter.js.map +0 -1
  360. package/lib/types/gir-interface-element.d.ts +0 -16
  361. package/lib/types/gir-interface-element.js +0 -2
  362. package/lib/types/gir-interface-element.js.map +0 -1
  363. package/lib/types/gir-member-element.d.ts +0 -5
  364. package/lib/types/gir-member-element.js +0 -2
  365. package/lib/types/gir-member-element.js.map +0 -1
  366. package/lib/types/gir-method-element.d.ts +0 -7
  367. package/lib/types/gir-method-element.js +0 -2
  368. package/lib/types/gir-method-element.js.map +0 -1
  369. package/lib/types/gir-module-resolved-by.d.ts +0 -15
  370. package/lib/types/gir-module-resolved-by.js +0 -2
  371. package/lib/types/gir-module-resolved-by.js.map +0 -1
  372. package/lib/types/gir-modules-grouped-map.d.ts +0 -4
  373. package/lib/types/gir-modules-grouped-map.js +0 -2
  374. package/lib/types/gir-modules-grouped-map.js.map +0 -1
  375. package/lib/types/gir-modules-grouped.d.ts +0 -12
  376. package/lib/types/gir-modules-grouped.js +0 -2
  377. package/lib/types/gir-modules-grouped.js.map +0 -1
  378. package/lib/types/gir-namespace.d.ts +0 -27
  379. package/lib/types/gir-namespace.js +0 -2
  380. package/lib/types/gir-namespace.js.map +0 -1
  381. package/lib/types/gir-property-element.d.ts +0 -4
  382. package/lib/types/gir-property-element.js +0 -2
  383. package/lib/types/gir-property-element.js.map +0 -1
  384. package/lib/types/gir-record-element.d.ts +0 -10
  385. package/lib/types/gir-record-element.js +0 -2
  386. package/lib/types/gir-record-element.js.map +0 -1
  387. package/lib/types/gir-repository.d.ts +0 -5
  388. package/lib/types/gir-repository.js +0 -2
  389. package/lib/types/gir-repository.js.map +0 -1
  390. package/lib/types/gir-signal.d.ts +0 -10
  391. package/lib/types/gir-signal.js +0 -2
  392. package/lib/types/gir-signal.js.map +0 -1
  393. package/lib/types/gir-type-name.d.ts +0 -2
  394. package/lib/types/gir-type-name.js +0 -2
  395. package/lib/types/gir-type-name.js.map +0 -1
  396. package/lib/types/gir-union-element.d.ts +0 -9
  397. package/lib/types/gir-union-element.js +0 -2
  398. package/lib/types/gir-union-element.js.map +0 -1
  399. package/lib/types/gir-unparsed-number.d.ts +0 -2
  400. package/lib/types/gir-unparsed-number.js +0 -2
  401. package/lib/types/gir-unparsed-number.js.map +0 -1
  402. package/lib/types/gir-virtual-method.d.ts +0 -6
  403. package/lib/types/gir-virtual-method.js +0 -2
  404. package/lib/types/gir-virtual-method.js.map +0 -1
  405. package/lib/types/index.d.ts +0 -79
  406. package/lib/types/index.js +0 -80
  407. package/lib/types/index.js.map +0 -1
  408. package/lib/types/inheritance-table.js +0 -2
  409. package/lib/types/inheritance-table.js.map +0 -1
  410. package/lib/types/local-name-check.d.ts +0 -4
  411. package/lib/types/local-name-check.js +0 -2
  412. package/lib/types/local-name-check.js.map +0 -1
  413. package/lib/types/local-name-type.d.ts +0 -1
  414. package/lib/types/local-name-type.js +0 -2
  415. package/lib/types/local-name-type.js.map +0 -1
  416. package/lib/types/local-name.d.ts +0 -7
  417. package/lib/types/local-name.js +0 -2
  418. package/lib/types/local-name.js.map +0 -1
  419. package/lib/types/local-names.d.ts +0 -4
  420. package/lib/types/local-names.js +0 -2
  421. package/lib/types/local-names.js.map +0 -1
  422. package/lib/types/metadata.d.ts +0 -8
  423. package/lib/types/metadata.js +0 -2
  424. package/lib/types/metadata.js.map +0 -1
  425. package/lib/types/options-base.d.ts +0 -4
  426. package/lib/types/options-base.js +0 -2
  427. package/lib/types/options-base.js.map +0 -1
  428. package/lib/types/options-generation.d.ts +0 -33
  429. package/lib/types/options-generation.js +0 -2
  430. package/lib/types/options-generation.js.map +0 -1
  431. package/lib/types/options-load.d.ts +0 -5
  432. package/lib/types/options-load.js +0 -2
  433. package/lib/types/options-load.js.map +0 -1
  434. package/lib/types/options-transform.d.ts +0 -4
  435. package/lib/types/options-transform.js +0 -2
  436. package/lib/types/options-transform.js.map +0 -1
  437. package/lib/types/output-format.d.ts +0 -1
  438. package/lib/types/output-format.js +0 -2
  439. package/lib/types/output-format.js.map +0 -1
  440. package/lib/types/package-data-parsed.d.ts +0 -28
  441. package/lib/types/package-data-parsed.js +0 -2
  442. package/lib/types/package-data-parsed.js.map +0 -1
  443. package/lib/types/package-data.d.ts +0 -23
  444. package/lib/types/package-data.js +0 -2
  445. package/lib/types/package-data.js.map +0 -1
  446. package/lib/types/package-section-parsed.d.ts +0 -8
  447. package/lib/types/package-section-parsed.js +0 -2
  448. package/lib/types/package-section-parsed.js.map +0 -1
  449. package/lib/types/parsed-gir.d.ts +0 -5
  450. package/lib/types/parsed-gir.js +0 -2
  451. package/lib/types/parsed-gir.js.map +0 -1
  452. package/lib/types/parsed-package-data.d.ts +0 -6
  453. package/lib/types/parsed-package-data.js +0 -2
  454. package/lib/types/parsed-package-data.js.map +0 -1
  455. package/lib/types/part-of-class.d.ts +0 -7
  456. package/lib/types/part-of-class.js +0 -2
  457. package/lib/types/part-of-class.js.map +0 -1
  458. package/lib/types/part-of-module.d.ts +0 -6
  459. package/lib/types/part-of-module.js +0 -2
  460. package/lib/types/part-of-module.js.map +0 -1
  461. package/lib/types/property-case.d.ts +0 -1
  462. package/lib/types/property-case.js +0 -2
  463. package/lib/types/property-case.js.map +0 -1
  464. package/lib/types/resolve-type.d.ts +0 -4
  465. package/lib/types/resolve-type.js +0 -6
  466. package/lib/types/resolve-type.js.map +0 -1
  467. package/lib/types/template-data.d.ts +0 -7
  468. package/lib/types/template-data.js +0 -2
  469. package/lib/types/template-data.js.map +0 -1
  470. package/lib/types/transformation-case.d.ts +0 -1
  471. package/lib/types/transformation-case.js +0 -2
  472. package/lib/types/transformation-case.js.map +0 -1
  473. package/lib/types/transformations.d.ts +0 -4
  474. package/lib/types/transformations.js +0 -2
  475. package/lib/types/transformations.js.map +0 -1
  476. package/lib/types/ts-doc-tag.js +0 -2
  477. package/lib/types/ts-doc-tag.js.map +0 -1
  478. package/lib/types/ts-doc.d.ts +0 -16
  479. package/lib/types/ts-doc.js +0 -2
  480. package/lib/types/ts-doc.js.map +0 -1
  481. package/lib/types/type-gir-alias.js +0 -2
  482. package/lib/types/type-gir-alias.js.map +0 -1
  483. package/lib/types/type-gir-class.d.ts +0 -2
  484. package/lib/types/type-gir-class.js +0 -2
  485. package/lib/types/type-gir-class.js.map +0 -1
  486. package/lib/types/type-gir-element.d.ts +0 -3
  487. package/lib/types/type-gir-element.js +0 -2
  488. package/lib/types/type-gir-element.js.map +0 -1
  489. package/lib/types/type-gir-enumeration-member.d.ts +0 -2
  490. package/lib/types/type-gir-enumeration-member.js +0 -2
  491. package/lib/types/type-gir-enumeration-member.js.map +0 -1
  492. package/lib/types/type-gir-enumeration.js +0 -2
  493. package/lib/types/type-gir-enumeration.js.map +0 -1
  494. package/lib/types/type-gir-function.d.ts +0 -1
  495. package/lib/types/type-gir-function.js +0 -2
  496. package/lib/types/type-gir-function.js.map +0 -1
  497. package/lib/types/type-gir-interface.js +0 -2
  498. package/lib/types/type-gir-interface.js.map +0 -1
  499. package/lib/types/type-gir-method.d.ts +0 -2
  500. package/lib/types/type-gir-method.js +0 -2
  501. package/lib/types/type-gir-method.js.map +0 -1
  502. package/lib/types/type-gir-parameter.d.ts +0 -1
  503. package/lib/types/type-gir-parameter.js +0 -2
  504. package/lib/types/type-gir-parameter.js.map +0 -1
  505. package/lib/types/type-gir-property.js +0 -2
  506. package/lib/types/type-gir-property.js.map +0 -1
  507. package/lib/types/type-gir-variable.d.ts +0 -1
  508. package/lib/types/type-gir-variable.js +0 -2
  509. package/lib/types/type-gir-variable.js.map +0 -1
  510. package/lib/types/type-ts-element.d.ts +0 -3
  511. package/lib/types/type-ts-element.js +0 -2
  512. package/lib/types/type-ts-element.js.map +0 -1
  513. package/lib/types/type-ts-enumeration-member.js +0 -2
  514. package/lib/types/type-ts-enumeration-member.js.map +0 -1
  515. package/lib/types/type-ts-function.d.ts +0 -1
  516. package/lib/types/type-ts-function.js +0 -2
  517. package/lib/types/type-ts-function.js.map +0 -1
  518. package/lib/types/type-ts-property.d.ts +0 -1
  519. package/lib/types/type-ts-property.js +0 -2
  520. package/lib/types/type-ts-property.js.map +0 -1
  521. package/lib/types/user-config-load-result.d.ts +0 -6
  522. package/lib/types/user-config-load-result.js +0 -2
  523. package/lib/types/user-config-load-result.js.map +0 -1
  524. package/lib/types/user-config.d.ts +0 -35
  525. package/lib/types/user-config.js +0 -2
  526. package/lib/types/user-config.js.map +0 -1
  527. package/lib/util.d.ts +0 -20
  528. package/lib/util.js +0 -67
  529. package/lib/util.js.map +0 -1
  530. package/lib/utils.d.ts +0 -268
  531. package/lib/utils.js +0 -417
  532. package/lib/utils.js.map +0 -1
  533. package/lib/validators/class.d.ts +0 -7
  534. package/lib/validators/class.js +0 -217
  535. package/lib/validators/class.js.map +0 -1
  536. package/lib/validators/interface.d.ts +0 -5
  537. package/lib/validators/interface.js +0 -16
  538. package/lib/validators/interface.js.map +0 -1
  539. package/lib/visitor.d.ts +0 -35
  540. package/lib/visitor.js +0 -29
  541. package/lib/visitor.js.map +0 -1
@@ -0,0 +1,71 @@
1
+ import { constants } from "node:fs";
2
+ import { access, readFile } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import { glob } from "glob";
5
+
6
+ import type { FileInfo } from "../types/index.ts";
7
+
8
+ export { inspect } from "node:util";
9
+
10
+ /**
11
+ * Asynchronously checks if a file exists
12
+ * @param filePath The path to the file
13
+ * @returns A promise that resolves to true if the file exists, false otherwise
14
+ */
15
+ export const fileExists = async (filePath: string): Promise<boolean> => {
16
+ try {
17
+ await access(filePath, constants.F_OK);
18
+ return true;
19
+ } catch {
20
+ return false;
21
+ }
22
+ };
23
+
24
+ /**
25
+ * Find a file in a list of directories
26
+ * @param dirs The directories to search in
27
+ * @param filename The filename to search for
28
+ * @returns The file info
29
+ */
30
+ export const findFilesInDirs = async (dirs: string[], filename: string): Promise<FileInfo[]> => {
31
+ const filesInfo: FileInfo[] = [];
32
+
33
+ const pattern = dirs.map((dir) => join(dir, filename));
34
+ const _files = await glob(pattern);
35
+
36
+ // Remove duplicates
37
+ const files = [...new Set(_files)];
38
+
39
+ for (const filePath of files) {
40
+ const fileInfo: FileInfo = {
41
+ path: null,
42
+ filename,
43
+ exists: false,
44
+ };
45
+ fileInfo.exists = await fileExists(filePath);
46
+ if (fileInfo.exists) {
47
+ fileInfo.path = filePath;
48
+ filesInfo.push(fileInfo);
49
+ }
50
+ }
51
+
52
+ if (filesInfo.length === 0) {
53
+ filesInfo.push({
54
+ path: null,
55
+ filename,
56
+ exists: false,
57
+ });
58
+ }
59
+
60
+ return filesInfo;
61
+ };
62
+
63
+ /**
64
+ * Read a JSON file
65
+ * @param filePath The path to the JSON file
66
+ * @returns The parsed JSON
67
+ */
68
+ export const readJsonFile = async <T = unknown>(filePath: string): Promise<T> => {
69
+ const fileContent = await readFile(filePath, "utf8");
70
+ return JSON.parse(fileContent) as T;
71
+ };
@@ -0,0 +1,61 @@
1
+ import type { IntrospectedClassFunction } from "../gir/introspected-classes.ts";
2
+ import type { ClassFunctionLike, FunctionTypeKind } from "../types/class-function-types.ts";
3
+
4
+ /**
5
+ * Type guard to check if an object is a class function-like
6
+ */
7
+ export function isClassFunctionLike(obj: unknown): obj is ClassFunctionLike {
8
+ return obj != null && typeof obj === "object" && "__functionTypeKind" in obj;
9
+ }
10
+
11
+ /**
12
+ * Type guard to check if an object is a specific function type
13
+ */
14
+ export function isFunctionOfType(obj: unknown, type: FunctionTypeKind): boolean {
15
+ return isClassFunctionLike(obj) && obj.__functionTypeKind === type;
16
+ }
17
+
18
+ /**
19
+ * Type guard specifically for class functions
20
+ */
21
+ export function isClassFunction(obj: unknown): boolean {
22
+ return isFunctionOfType(obj, "CLASS_FUNCTION");
23
+ }
24
+
25
+ /**
26
+ * Type guard specifically for virtual class functions
27
+ */
28
+ export function isVirtualClassFunction(obj: unknown): boolean {
29
+ return isFunctionOfType(obj, "VIRTUAL_CLASS_FUNCTION");
30
+ }
31
+
32
+ /**
33
+ * Type guard specifically for static class functions
34
+ */
35
+ export function isStaticClassFunction(fn: IntrospectedClassFunction): boolean {
36
+ // Check if the function has the static class function characteristics
37
+ // IntrospectedStaticClassFunction extends IntrospectedClassFunction but doesn't add unique properties
38
+ // We can identify it by checking the constructor name or other characteristics
39
+ return fn.constructor.name === "IntrospectedStaticClassFunction";
40
+ }
41
+
42
+ /**
43
+ * Type guard specifically for constructors
44
+ */
45
+ export function isConstructorFunction(obj: unknown): boolean {
46
+ return isFunctionOfType(obj, "CONSTRUCTOR");
47
+ }
48
+
49
+ /**
50
+ * Helper to get the function type kind from an object
51
+ */
52
+ export function getFunctionTypeKind(obj: unknown): FunctionTypeKind | null {
53
+ return isClassFunctionLike(obj) ? obj.__functionTypeKind : null;
54
+ }
55
+
56
+ /**
57
+ * Helper to check if object has namespace property (common pattern in the codebase)
58
+ */
59
+ export function hasNamespace(obj: unknown): obj is { namespace: unknown } {
60
+ return obj != null && typeof obj === "object" && "namespace" in obj;
61
+ }
@@ -0,0 +1,69 @@
1
+ import { type IntrospectedConstant, IntrospectedField, IntrospectedProperty } from "../gir/index.ts";
2
+ import { isInvalid } from "./naming.ts";
3
+ import { generateIndent } from "./strings.ts";
4
+
5
+ /**
6
+ * Generates a TypeScript member name for properties, constants, and fields
7
+ * Handles computed properties and invalid names
8
+ */
9
+ export function generateMemberName(tsVar: IntrospectedProperty | IntrospectedConstant | IntrospectedField): string {
10
+ const name = tsVar.name;
11
+ const invalid = isInvalid(name);
12
+ const hasInvalidName = invalid && (tsVar instanceof IntrospectedProperty || tsVar instanceof IntrospectedField);
13
+ const Name = hasInvalidName ? `"${name}"` : name;
14
+
15
+ if (!Name) {
16
+ throw new Error('[generateMemberName] "name" not set!');
17
+ }
18
+
19
+ const ComputedName = "computed" in tsVar && tsVar.computed ? `[${name}]` : Name;
20
+
21
+ return `${ComputedName}`;
22
+ }
23
+
24
+ /**
25
+ * Adds TSDoc comment lines with proper formatting
26
+ * @see https://github.com/microsoft/tsdoc
27
+ */
28
+ export function addTSDocCommentLines(lines: string[], indentCount = 0): string[] {
29
+ const def: string[] = [];
30
+ const indent = generateIndent(indentCount);
31
+ def.push(`${indent}/**`);
32
+ for (const line of lines) {
33
+ def.push(`${indent} * ${line}`);
34
+ }
35
+ def.push(`${indent} */`);
36
+ return def;
37
+ }
38
+
39
+ /**
40
+ * Adds an info comment, is used for debugging the generated types
41
+ */
42
+ export function addInfoComment(comment?: string, indentCount = 0): string[] {
43
+ const def: string[] = [];
44
+ const indent = generateIndent(indentCount);
45
+ if (comment) {
46
+ def.push("");
47
+ def.push(`${indent}// ${comment}`);
48
+ def.push("");
49
+ }
50
+ return def;
51
+ }
52
+
53
+ /**
54
+ * Merges multiple description arrays with proper indentation and comment
55
+ */
56
+ export function mergeDescs(descs: string[], comment?: string, indentCount = 1): string[] {
57
+ const def: string[] = [];
58
+ const indent = generateIndent(indentCount);
59
+
60
+ for (const desc of descs) {
61
+ def.push(`${indent}${desc}`);
62
+ }
63
+
64
+ if (def.length > 0) {
65
+ def.unshift(...addInfoComment(comment, indentCount));
66
+ }
67
+
68
+ return def;
69
+ }
@@ -0,0 +1,243 @@
1
+ import type {
2
+ GirCallableParamElement,
3
+ GirCallableReturn,
4
+ GirConstantElement,
5
+ GirDocElement,
6
+ GirFieldElement,
7
+ GirFunctionElement,
8
+ GirInfoAttrs,
9
+ GirMethodElement,
10
+ } from "@gi.ts/parser";
11
+ import { GirDirection } from "@gi.ts/parser";
12
+ import type { IntrospectedNamespace } from "../gir/namespace.ts";
13
+ import {
14
+ ArrayType,
15
+ ClosureType,
16
+ GenerifiedTypeIdentifier,
17
+ NativeType,
18
+ NullableType,
19
+ type TypeExpression,
20
+ TypeIdentifier,
21
+ VoidType,
22
+ } from "../gir.ts";
23
+ import type { IntrospectedMetadata } from "../types/introspected.ts";
24
+ import { deprecatedVersion, introducedVersion, isDeprecated } from "./girs.ts";
25
+ import { isPrimitiveType, parseTypeExpression, resolvePrimitiveArrayType } from "./types.ts";
26
+
27
+ /**
28
+ * Parse documentation from a GIR element
29
+ */
30
+ export function parseDoc(element: GirDocElement): string | null {
31
+ const el = element.doc?.[0]?._;
32
+
33
+ return el ? `${el}` : null;
34
+ }
35
+
36
+ /**
37
+ * Parse deprecated documentation from a GIR element
38
+ */
39
+ export function parseDeprecatedDoc(element: GirDocElement): string | null {
40
+ return element["doc-deprecated"]?.[0]?._ ?? null;
41
+ }
42
+
43
+ /**
44
+ * Parse metadata from a GIR element
45
+ */
46
+ export function parseMetadata(element: { $: GirInfoAttrs } & GirDocElement): IntrospectedMetadata | undefined {
47
+ const version = introducedVersion(element);
48
+ const deprecatedIn = deprecatedVersion(element);
49
+ const deprecated = isDeprecated(element);
50
+ const doc = parseDeprecatedDoc(element);
51
+
52
+ if (!version && !deprecated && !deprecatedIn && !doc) {
53
+ return undefined;
54
+ }
55
+
56
+ return {
57
+ ...(deprecated ? { deprecated } : {}),
58
+ ...(doc ? { deprecatedDoc: doc } : {}),
59
+ ...(deprecatedIn ? { deprecatedVersion: deprecatedIn } : {}),
60
+ ...(version ? { introducedVersion: version } : {}),
61
+ };
62
+ }
63
+
64
+ /**
65
+ * This function determines whether a given type is a "pointer type"...
66
+ * Any type where the c:type ends with *
67
+ */
68
+ function isPointerType(types: import("@gi.ts/parser").GirType[] | undefined) {
69
+ const type = types?.[0];
70
+ if (!type) return false;
71
+
72
+ const ctype = type.$["c:type"];
73
+ if (!ctype) return false;
74
+
75
+ const typeName = type.$.name;
76
+ if (!typeName) return false;
77
+
78
+ if (isPrimitiveType(typeName)) return false;
79
+
80
+ return ctype.endsWith("*");
81
+ }
82
+
83
+ /**
84
+ * Decode the type from GIR elements
85
+ */
86
+ export function getType(
87
+ ns: IntrospectedNamespace,
88
+ param?: GirConstantElement | GirCallableReturn | GirFieldElement,
89
+ ): TypeExpression {
90
+ const modName = ns.namespace;
91
+
92
+ if (!param) return VoidType;
93
+
94
+ let name = "";
95
+ let arrayDepth: number | null = null;
96
+ let length: number | null = null;
97
+ let isPointer = false;
98
+
99
+ const parameter = param as GirCallableParamElement;
100
+ if (parameter.array?.[0]) {
101
+ arrayDepth = 1;
102
+
103
+ const [array] = parameter.array;
104
+
105
+ if (array.$ && array.$.length != null) {
106
+ length = array.$.length;
107
+ }
108
+
109
+ if (array.type?.[0].$?.name) {
110
+ name = array.type[0].$.name;
111
+ } else if (array.array) {
112
+ let arr = array;
113
+ let depth = 1;
114
+
115
+ while (Array.isArray(arr.array)) {
116
+ arr = arr.array[0];
117
+ depth++;
118
+ }
119
+
120
+ const possibleName = arr.type?.[0].$.name;
121
+ if (possibleName) {
122
+ name = possibleName;
123
+ } else {
124
+ name = "unknown";
125
+ console.log(
126
+ `Failed to find array type in ${ns.packageName}: `,
127
+ JSON.stringify(parameter.$, null, 4),
128
+ "\nMarking as unknown!",
129
+ );
130
+ }
131
+ arrayDepth = depth;
132
+ isPointer = isPointerType(array.type);
133
+ } else {
134
+ name = "unknown";
135
+ }
136
+ } else if (parameter.type?.[0]?.$) {
137
+ const possibleName = parameter.type[0].$.name;
138
+ if (possibleName) {
139
+ name = possibleName;
140
+ } else {
141
+ name = "unknown";
142
+ console.log(
143
+ `Failed to find type in ${modName}: `,
144
+ JSON.stringify(parameter.type[0].$, null, 4),
145
+ "\nMarking as unknown!",
146
+ );
147
+ }
148
+ isPointer = isPointerType(parameter.type);
149
+ } else if (parameter.varargs || (parameter.$ && parameter.$.name === "...")) {
150
+ arrayDepth = 1;
151
+ name = "any";
152
+ } else {
153
+ name = "unknown";
154
+ console.log(`Unknown varargs type in ${modName}: `, JSON.stringify(parameter.$, null, 4), "\nMarking as unknown!");
155
+ }
156
+
157
+ let closure = null as null | number;
158
+
159
+ if (parameter.$?.closure) {
160
+ closure = parameter.$.closure;
161
+ }
162
+
163
+ const nullable = parameter.$ && parameter.$.nullable === "1";
164
+ const allowNone = parameter.$ && parameter.$["allow-none"] === "1";
165
+
166
+ const x = name.split(" ");
167
+ if (x.length === 1) {
168
+ name = x[0];
169
+ } else {
170
+ name = x[1];
171
+ }
172
+
173
+ let variableType: TypeExpression = parseTypeExpression(ns.namespace, name);
174
+
175
+ if (variableType instanceof TypeIdentifier) {
176
+ if (variableType.is("GLib", "List") || variableType.is("GLib", "SList")) {
177
+ // TODO: $?.name was not necessary in gi.ts, but TelepathyLogger
178
+ // fails to generate now.
179
+ const listType = parameter?.type?.[0].type?.[0]?.$?.name;
180
+
181
+ if (listType) {
182
+ name = listType;
183
+ variableType = parseTypeExpression(ns.namespace, name);
184
+
185
+ arrayDepth = 1;
186
+ }
187
+ } else if (variableType.is("GLib", "HashTable")) {
188
+ const keyType = parameter?.type?.[0]?.type?.[0]?.$.name;
189
+ const valueType = parameter?.type?.[0]?.type?.[1]?.$.name;
190
+
191
+ if (keyType && valueType) {
192
+ const key = parseTypeExpression(ns.namespace, keyType);
193
+ const value = parseTypeExpression(ns.namespace, valueType);
194
+
195
+ variableType = new GenerifiedTypeIdentifier("HashTable", "GLib", [key, value]);
196
+ }
197
+ }
198
+ }
199
+
200
+ if (arrayDepth != null) {
201
+ const primitiveArrayType = resolvePrimitiveArrayType(name, arrayDepth);
202
+
203
+ if (primitiveArrayType) {
204
+ const [primitiveName, primitiveArrayDepth] = primitiveArrayType;
205
+
206
+ variableType = ArrayType.new({
207
+ type: primitiveName,
208
+ arrayDepth: primitiveArrayDepth,
209
+ length,
210
+ });
211
+ } else {
212
+ variableType = ArrayType.new({ type: variableType, arrayDepth, length });
213
+ }
214
+ } else if (closure != null) {
215
+ variableType = ClosureType.new({ type: variableType, user_data: closure });
216
+ }
217
+
218
+ if (
219
+ parameter.$ &&
220
+ (parameter.$.direction === GirDirection.Inout || parameter.$.direction === GirDirection.Out) &&
221
+ (nullable || allowNone) &&
222
+ !(variableType instanceof NativeType)
223
+ ) {
224
+ return new NullableType(variableType);
225
+ }
226
+
227
+ if ((!parameter.$?.direction || parameter.$.direction === GirDirection.In) && nullable) {
228
+ return new NullableType(variableType);
229
+ }
230
+
231
+ variableType.isPointer = isPointer;
232
+
233
+ return variableType;
234
+ }
235
+
236
+ /**
237
+ * Check if a function/method element has a shadow attribute
238
+ */
239
+ export function hasShadow(
240
+ obj: GirFunctionElement | GirMethodElement,
241
+ ): obj is GirFunctionElement & { $: { shadows: string } } {
242
+ return obj.$.shadows != null;
243
+ }
@@ -0,0 +1,113 @@
1
+ import type { GirInfoAttrs } from "@gi.ts/parser";
2
+ import type { TsDoc } from "../types/index.ts";
3
+
4
+ /**
5
+ * Split a package name into namespace and version
6
+ */
7
+ export const splitModuleName = (packageName: string): { packageName: string; namespace: string; version: string } => {
8
+ // Workaround for Vte-4-2.91
9
+ if (packageName.startsWith("Vte-4")) {
10
+ return {
11
+ packageName,
12
+ namespace: "Vte",
13
+ version: packageName.replace("Vte-", ""),
14
+ };
15
+ }
16
+ if (!packageName.includes("-")) {
17
+ return {
18
+ packageName,
19
+ namespace: packageName,
20
+ version: "",
21
+ };
22
+ }
23
+ // There are modules that use multiple hyphens like 'GUPnP-DLNA-1.0'
24
+ const splits = packageName.split("-");
25
+ const version = splits.splice(-1, 1)[0];
26
+ const namespace = splits.join("");
27
+
28
+ return {
29
+ packageName,
30
+ namespace,
31
+ version,
32
+ };
33
+ };
34
+
35
+ /** Remove namespace prefix */
36
+ export const removeNamespace = (type: string, namespace: string) => {
37
+ if (type.startsWith(`${namespace}.`)) {
38
+ type = type.substring(namespace.length + 1);
39
+ }
40
+ return type;
41
+ };
42
+
43
+ /** Remove class module name prefix */
44
+ export const removeClassModule = removeNamespace;
45
+
46
+ /**
47
+ * Add namespace prefix
48
+ */
49
+ export const addNamespace = (type: string, namespace: string) => {
50
+ if (!type.startsWith(`${namespace}.`)) {
51
+ type = `${namespace}.${type}`;
52
+ }
53
+ return type;
54
+ };
55
+
56
+ /**
57
+ * Check if a line is a comment line
58
+ * @param line The line to check
59
+ * @returns Whether the line is a comment line or not
60
+ */
61
+ export const isCommentLine = (line: string) => {
62
+ const lineTrim = line.trim();
63
+ return lineTrim.startsWith("//") || (lineTrim.startsWith("/*") && lineTrim.endsWith("*/"));
64
+ };
65
+
66
+ /**
67
+ * Convert a GirBoolean to a boolean
68
+ * @param boolStr The GirBoolean string
69
+ * @param defaultVal The default value
70
+ * @returns The boolean value
71
+ */
72
+ export const girBool = (boolStr: string | undefined, defaultVal = false): boolean => {
73
+ if (boolStr) {
74
+ if (parseInt(boolStr, 10) === 0) return false;
75
+ return true;
76
+ }
77
+ return defaultVal;
78
+ };
79
+
80
+ export const printGirDocComment = (tsDoc: TsDoc, config: { noComments: boolean }) => {
81
+ const desc: string[] = [];
82
+ if (config.noComments) {
83
+ return desc.join("\n");
84
+ }
85
+
86
+ const text = tsDoc.text;
87
+
88
+ if (text) {
89
+ if (text) {
90
+ const lines = text.split("\n");
91
+ if (lines.length) {
92
+ for (const line of lines) {
93
+ desc.push(`${line}`);
94
+ }
95
+ }
96
+ }
97
+
98
+ for (const tag of tsDoc.tags) {
99
+ if (tag.paramName) {
100
+ desc.push(`@${tag.tagName} ${tag.paramName} ${tag.text}`);
101
+ } else {
102
+ desc.push(`@${tag.tagName} ${tag.text}`);
103
+ }
104
+ }
105
+ }
106
+ return desc.join("\n");
107
+ };
108
+
109
+ export const isIntrospectable = (e: { $?: GirInfoAttrs }) =>
110
+ !e || !e.$ || !e.$.introspectable || e.$.introspectable === "1";
111
+ export const isDeprecated = (e: { $: GirInfoAttrs }) => e?.$ && e.$.deprecated === "1";
112
+ export const deprecatedVersion = (e: { $: GirInfoAttrs }) => e?.$?.["deprecated-version"];
113
+ export const introducedVersion = (e: { $: GirInfoAttrs }) => e?.$?.version;
@@ -0,0 +1,14 @@
1
+ export * from "./conflicts.ts";
2
+ export * from "./documentation.ts";
3
+ export * from "./files.ts";
4
+ export * from "./generation.ts";
5
+ export * from "./gir-parsing.ts";
6
+ export * from "./girs.ts";
7
+ export * from "./naming.ts";
8
+ export * from "./numbers.ts";
9
+ export * from "./objects.ts";
10
+ export * from "./path.ts";
11
+ export * from "./registry.ts";
12
+ export * from "./strings.ts";
13
+ export * from "./type-resolution.ts";
14
+ export * from "./types.ts";