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

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 +18 -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 +1484 -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 +183 -0
  43. package/src/gir/signal.ts +278 -0
  44. package/src/gir-module.ts +719 -0
  45. package/src/gir.ts +869 -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 +720 -0
  50. package/src/injections/glib.ts +280 -0
  51. package/src/injections/gobject.ts +906 -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 +65 -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 +70 -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 +593 -0
  128. package/src/utils/documentation.ts +471 -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 +262 -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 +249 -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
@@ -1,683 +0,0 @@
1
- import { TypeIdentifier, UnknownType, VoidType, ArrayType, ClosureType, NullableType, FunctionType } from "../gir.js";
2
- import { IntrospectedBase, IntrospectedClassMember, IntrospectedNamespaceMember } from "./base.js";
3
- import { GirDirection } from "../index.js";
4
- import { isIntrospectable } from "./namespace.js";
5
- import { getType, isInvalid, sanitizeMemberName, sanitizeIdentifierName, parseDoc, parseMetadata } from "./util.js";
6
- import { IntrospectedField } from "./property.js";
7
- import { IntrospectedBaseClass } from "./nodes.js";
8
- function hasShadow(obj) {
9
- return obj.$["shadows"] != null;
10
- }
11
- export class IntrospectedFunction extends IntrospectedNamespaceMember {
12
- parameters;
13
- output_parameters;
14
- return_type;
15
- raw_name;
16
- generics = [];
17
- returnTypeDoc;
18
- constructor({ name, raw_name, return_type = UnknownType, parameters = [], output_parameters = [], namespace, ...args }) {
19
- super(name, namespace, { ...args });
20
- this.raw_name = raw_name;
21
- this.parameters = parameters.map(p => p.copy({ parent: this }));
22
- this.output_parameters = output_parameters.map(p => p.copy({ parent: this }));
23
- this.return_type = return_type;
24
- this.returnTypeDoc = null;
25
- }
26
- copy({ parent = this.parent, outputParameters, parameters, return_type } = { parent: this.parent }) {
27
- const fn = new IntrospectedFunction({
28
- namespace: parent ?? this.namespace,
29
- raw_name: this.raw_name,
30
- name: this.name,
31
- return_type: return_type ?? this.return_type,
32
- output_parameters: outputParameters ?? this.output_parameters,
33
- parameters: parameters ?? this.parameters
34
- });
35
- fn.returnTypeDoc = this.returnTypeDoc;
36
- fn.generics = [...this.generics];
37
- return fn._copyBaseProperties(this);
38
- }
39
- accept(visitor) {
40
- const node = this.copy({
41
- parent: this.parent,
42
- parameters: this.parameters.map(p => {
43
- return p.accept(visitor);
44
- }),
45
- outputParameters: this.output_parameters.map(p => {
46
- return p.accept(visitor);
47
- }),
48
- return_type: visitor.visitType?.(this.return_type)
49
- });
50
- return visitor.visitFunction?.(node) ?? node;
51
- }
52
- static fromXML(element, ns, options) {
53
- let raw_name = element.$.name;
54
- let name = sanitizeIdentifierName(null, raw_name);
55
- if (hasShadow(element)) {
56
- raw_name = element.$["shadows"];
57
- name = sanitizeIdentifierName(null, element.$["shadows"]);
58
- }
59
- // TODO: Don't create a useless function object here
60
- let fn = new IntrospectedFunction({
61
- name,
62
- raw_name,
63
- namespace: ns,
64
- isIntrospectable: isIntrospectable(element)
65
- });
66
- let return_type;
67
- if ("return-value" in element && element["return-value"] && element["return-value"].length > 0) {
68
- const value = element["return-value"][0];
69
- return_type = getType(ns, value);
70
- fn.returnTypeDoc = parseDoc(value);
71
- }
72
- else {
73
- return_type = VoidType;
74
- }
75
- let parameters = [];
76
- if (element.parameters) {
77
- const param = element.parameters[0].parameter;
78
- if (param) {
79
- const inputs = param.filter((p) => {
80
- return !!p.$.name;
81
- });
82
- parameters.push(...inputs.map(i => IntrospectedFunctionParameter.fromXML(i, fn, options)));
83
- const unwrapped = return_type.unwrap();
84
- const length_params = unwrapped instanceof ArrayType && unwrapped.length != null ? [unwrapped.length] : [];
85
- const user_data_params = [];
86
- parameters = parameters
87
- .map(p => {
88
- const unwrapped_type = p.type.unwrap();
89
- if (unwrapped_type instanceof ArrayType && unwrapped_type.length != null) {
90
- length_params.push(unwrapped_type.length);
91
- return p;
92
- }
93
- if (unwrapped_type instanceof ClosureType && unwrapped_type.user_data != null) {
94
- user_data_params.push(unwrapped_type.user_data);
95
- return p;
96
- }
97
- return p;
98
- })
99
- .filter((_, i) => {
100
- // We remove any length parameters.
101
- return !length_params.includes(i) && !user_data_params.includes(i);
102
- })
103
- .filter(v => !(v.type instanceof TypeIdentifier && v.type.is("GLib", "DestroyNotify")))
104
- .reverse()
105
- .reduce(({ allowOptions, params }, p) => {
106
- const { type, isOptional } = p;
107
- if (allowOptions) {
108
- if (type instanceof NullableType) {
109
- params.push(p.copy({ isOptional: true }));
110
- }
111
- else if (!isOptional) {
112
- params.push(p);
113
- return { allowOptions: false, params };
114
- }
115
- else {
116
- params.push(p);
117
- }
118
- }
119
- else {
120
- if (isOptional) {
121
- params.push(p.copy({ type: new NullableType(type), isOptional: false }));
122
- }
123
- else {
124
- params.push(p);
125
- }
126
- }
127
- return { allowOptions, params };
128
- }, {
129
- allowOptions: true,
130
- params: []
131
- })
132
- .params.reverse()
133
- .filter((p) => p != null);
134
- }
135
- }
136
- const input_parameters = parameters.filter(param => param.direction === GirDirection.In || param.direction === GirDirection.Inout);
137
- const output_parameters = parameters
138
- .filter(param => param.direction && (param.direction === GirDirection.Out || param.direction === GirDirection.Inout))
139
- .map(parameter => parameter.copy({ isOptional: false }));
140
- fn = fn.copy({
141
- parent: ns,
142
- parameters: input_parameters,
143
- outputParameters: output_parameters,
144
- return_type
145
- });
146
- if (options.loadDocs) {
147
- fn.doc = parseDoc(element);
148
- fn.metadata = parseMetadata(element);
149
- }
150
- return fn;
151
- }
152
- return() {
153
- return this.return_type;
154
- }
155
- asCallback() {
156
- const { name, raw_name, namespace, output_parameters, parameters, return_type } = this;
157
- return new IntrospectedCallback({
158
- namespace,
159
- raw_name,
160
- name,
161
- output_parameters,
162
- parameters,
163
- return_type
164
- });
165
- }
166
- asClassFunction(parent) {
167
- const { raw_name: name, output_parameters, parameters, return_type, doc, isIntrospectable } = this;
168
- const fn = new IntrospectedClassFunction({
169
- parent,
170
- name,
171
- output_parameters,
172
- parameters,
173
- return_type,
174
- doc,
175
- isIntrospectable
176
- });
177
- fn.returnTypeDoc = this.returnTypeDoc;
178
- fn.generics = [...this.generics];
179
- return fn;
180
- }
181
- asVirtualClassFunction(parent) {
182
- const { raw_name: name, output_parameters, parameters, return_type, doc, isIntrospectable } = this;
183
- return new IntrospectedVirtualClassFunction({
184
- parent,
185
- name,
186
- output_parameters,
187
- parameters,
188
- return_type,
189
- doc,
190
- isIntrospectable
191
- });
192
- }
193
- asStaticClassFunction(parent) {
194
- const { raw_name: name, output_parameters, parameters, return_type, doc, isIntrospectable } = this;
195
- return new IntrospectedStaticClassFunction({
196
- parent,
197
- name,
198
- output_parameters,
199
- parameters,
200
- return_type,
201
- doc,
202
- isIntrospectable
203
- });
204
- }
205
- asString(generator) {
206
- return generator.generateFunction(this);
207
- }
208
- }
209
- export class IntrospectedDirectAllocationConstructor extends IntrospectedClassMember {
210
- parameters;
211
- constructor(parameters, parent) {
212
- super("new", parent, { isPrivate: false, isIntrospectable: true });
213
- this.parameters = parameters.map(parameter => parameter.copy({ parent: this }));
214
- }
215
- static fromFields(fields, parent) {
216
- const building = new IntrospectedDirectAllocationConstructor([], parent);
217
- building.parameters = fields
218
- .filter(field => {
219
- return !field.isStatic && !field.isPrivate && !field.type.isPointer;
220
- })
221
- .map(field => new IntrospectedFunctionParameter({
222
- parent: building,
223
- type: field.type,
224
- name: field.name,
225
- direction: GirDirection.In
226
- }));
227
- return building;
228
- }
229
- asString(generator) {
230
- return generator.generateDirectAllocationConstructor(this);
231
- }
232
- copy(options) {
233
- const copy = new IntrospectedDirectAllocationConstructor(options?.parameters ?? this.parameters, options?.parent ?? this.parent);
234
- copy._copyBaseProperties(this);
235
- return copy;
236
- }
237
- accept(visitor) {
238
- const node = this.copy({
239
- parameters: this.parameters.map(parameters => {
240
- return parameters.accept(visitor);
241
- })
242
- });
243
- return visitor.visitDirectAllocationConstructor?.(node) ?? node;
244
- }
245
- }
246
- export class IntrospectedConstructor extends IntrospectedClassMember {
247
- parameters = [];
248
- return_type = UnknownType;
249
- generics = [];
250
- constructor({ name, parameters = [], return_type, parent, ...args }) {
251
- super(name, parent, { ...args });
252
- this.return_type = return_type;
253
- this.parameters = parameters.map(p => p.copy({ parent: this }));
254
- }
255
- copy({ parent, parameters, return_type } = {}) {
256
- const constr = new IntrospectedConstructor({
257
- name: this.name,
258
- parent: parent ?? this.parent ?? null,
259
- return_type: return_type ?? this.return_type,
260
- parameters: parameters ?? this.parameters
261
- })._copyBaseProperties(this);
262
- constr.generics = [...this.generics];
263
- return constr;
264
- }
265
- static fromXML(m, parent, options) {
266
- return IntrospectedClassFunction.fromXML(m, parent, options).asConstructor();
267
- }
268
- accept(visitor) {
269
- const node = this.copy({
270
- parameters: this.parameters.map(p => {
271
- return p.accept(visitor);
272
- }),
273
- return_type: visitor.visitType?.(this.return_type)
274
- });
275
- return visitor.visitConstructor?.(node) ?? node;
276
- }
277
- return() {
278
- return this.return_type;
279
- }
280
- asString(generator) {
281
- return generator.generateConstructor(this);
282
- }
283
- }
284
- export class IntrospectedFunctionParameter extends IntrospectedBase {
285
- type;
286
- direction;
287
- isVarArgs = false;
288
- isOptional = false;
289
- isNullable = false;
290
- constructor({ name, direction, type, parent, doc, isVarArgs = false, isOptional = false, isNullable = false, ...args }) {
291
- super(name, parent ?? null, { ...args });
292
- this.type = type;
293
- this.direction = direction;
294
- this.doc = doc;
295
- this.isVarArgs = isVarArgs;
296
- this.isOptional = isOptional;
297
- this.isNullable = isNullable;
298
- }
299
- get namespace() {
300
- if (!this.parent)
301
- throw new Error(`Failed to get namespace for ${this.name}`);
302
- return this.parent.namespace;
303
- }
304
- asField() {
305
- const { name, parent, isOptional: optional, type } = this;
306
- if (!(parent?.parent instanceof IntrospectedBaseClass)) {
307
- throw new Error("Can't convert parameter of non-class function to field");
308
- }
309
- return new IntrospectedField({ name, parent: parent.parent, optional, type });
310
- }
311
- copy(options = {
312
- parent: this.parent
313
- }) {
314
- const { type, parent, direction, isVarArgs, isOptional, isNullable, name, doc } = this;
315
- return new IntrospectedFunctionParameter({
316
- parent: options.parent ?? parent,
317
- name,
318
- direction,
319
- isVarArgs,
320
- isOptional: options.isOptional ?? isOptional,
321
- isNullable: options.isNullable ?? isNullable,
322
- type: options.type ?? type,
323
- doc
324
- })._copyBaseProperties(this);
325
- }
326
- accept(visitor) {
327
- const node = this.copy({
328
- type: visitor.visitType?.(this.type)
329
- });
330
- return visitor.visitParameter?.(node) ?? node;
331
- }
332
- asString(generator) {
333
- return generator.generateParameter(this);
334
- }
335
- static fromXML(parameter, parent, options) {
336
- const ns = parent.namespace;
337
- let name = sanitizeMemberName(parameter.$.name);
338
- if (isInvalid(name)) {
339
- name = `_${name}`;
340
- }
341
- let isVarArgs = false;
342
- let isOptional = false;
343
- let isNullable = false;
344
- let type;
345
- let direction;
346
- if (!parameter.$.direction ||
347
- parameter.$.direction === GirDirection.In ||
348
- parameter.$.direction === GirDirection.Inout ||
349
- parameter.$.direction === GirDirection.InOut) {
350
- if (name === "...") {
351
- isVarArgs = true;
352
- name = "args";
353
- }
354
- // Default to "in" direction
355
- direction = parameter.$.direction || GirDirection.In;
356
- const optional = parameter.$.optional === "1";
357
- const nullable = parameter.$.nullable === "1";
358
- if (optional) {
359
- isOptional = true;
360
- }
361
- if (nullable) {
362
- isNullable = true;
363
- }
364
- type = getType(ns, parameter);
365
- }
366
- else if (parameter.$.direction === GirDirection.Out) {
367
- direction = parameter.$.direction;
368
- type = getType(ns, parameter);
369
- }
370
- else {
371
- throw new Error(`Unknown parameter direction: ${parameter.$.direction}`);
372
- }
373
- const fp = new IntrospectedFunctionParameter({
374
- isVarArgs,
375
- type: isVarArgs ? new ArrayType(type) : type,
376
- direction,
377
- parent: parent ?? undefined,
378
- isOptional,
379
- isNullable,
380
- name,
381
- isIntrospectable: isIntrospectable(parameter)
382
- });
383
- if (options.loadDocs) {
384
- fp.doc = parseDoc(parameter);
385
- fp.metadata = parseMetadata(parameter);
386
- }
387
- return fp;
388
- }
389
- }
390
- export class IntrospectedClassFunction extends IntrospectedBase {
391
- parameters;
392
- return_type;
393
- output_parameters;
394
- _anyify = false;
395
- _generify = false;
396
- interfaceParent = null;
397
- returnTypeDoc;
398
- generics = [];
399
- constructor({ name, parameters = [], output_parameters = [], return_type = UnknownType, parent, doc, ...args }) {
400
- super(name, parent, { ...args });
401
- this.parameters = parameters.map(p => p.copy({ parent: this }));
402
- this.output_parameters = output_parameters.map(p => p.copy({ parent: this }));
403
- this.return_type = return_type;
404
- this.doc = doc;
405
- }
406
- get namespace() {
407
- return this.parent.namespace;
408
- }
409
- asCallback() {
410
- const { name, parent, output_parameters, parameters, return_type } = this;
411
- return new IntrospectedClassCallback({
412
- parent,
413
- name,
414
- output_parameters,
415
- parameters,
416
- return_type
417
- });
418
- }
419
- asConstructor() {
420
- const { name, parent, parameters } = this;
421
- if (parent instanceof IntrospectedBaseClass) {
422
- // Always force constructors to have the correct return type.
423
- return new IntrospectedConstructor({
424
- name,
425
- parent,
426
- parameters,
427
- return_type: this.parent.getType(),
428
- isIntrospectable: this.isIntrospectable
429
- });
430
- }
431
- throw new Error(`Attempted to convert GirClassFunction into GirConstructor from invalid enum parent: ${this.parent.name}`);
432
- }
433
- asStaticClassFunction(parent) {
434
- const { name, parameters, return_type, output_parameters } = this;
435
- return new IntrospectedStaticClassFunction({
436
- name,
437
- parameters,
438
- output_parameters,
439
- return_type,
440
- parent,
441
- isIntrospectable: this.isIntrospectable
442
- });
443
- }
444
- copy({ parent = this.parent, name, interfaceParent, parameters, outputParameters, returnType } = {}) {
445
- const fn = new IntrospectedClassFunction({
446
- name: name ?? this.name,
447
- parent,
448
- output_parameters: outputParameters ?? this.output_parameters,
449
- parameters: parameters ?? this.parameters,
450
- return_type: returnType ?? this.return_type
451
- });
452
- fn.generics = [...this.generics];
453
- fn.returnTypeDoc = this.returnTypeDoc;
454
- if (interfaceParent) {
455
- fn.interfaceParent = interfaceParent;
456
- }
457
- return fn._copyBaseProperties(this);
458
- }
459
- accept(visitor) {
460
- const node = this.copy({
461
- parameters: this.parameters.map(p => {
462
- return p.accept(visitor);
463
- }),
464
- outputParameters: this.output_parameters.map(p => {
465
- return p.accept(visitor);
466
- }),
467
- returnType: visitor.visitType?.(this.return_type)
468
- });
469
- const fn = visitor.visitClassFunction?.(node);
470
- return fn ?? node;
471
- }
472
- anyify() {
473
- this._anyify = true;
474
- return this;
475
- }
476
- shouldAnyify() {
477
- return this._anyify;
478
- }
479
- static fromXML(element, parent, options) {
480
- const fn = IntrospectedFunction.fromXML(element, parent.namespace, options);
481
- return fn.asClassFunction(parent);
482
- }
483
- return() {
484
- return this.return_type;
485
- }
486
- asString(generator) {
487
- return generator.generateClassFunction(this);
488
- }
489
- }
490
- export class IntrospectedVirtualClassFunction extends IntrospectedClassFunction {
491
- constructor({ name, parameters = [], output_parameters = [], return_type = UnknownType, parent, doc, ...args }) {
492
- super({
493
- parent,
494
- name: name.startsWith("vfunc_") ? name : `vfunc_${name}`,
495
- parameters,
496
- output_parameters,
497
- return_type,
498
- doc,
499
- ...args
500
- });
501
- }
502
- copy({ parent = this.parent, interfaceParent, parameters, outputParameters, returnType }) {
503
- const fn = new IntrospectedVirtualClassFunction({
504
- name: this.name,
505
- parent,
506
- output_parameters: outputParameters ?? this.output_parameters,
507
- parameters: parameters ?? this.parameters,
508
- return_type: returnType ?? this.return_type
509
- });
510
- fn.generics = [...this.generics];
511
- fn.returnTypeDoc = this.returnTypeDoc;
512
- if (interfaceParent) {
513
- fn.interfaceParent = interfaceParent;
514
- }
515
- return fn._copyBaseProperties(this);
516
- }
517
- return() {
518
- return this.return_type;
519
- }
520
- accept(visitor) {
521
- const node = this.copy({
522
- parameters: this.parameters.map(p => {
523
- return p.accept(visitor);
524
- }),
525
- outputParameters: this.output_parameters.map(p => {
526
- return p.accept(visitor);
527
- }),
528
- returnType: visitor.visitType?.(this.return_type)
529
- });
530
- return visitor.visitVirtualClassFunction?.(node) ?? node;
531
- }
532
- static fromXML(m, parent, options) {
533
- const fn = IntrospectedFunction.fromXML(m, parent.namespace, options);
534
- return fn.asVirtualClassFunction(parent);
535
- }
536
- asString(generator) {
537
- return generator.generateVirtualClassFunction(this);
538
- }
539
- }
540
- export class IntrospectedStaticClassFunction extends IntrospectedClassFunction {
541
- asString(generator) {
542
- return generator.generateStaticClassFunction(this);
543
- }
544
- copy({ parent = this.parent, interfaceParent, parameters, outputParameters, returnType } = {}) {
545
- const fn = new IntrospectedStaticClassFunction({
546
- name: this.name,
547
- parent,
548
- output_parameters: outputParameters ?? this.output_parameters,
549
- parameters: parameters ?? this.parameters,
550
- return_type: returnType ?? this.return_type
551
- });
552
- fn.generics = [...this.generics];
553
- fn.returnTypeDoc = this.returnTypeDoc;
554
- if (interfaceParent) {
555
- fn.interfaceParent = interfaceParent;
556
- }
557
- return fn._copyBaseProperties(this);
558
- }
559
- accept(visitor) {
560
- const node = this.copy({
561
- parent: this.parent,
562
- parameters: this.parameters.map(p => {
563
- return p.accept(visitor);
564
- }),
565
- outputParameters: this.output_parameters.map(p => {
566
- return p.accept(visitor);
567
- }),
568
- returnType: visitor.visitType?.(this.return_type)
569
- });
570
- return visitor.visitStaticClassFunction?.(node) ?? node;
571
- }
572
- asClassFunction(parent) {
573
- const { name, output_parameters, parameters, return_type, doc, isIntrospectable } = this;
574
- const fn = new IntrospectedClassFunction({
575
- parent,
576
- name,
577
- output_parameters,
578
- parameters,
579
- return_type,
580
- doc,
581
- isIntrospectable
582
- });
583
- fn.returnTypeDoc = this.returnTypeDoc;
584
- fn.generics = [...this.generics];
585
- return fn;
586
- }
587
- static fromXML(m, parent, options) {
588
- const fn = IntrospectedFunction.fromXML(m, parent.namespace, options);
589
- return fn.asStaticClassFunction(parent);
590
- }
591
- }
592
- export class IntrospectedCallback extends IntrospectedFunction {
593
- asFunctionType() {
594
- return new FunctionType(Object.fromEntries(this.parameters.map(p => [p.name, p.type])), this.return_type);
595
- }
596
- copy({ parameters, returnType, outputParameters, parent } = {}) {
597
- const cb = new IntrospectedCallback({
598
- name: this.name,
599
- raw_name: this.raw_name,
600
- return_type: returnType ?? this.return_type,
601
- parameters: parameters ?? this.parameters,
602
- output_parameters: outputParameters ?? this.output_parameters,
603
- namespace: parent ?? this.parent
604
- })._copyBaseProperties(this);
605
- cb.generics = [...this.generics];
606
- return cb;
607
- }
608
- accept(visitor) {
609
- const node = this.copy({
610
- parameters: this.parameters.map(p => {
611
- return p.accept(visitor);
612
- }),
613
- outputParameters: this.output_parameters.map(p => {
614
- return p.accept(visitor);
615
- }),
616
- returnType: visitor.visitType?.(this.return_type)
617
- });
618
- return visitor.visitCallback?.(node) ?? node;
619
- }
620
- static fromXML(element, namespace, options) {
621
- const ns = namespace;
622
- const cb = IntrospectedFunction.fromXML(element, ns, options).asCallback();
623
- const glibTypeName = element.$["glib:type-name"];
624
- if (typeof glibTypeName === "string" && element.$["glib:type-name"]) {
625
- cb.resolve_names.push(glibTypeName);
626
- ns.registerResolveName(glibTypeName, ns.namespace, cb.name);
627
- }
628
- if (element.$["c:type"]) {
629
- cb.resolve_names.push(element.$["c:type"]);
630
- ns.registerResolveName(element.$["c:type"], ns.namespace, cb.name);
631
- }
632
- return cb;
633
- }
634
- asString(generator) {
635
- return generator.generateCallback(this);
636
- }
637
- }
638
- export class IntrospectedClassCallback extends IntrospectedClassFunction {
639
- asFunctionType() {
640
- return new FunctionType(Object.fromEntries(this.parameters.map(p => [p.name, p.type])), this.return_type);
641
- }
642
- copy({ parameters, returnType, outputParameters, parent } = {}) {
643
- const cb = new IntrospectedClassCallback({
644
- name: this.name,
645
- return_type: returnType ?? this.return_type,
646
- parameters: parameters ?? this.parameters,
647
- output_parameters: outputParameters ?? this.output_parameters,
648
- parent: parent ?? this.parent
649
- })._copyBaseProperties(this);
650
- cb.generics = [...this.generics];
651
- return cb;
652
- }
653
- accept(visitor) {
654
- const node = this.copy({
655
- parameters: this.parameters.map(p => {
656
- return p.accept(visitor);
657
- }),
658
- outputParameters: this.output_parameters.map(p => {
659
- return p.accept(visitor);
660
- }),
661
- returnType: visitor.visitType?.(this.return_type)
662
- });
663
- return visitor.visitClassCallback?.(node) ?? node;
664
- }
665
- static fromXML(element, parent, options) {
666
- const ns = parent.namespace;
667
- const cb = IntrospectedClassFunction.fromXML(element, parent, options).asCallback();
668
- const glibTypeName = element.$["glib:type-name"];
669
- if (typeof glibTypeName === "string" && element.$["glib:type-name"]) {
670
- cb.resolve_names.push(glibTypeName);
671
- ns.registerResolveName(glibTypeName, ns.namespace, cb.name);
672
- }
673
- if (element.$["c:type"]) {
674
- cb.resolve_names.push(element.$["c:type"]);
675
- ns.registerResolveName(element.$["c:type"], ns.namespace, cb.name);
676
- }
677
- return cb;
678
- }
679
- asString(generator) {
680
- return generator.generateClassCallback(this);
681
- }
682
- }
683
- //# sourceMappingURL=function.js.map