@ts-for-gir/cli 3.0.0-beta.8 → 3.0.0

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 (672) hide show
  1. package/README.md +429 -49
  2. package/lib/commands/doc.d.ts +1 -17
  3. package/lib/commands/doc.js +7 -13
  4. package/lib/commands/doc.js.map +1 -1
  5. package/lib/commands/generate.d.ts +1 -39
  6. package/lib/commands/generate.js +8 -25
  7. package/lib/commands/generate.js.map +1 -1
  8. package/lib/commands/list.d.ts +1 -11
  9. package/lib/commands/list.js +6 -10
  10. package/lib/commands/list.js.map +1 -1
  11. package/lib/config.d.ts +25 -11
  12. package/lib/config.js +194 -112
  13. package/lib/config.js.map +1 -1
  14. package/lib/generation-handler.d.ts +3 -4
  15. package/lib/generation-handler.js +8 -12
  16. package/lib/generation-handler.js.map +1 -1
  17. package/lib/index.d.ts +0 -12
  18. package/lib/index.js +0 -12
  19. package/lib/index.js.map +1 -1
  20. package/lib/module-loader.d.ts +41 -27
  21. package/lib/module-loader.js +54 -56
  22. package/lib/module-loader.js.map +1 -1
  23. package/lib/utils.d.ts +13 -86
  24. package/lib/utils.js +13 -194
  25. package/lib/utils.js.map +1 -1
  26. package/package.json +32 -37
  27. package/src/commands/doc.ts +9 -14
  28. package/src/commands/generate.ts +10 -25
  29. package/src/commands/list.ts +8 -10
  30. package/src/config.ts +211 -115
  31. package/src/generation-handler.ts +12 -13
  32. package/src/index.ts +0 -12
  33. package/src/module-loader.ts +88 -75
  34. package/src/utils.ts +12 -222
  35. package/lib/conflict-resolver.d.ts +0 -155
  36. package/lib/conflict-resolver.js +0 -1103
  37. package/lib/conflict-resolver.js.map +0 -1
  38. package/lib/constants.d.ts +0 -18
  39. package/lib/constants.js +0 -23
  40. package/lib/constants.js.map +0 -1
  41. package/lib/generator.d.ts +0 -5
  42. package/lib/generator.js +0 -2
  43. package/lib/generator.js.map +0 -1
  44. package/lib/gir-factory.d.ts +0 -51
  45. package/lib/gir-factory.js +0 -361
  46. package/lib/gir-factory.js.map +0 -1
  47. package/lib/gir-module.d.ts +0 -256
  48. package/lib/gir-module.js +0 -2075
  49. package/lib/gir-module.js.map +0 -1
  50. package/lib/html-doc-generator.d.ts +0 -13
  51. package/lib/html-doc-generator.js +0 -18
  52. package/lib/html-doc-generator.js.map +0 -1
  53. package/lib/injection/callbacks/gjs/Gio-2.0.d.ts +0 -2
  54. package/lib/injection/callbacks/gjs/Gio-2.0.js +0 -36
  55. package/lib/injection/callbacks/gjs/Gio-2.0.js.map +0 -1
  56. package/lib/injection/callbacks/gjs/index.d.ts +0 -2
  57. package/lib/injection/callbacks/gjs/index.js +0 -3
  58. package/lib/injection/callbacks/gjs/index.js.map +0 -1
  59. package/lib/injection/callbacks/index.d.ts +0 -4
  60. package/lib/injection/callbacks/index.js +0 -4
  61. package/lib/injection/callbacks/index.js.map +0 -1
  62. package/lib/injection/callbacks/node-gtk/index.d.ts +0 -2
  63. package/lib/injection/callbacks/node-gtk/index.js +0 -2
  64. package/lib/injection/callbacks/node-gtk/index.js.map +0 -1
  65. package/lib/injection/classes/GLib-2-0.d.ts +0 -2
  66. package/lib/injection/classes/GLib-2-0.js +0 -35
  67. package/lib/injection/classes/GLib-2-0.js.map +0 -1
  68. package/lib/injection/classes/gjs/GLib-2.0.d.ts +0 -2
  69. package/lib/injection/classes/gjs/GLib-2.0.js +0 -200
  70. package/lib/injection/classes/gjs/GLib-2.0.js.map +0 -1
  71. package/lib/injection/classes/gjs/GObject-2.0.d.ts +0 -2
  72. package/lib/injection/classes/gjs/GObject-2.0.js +0 -634
  73. package/lib/injection/classes/gjs/GObject-2.0.js.map +0 -1
  74. package/lib/injection/classes/gjs/Gio-2.0.d.ts +0 -5
  75. package/lib/injection/classes/gjs/Gio-2.0.js +0 -218
  76. package/lib/injection/classes/gjs/Gio-2.0.js.map +0 -1
  77. package/lib/injection/classes/gjs/index.d.ts +0 -2
  78. package/lib/injection/classes/gjs/index.js +0 -5
  79. package/lib/injection/classes/gjs/index.js.map +0 -1
  80. package/lib/injection/classes/index.d.ts +0 -4
  81. package/lib/injection/classes/index.js +0 -5
  82. package/lib/injection/classes/index.js.map +0 -1
  83. package/lib/injection/classes/node-gtk/GLib-2.0.d.ts +0 -2
  84. package/lib/injection/classes/node-gtk/GLib-2.0.js +0 -19
  85. package/lib/injection/classes/node-gtk/GLib-2.0.js.map +0 -1
  86. package/lib/injection/classes/node-gtk/GObject-2.0.d.ts +0 -2
  87. package/lib/injection/classes/node-gtk/GObject-2.0.js +0 -66
  88. package/lib/injection/classes/node-gtk/GObject-2.0.js.map +0 -1
  89. package/lib/injection/classes/node-gtk/Gdk-4.0.d.ts +0 -2
  90. package/lib/injection/classes/node-gtk/Gdk-4.0.js +0 -32
  91. package/lib/injection/classes/node-gtk/Gdk-4.0.js.map +0 -1
  92. package/lib/injection/classes/node-gtk/Gio-2.0.d.ts +0 -2
  93. package/lib/injection/classes/node-gtk/Gio-2.0.js +0 -14
  94. package/lib/injection/classes/node-gtk/Gio-2.0.js.map +0 -1
  95. package/lib/injection/classes/node-gtk/Graphene-1.0.d.ts +0 -2
  96. package/lib/injection/classes/node-gtk/Graphene-1.0.js +0 -133
  97. package/lib/injection/classes/node-gtk/Graphene-1.0.js.map +0 -1
  98. package/lib/injection/classes/node-gtk/Gtk-3.0.d.ts +0 -2
  99. package/lib/injection/classes/node-gtk/Gtk-3.0.js +0 -31
  100. package/lib/injection/classes/node-gtk/Gtk-3.0.js.map +0 -1
  101. package/lib/injection/classes/node-gtk/Gtk-4.0.d.ts +0 -2
  102. package/lib/injection/classes/node-gtk/Gtk-4.0.js +0 -52
  103. package/lib/injection/classes/node-gtk/Gtk-4.0.js.map +0 -1
  104. package/lib/injection/classes/node-gtk/Pango-1.0.d.ts +0 -2
  105. package/lib/injection/classes/node-gtk/Pango-1.0.js +0 -31
  106. package/lib/injection/classes/node-gtk/Pango-1.0.js.map +0 -1
  107. package/lib/injection/classes/node-gtk/index.d.ts +0 -2
  108. package/lib/injection/classes/node-gtk/index.js +0 -19
  109. package/lib/injection/classes/node-gtk/index.js.map +0 -1
  110. package/lib/injection/index.d.ts +0 -3
  111. package/lib/injection/index.js +0 -4
  112. package/lib/injection/index.js.map +0 -1
  113. package/lib/injection/injector.d.ts +0 -17
  114. package/lib/injection/injector.js +0 -139
  115. package/lib/injection/injector.js.map +0 -1
  116. package/lib/logger.d.ts +0 -36
  117. package/lib/logger.js +0 -137
  118. package/lib/logger.js.map +0 -1
  119. package/lib/messages.d.ts +0 -30
  120. package/lib/messages.js +0 -45
  121. package/lib/messages.js.map +0 -1
  122. package/lib/symtable.d.ts +0 -24
  123. package/lib/symtable.js +0 -63
  124. package/lib/symtable.js.map +0 -1
  125. package/lib/template-processor.d.ts +0 -75
  126. package/lib/template-processor.js +0 -207
  127. package/lib/template-processor.js.map +0 -1
  128. package/lib/transformation.d.ts +0 -156
  129. package/lib/transformation.js +0 -523
  130. package/lib/transformation.js.map +0 -1
  131. package/lib/type-definition-generator.d.ts +0 -116
  132. package/lib/type-definition-generator.js +0 -989
  133. package/lib/type-definition-generator.js.map +0 -1
  134. package/lib/types/answer-version.d.ts +0 -4
  135. package/lib/types/answer-version.js +0 -2
  136. package/lib/types/answer-version.js.map +0 -1
  137. package/lib/types/build-type.d.ts +0 -1
  138. package/lib/types/build-type.js +0 -2
  139. package/lib/types/build-type.js.map +0 -1
  140. package/lib/types/class-parent.d.ts +0 -11
  141. package/lib/types/class-parent.js +0 -2
  142. package/lib/types/class-parent.js.map +0 -1
  143. package/lib/types/config-flags.d.ts +0 -4
  144. package/lib/types/config-flags.js +0 -2
  145. package/lib/types/config-flags.js.map +0 -1
  146. package/lib/types/conflict-child-element.d.ts +0 -10
  147. package/lib/types/conflict-child-element.js +0 -2
  148. package/lib/types/conflict-child-element.js.map +0 -1
  149. package/lib/types/conflict-grouped-element.d.ts +0 -6
  150. package/lib/types/conflict-grouped-element.js +0 -2
  151. package/lib/types/conflict-grouped-element.js.map +0 -1
  152. package/lib/types/conflict-grouped-elements.d.ts +0 -4
  153. package/lib/types/conflict-grouped-elements.js +0 -2
  154. package/lib/types/conflict-grouped-elements.js.map +0 -1
  155. package/lib/types/construct-name.d.ts +0 -1
  156. package/lib/types/construct-name.js +0 -2
  157. package/lib/types/construct-name.js.map +0 -1
  158. package/lib/types/dependency-map.d.ts +0 -4
  159. package/lib/types/dependency-map.js +0 -2
  160. package/lib/types/dependency-map.js.map +0 -1
  161. package/lib/types/dependency.d.ts +0 -14
  162. package/lib/types/dependency.js +0 -2
  163. package/lib/types/dependency.js.map +0 -1
  164. package/lib/types/environment.d.ts +0 -1
  165. package/lib/types/environment.js +0 -2
  166. package/lib/types/environment.js.map +0 -1
  167. package/lib/types/generate-config.d.ts +0 -34
  168. package/lib/types/generate-config.js +0 -2
  169. package/lib/types/generate-config.js.map +0 -1
  170. package/lib/types/generator-type.d.ts +0 -4
  171. package/lib/types/generator-type.js +0 -6
  172. package/lib/types/generator-type.js.map +0 -1
  173. package/lib/types/gir-alias-element.d.ts +0 -13
  174. package/lib/types/gir-alias-element.js +0 -2
  175. package/lib/types/gir-alias-element.js.map +0 -1
  176. package/lib/types/gir-annotation.d.ts +0 -9
  177. package/lib/types/gir-annotation.js +0 -2
  178. package/lib/types/gir-annotation.js.map +0 -1
  179. package/lib/types/gir-any-element.d.ts +0 -2
  180. package/lib/types/gir-any-element.js +0 -2
  181. package/lib/types/gir-any-element.js.map +0 -1
  182. package/lib/types/gir-any-type.d.ts +0 -5
  183. package/lib/types/gir-any-type.js +0 -2
  184. package/lib/types/gir-any-type.js.map +0 -1
  185. package/lib/types/gir-array-type.d.ts +0 -20
  186. package/lib/types/gir-array-type.js +0 -3
  187. package/lib/types/gir-array-type.js.map +0 -1
  188. package/lib/types/gir-bitfield-element.d.ts +0 -17
  189. package/lib/types/gir-bitfield-element.js +0 -2
  190. package/lib/types/gir-bitfield-element.js.map +0 -1
  191. package/lib/types/gir-boolean.d.ts +0 -1
  192. package/lib/types/gir-boolean.js +0 -2
  193. package/lib/types/gir-boolean.js.map +0 -1
  194. package/lib/types/gir-boxed-element.d.ts +0 -15
  195. package/lib/types/gir-boxed-element.js +0 -2
  196. package/lib/types/gir-boxed-element.js.map +0 -1
  197. package/lib/types/gir-c-include.d.ts +0 -7
  198. package/lib/types/gir-c-include.js +0 -2
  199. package/lib/types/gir-c-include.js.map +0 -1
  200. package/lib/types/gir-callable-attrs.d.ts +0 -15
  201. package/lib/types/gir-callable-attrs.js +0 -3
  202. package/lib/types/gir-callable-attrs.js.map +0 -1
  203. package/lib/types/gir-callable-param-element.d.ts +0 -30
  204. package/lib/types/gir-callable-param-element.js +0 -2
  205. package/lib/types/gir-callable-param-element.js.map +0 -1
  206. package/lib/types/gir-callable-param.d.ts +0 -7
  207. package/lib/types/gir-callable-param.js +0 -2
  208. package/lib/types/gir-callable-param.js.map +0 -1
  209. package/lib/types/gir-callable-return.d.ts +0 -22
  210. package/lib/types/gir-callable-return.js +0 -2
  211. package/lib/types/gir-callable-return.js.map +0 -1
  212. package/lib/types/gir-callback-element.d.ts +0 -15
  213. package/lib/types/gir-callback-element.js +0 -2
  214. package/lib/types/gir-callback-element.js.map +0 -1
  215. package/lib/types/gir-class-element.d.ts +0 -48
  216. package/lib/types/gir-class-element.js +0 -2
  217. package/lib/types/gir-class-element.js.map +0 -1
  218. package/lib/types/gir-constant-element.d.ts +0 -15
  219. package/lib/types/gir-constant-element.js +0 -2
  220. package/lib/types/gir-constant-element.js.map +0 -1
  221. package/lib/types/gir-constructor-element.d.ts +0 -8
  222. package/lib/types/gir-constructor-element.js +0 -2
  223. package/lib/types/gir-constructor-element.js.map +0 -1
  224. package/lib/types/gir-direction.d.ts +0 -5
  225. package/lib/types/gir-direction.js +0 -7
  226. package/lib/types/gir-direction.js.map +0 -1
  227. package/lib/types/gir-doc-element.d.ts +0 -68
  228. package/lib/types/gir-doc-element.js +0 -2
  229. package/lib/types/gir-doc-element.js.map +0 -1
  230. package/lib/types/gir-enum-element.d.ts +0 -19
  231. package/lib/types/gir-enum-element.js +0 -2
  232. package/lib/types/gir-enum-element.js.map +0 -1
  233. package/lib/types/gir-field-element.d.ts +0 -18
  234. package/lib/types/gir-field-element.js +0 -2
  235. package/lib/types/gir-field-element.js.map +0 -1
  236. package/lib/types/gir-function-element.d.ts +0 -8
  237. package/lib/types/gir-function-element.js +0 -2
  238. package/lib/types/gir-function-element.js.map +0 -1
  239. package/lib/types/gir-implements.d.ts +0 -8
  240. package/lib/types/gir-implements.js +0 -2
  241. package/lib/types/gir-implements.js.map +0 -1
  242. package/lib/types/gir-include.d.ts +0 -9
  243. package/lib/types/gir-include.js +0 -2
  244. package/lib/types/gir-include.js.map +0 -1
  245. package/lib/types/gir-info-attrs.d.ts +0 -13
  246. package/lib/types/gir-info-attrs.js +0 -2
  247. package/lib/types/gir-info-attrs.js.map +0 -1
  248. package/lib/types/gir-info-elements.d.ts +0 -5
  249. package/lib/types/gir-info-elements.js +0 -2
  250. package/lib/types/gir-info-elements.js.map +0 -1
  251. package/lib/types/gir-instance-parameter.d.ts +0 -21
  252. package/lib/types/gir-instance-parameter.js +0 -2
  253. package/lib/types/gir-instance-parameter.js.map +0 -1
  254. package/lib/types/gir-interface-element.d.ts +0 -31
  255. package/lib/types/gir-interface-element.js +0 -2
  256. package/lib/types/gir-interface-element.js.map +0 -1
  257. package/lib/types/gir-member-element.d.ts +0 -17
  258. package/lib/types/gir-member-element.js +0 -2
  259. package/lib/types/gir-member-element.js.map +0 -1
  260. package/lib/types/gir-method-element.d.ts +0 -13
  261. package/lib/types/gir-method-element.js +0 -2
  262. package/lib/types/gir-method-element.js.map +0 -1
  263. package/lib/types/gir-module-resolved-by.d.ts +0 -10
  264. package/lib/types/gir-module-resolved-by.js +0 -2
  265. package/lib/types/gir-module-resolved-by.js.map +0 -1
  266. package/lib/types/gir-modules-grouped-map.d.ts +0 -4
  267. package/lib/types/gir-modules-grouped-map.js +0 -2
  268. package/lib/types/gir-modules-grouped-map.js.map +0 -1
  269. package/lib/types/gir-modules-grouped.d.ts +0 -12
  270. package/lib/types/gir-modules-grouped.js +0 -2
  271. package/lib/types/gir-modules-grouped.js.map +0 -1
  272. package/lib/types/gir-namespace.d.ts +0 -30
  273. package/lib/types/gir-namespace.js +0 -2
  274. package/lib/types/gir-namespace.js.map +0 -1
  275. package/lib/types/gir-package.d.ts +0 -7
  276. package/lib/types/gir-package.js +0 -2
  277. package/lib/types/gir-package.js.map +0 -1
  278. package/lib/types/gir-prerequisite.d.ts +0 -5
  279. package/lib/types/gir-prerequisite.js +0 -2
  280. package/lib/types/gir-prerequisite.js.map +0 -1
  281. package/lib/types/gir-property-element.d.ts +0 -21
  282. package/lib/types/gir-property-element.js +0 -2
  283. package/lib/types/gir-property-element.js.map +0 -1
  284. package/lib/types/gir-record-element.d.ts +0 -30
  285. package/lib/types/gir-record-element.js +0 -2
  286. package/lib/types/gir-record-element.js.map +0 -1
  287. package/lib/types/gir-repository.d.ts +0 -16
  288. package/lib/types/gir-repository.js +0 -2
  289. package/lib/types/gir-repository.js.map +0 -1
  290. package/lib/types/gir-signal.d.ts +0 -25
  291. package/lib/types/gir-signal.js +0 -2
  292. package/lib/types/gir-signal.js.map +0 -1
  293. package/lib/types/gir-transfer-ownership-type.d.ts +0 -5
  294. package/lib/types/gir-transfer-ownership-type.js +0 -7
  295. package/lib/types/gir-transfer-ownership-type.js.map +0 -1
  296. package/lib/types/gir-transfer-ownership.d.ts +0 -5
  297. package/lib/types/gir-transfer-ownership.js +0 -2
  298. package/lib/types/gir-transfer-ownership.js.map +0 -1
  299. package/lib/types/gir-type.d.ts +0 -14
  300. package/lib/types/gir-type.js +0 -2
  301. package/lib/types/gir-type.js.map +0 -1
  302. package/lib/types/gir-union-element.d.ts +0 -22
  303. package/lib/types/gir-union-element.js +0 -2
  304. package/lib/types/gir-union-element.js.map +0 -1
  305. package/lib/types/gir-unparsed-number.d.ts +0 -2
  306. package/lib/types/gir-unparsed-number.js +0 -2
  307. package/lib/types/gir-unparsed-number.js.map +0 -1
  308. package/lib/types/gir-var-args.d.ts +0 -5
  309. package/lib/types/gir-var-args.js +0 -2
  310. package/lib/types/gir-var-args.js.map +0 -1
  311. package/lib/types/gir-virtual-method.d.ts +0 -10
  312. package/lib/types/gir-virtual-method.js +0 -2
  313. package/lib/types/gir-virtual-method.js.map +0 -1
  314. package/lib/types/index.d.ts +0 -118
  315. package/lib/types/index.js +0 -119
  316. package/lib/types/index.js.map +0 -1
  317. package/lib/types/inheritance-table.d.ts +0 -3
  318. package/lib/types/inheritance-table.js +0 -2
  319. package/lib/types/inheritance-table.js.map +0 -1
  320. package/lib/types/injection-callback.d.ts +0 -16
  321. package/lib/types/injection-callback.js +0 -2
  322. package/lib/types/injection-callback.js.map +0 -1
  323. package/lib/types/injection-class.d.ts +0 -25
  324. package/lib/types/injection-class.js +0 -2
  325. package/lib/types/injection-class.js.map +0 -1
  326. package/lib/types/injection-function.d.ts +0 -7
  327. package/lib/types/injection-function.js +0 -2
  328. package/lib/types/injection-function.js.map +0 -1
  329. package/lib/types/injection-generic-parameter.d.ts +0 -2
  330. package/lib/types/injection-generic-parameter.js +0 -2
  331. package/lib/types/injection-generic-parameter.js.map +0 -1
  332. package/lib/types/injection-instance-parameter.d.ts +0 -2
  333. package/lib/types/injection-instance-parameter.js +0 -2
  334. package/lib/types/injection-instance-parameter.js.map +0 -1
  335. package/lib/types/injection-parameter.d.ts +0 -8
  336. package/lib/types/injection-parameter.js +0 -2
  337. package/lib/types/injection-parameter.js.map +0 -1
  338. package/lib/types/injection-property.d.ts +0 -4
  339. package/lib/types/injection-property.js +0 -2
  340. package/lib/types/injection-property.js.map +0 -1
  341. package/lib/types/injection-type.d.ts +0 -2
  342. package/lib/types/injection-type.js +0 -2
  343. package/lib/types/injection-type.js.map +0 -1
  344. package/lib/types/injection.d.ts +0 -5
  345. package/lib/types/injection.js +0 -2
  346. package/lib/types/injection.js.map +0 -1
  347. package/lib/types/local-name-check.d.ts +0 -4
  348. package/lib/types/local-name-check.js +0 -2
  349. package/lib/types/local-name-check.js.map +0 -1
  350. package/lib/types/local-name-type.d.ts +0 -1
  351. package/lib/types/local-name-type.js +0 -2
  352. package/lib/types/local-name-type.js.map +0 -1
  353. package/lib/types/local-name.d.ts +0 -7
  354. package/lib/types/local-name.js +0 -2
  355. package/lib/types/local-name.js.map +0 -1
  356. package/lib/types/local-names.d.ts +0 -4
  357. package/lib/types/local-names.js +0 -2
  358. package/lib/types/local-names.js.map +0 -1
  359. package/lib/types/module-type.d.ts +0 -1
  360. package/lib/types/module-type.js +0 -2
  361. package/lib/types/module-type.js.map +0 -1
  362. package/lib/types/parsed-gir.d.ts +0 -4
  363. package/lib/types/parsed-gir.js +0 -2
  364. package/lib/types/parsed-gir.js.map +0 -1
  365. package/lib/types/part-of-class.d.ts +0 -7
  366. package/lib/types/part-of-class.js +0 -2
  367. package/lib/types/part-of-class.js.map +0 -1
  368. package/lib/types/part-of-module.d.ts +0 -6
  369. package/lib/types/part-of-module.js +0 -2
  370. package/lib/types/part-of-module.js.map +0 -1
  371. package/lib/types/resolve-type.d.ts +0 -4
  372. package/lib/types/resolve-type.js +0 -6
  373. package/lib/types/resolve-type.js.map +0 -1
  374. package/lib/types/sym-table-items.d.ts +0 -4
  375. package/lib/types/sym-table-items.js +0 -2
  376. package/lib/types/sym-table-items.js.map +0 -1
  377. package/lib/types/transformation-case.d.ts +0 -1
  378. package/lib/types/transformation-case.js +0 -2
  379. package/lib/types/transformation-case.js.map +0 -1
  380. package/lib/types/transformations.d.ts +0 -11
  381. package/lib/types/transformations.js +0 -2
  382. package/lib/types/transformations.js.map +0 -1
  383. package/lib/types/ts-alias.d.ts +0 -10
  384. package/lib/types/ts-alias.js +0 -2
  385. package/lib/types/ts-alias.js.map +0 -1
  386. package/lib/types/ts-callback-interface.d.ts +0 -10
  387. package/lib/types/ts-callback-interface.js +0 -2
  388. package/lib/types/ts-callback-interface.js.map +0 -1
  389. package/lib/types/ts-callback.d.ts +0 -17
  390. package/lib/types/ts-callback.js +0 -2
  391. package/lib/types/ts-callback.js.map +0 -1
  392. package/lib/types/ts-class.d.ts +0 -85
  393. package/lib/types/ts-class.js +0 -2
  394. package/lib/types/ts-class.js.map +0 -1
  395. package/lib/types/ts-doc-tag.d.ts +0 -21
  396. package/lib/types/ts-doc-tag.js +0 -2
  397. package/lib/types/ts-doc-tag.js.map +0 -1
  398. package/lib/types/ts-doc.d.ts +0 -20
  399. package/lib/types/ts-doc.js +0 -2
  400. package/lib/types/ts-doc.js.map +0 -1
  401. package/lib/types/ts-enum.d.ts +0 -12
  402. package/lib/types/ts-enum.js +0 -2
  403. package/lib/types/ts-enum.js.map +0 -1
  404. package/lib/types/ts-function.d.ts +0 -44
  405. package/lib/types/ts-function.js +0 -2
  406. package/lib/types/ts-function.js.map +0 -1
  407. package/lib/types/ts-generic-parameter.d.ts +0 -8
  408. package/lib/types/ts-generic-parameter.js +0 -2
  409. package/lib/types/ts-generic-parameter.js.map +0 -1
  410. package/lib/types/ts-instance-parameter.d.ts +0 -4
  411. package/lib/types/ts-instance-parameter.js +0 -2
  412. package/lib/types/ts-instance-parameter.js.map +0 -1
  413. package/lib/types/ts-member.d.ts +0 -10
  414. package/lib/types/ts-member.js +0 -2
  415. package/lib/types/ts-member.js.map +0 -1
  416. package/lib/types/ts-method.d.ts +0 -5
  417. package/lib/types/ts-method.js +0 -2
  418. package/lib/types/ts-method.js.map +0 -1
  419. package/lib/types/ts-parameter.d.ts +0 -15
  420. package/lib/types/ts-parameter.js +0 -2
  421. package/lib/types/ts-parameter.js.map +0 -1
  422. package/lib/types/ts-property.d.ts +0 -17
  423. package/lib/types/ts-property.js +0 -2
  424. package/lib/types/ts-property.js.map +0 -1
  425. package/lib/types/ts-signal.d.ts +0 -17
  426. package/lib/types/ts-signal.js +0 -2
  427. package/lib/types/ts-signal.js.map +0 -1
  428. package/lib/types/ts-type-name.d.ts +0 -1
  429. package/lib/types/ts-type-name.js +0 -2
  430. package/lib/types/ts-type-name.js.map +0 -1
  431. package/lib/types/ts-type-separator.d.ts +0 -1
  432. package/lib/types/ts-type-separator.js +0 -2
  433. package/lib/types/ts-type-separator.js.map +0 -1
  434. package/lib/types/ts-type.d.ts +0 -22
  435. package/lib/types/ts-type.js +0 -2
  436. package/lib/types/ts-type.js.map +0 -1
  437. package/lib/types/ts-var.d.ts +0 -17
  438. package/lib/types/ts-var.js +0 -2
  439. package/lib/types/ts-var.js.map +0 -1
  440. package/lib/types/type-gir-alias.d.ts +0 -2
  441. package/lib/types/type-gir-alias.js +0 -2
  442. package/lib/types/type-gir-alias.js.map +0 -1
  443. package/lib/types/type-gir-class.d.ts +0 -2
  444. package/lib/types/type-gir-class.js +0 -2
  445. package/lib/types/type-gir-class.js.map +0 -1
  446. package/lib/types/type-gir-element.d.ts +0 -3
  447. package/lib/types/type-gir-element.js +0 -2
  448. package/lib/types/type-gir-element.js.map +0 -1
  449. package/lib/types/type-gir-enumeration-member.d.ts +0 -2
  450. package/lib/types/type-gir-enumeration-member.js +0 -2
  451. package/lib/types/type-gir-enumeration-member.js.map +0 -1
  452. package/lib/types/type-gir-enumeration.d.ts +0 -2
  453. package/lib/types/type-gir-enumeration.js +0 -2
  454. package/lib/types/type-gir-enumeration.js.map +0 -1
  455. package/lib/types/type-gir-function.d.ts +0 -1
  456. package/lib/types/type-gir-function.js +0 -2
  457. package/lib/types/type-gir-function.js.map +0 -1
  458. package/lib/types/type-gir-interface.d.ts +0 -2
  459. package/lib/types/type-gir-interface.js +0 -2
  460. package/lib/types/type-gir-interface.js.map +0 -1
  461. package/lib/types/type-gir-method.d.ts +0 -2
  462. package/lib/types/type-gir-method.js +0 -2
  463. package/lib/types/type-gir-method.js.map +0 -1
  464. package/lib/types/type-gir-parameter.d.ts +0 -1
  465. package/lib/types/type-gir-parameter.js +0 -2
  466. package/lib/types/type-gir-parameter.js.map +0 -1
  467. package/lib/types/type-gir-property.d.ts +0 -2
  468. package/lib/types/type-gir-property.js +0 -2
  469. package/lib/types/type-gir-property.js.map +0 -1
  470. package/lib/types/type-gir-variable.d.ts +0 -1
  471. package/lib/types/type-gir-variable.js +0 -2
  472. package/lib/types/type-gir-variable.js.map +0 -1
  473. package/lib/types/type-ts-element.d.ts +0 -3
  474. package/lib/types/type-ts-element.js +0 -2
  475. package/lib/types/type-ts-element.js.map +0 -1
  476. package/lib/types/type-ts-enumeration-member.d.ts +0 -2
  477. package/lib/types/type-ts-enumeration-member.js +0 -2
  478. package/lib/types/type-ts-enumeration-member.js.map +0 -1
  479. package/lib/types/type-ts-function.d.ts +0 -1
  480. package/lib/types/type-ts-function.js +0 -2
  481. package/lib/types/type-ts-function.js.map +0 -1
  482. package/lib/types/type-ts-property.d.ts +0 -1
  483. package/lib/types/type-ts-property.js +0 -2
  484. package/lib/types/type-ts-property.js.map +0 -1
  485. package/lib/types/user-config-load-result.d.ts +0 -6
  486. package/lib/types/user-config-load-result.js +0 -2
  487. package/lib/types/user-config-load-result.js.map +0 -1
  488. package/lib/types/user-config.d.ts +0 -42
  489. package/lib/types/user-config.js +0 -2
  490. package/lib/types/user-config.js.map +0 -1
  491. package/src/conflict-resolver.ts +0 -1358
  492. package/src/constants.ts +0 -29
  493. package/src/generator.ts +0 -10
  494. package/src/gir-factory.ts +0 -499
  495. package/src/gir-module.ts +0 -2816
  496. package/src/html-doc-generator.ts +0 -23
  497. package/src/injection/callbacks/gjs/Gio-2.0.ts +0 -37
  498. package/src/injection/callbacks/gjs/index.ts +0 -5
  499. package/src/injection/callbacks/index.ts +0 -6
  500. package/src/injection/callbacks/node-gtk/index.ts +0 -3
  501. package/src/injection/classes/GLib-2-0.ts +0 -36
  502. package/src/injection/classes/gjs/GLib-2.0.ts +0 -201
  503. package/src/injection/classes/gjs/GObject-2.0.ts +0 -635
  504. package/src/injection/classes/gjs/Gio-2.0.ts +0 -219
  505. package/src/injection/classes/gjs/index.ts +0 -7
  506. package/src/injection/classes/index.ts +0 -7
  507. package/src/injection/classes/node-gtk/GLib-2.0.ts +0 -20
  508. package/src/injection/classes/node-gtk/GObject-2.0.ts +0 -67
  509. package/src/injection/classes/node-gtk/Gdk-4.0.ts +0 -33
  510. package/src/injection/classes/node-gtk/Gio-2.0.ts +0 -15
  511. package/src/injection/classes/node-gtk/Graphene-1.0.ts +0 -134
  512. package/src/injection/classes/node-gtk/Gtk-3.0.ts +0 -32
  513. package/src/injection/classes/node-gtk/Gtk-4.0.ts +0 -53
  514. package/src/injection/classes/node-gtk/Pango-1.0.ts +0 -32
  515. package/src/injection/classes/node-gtk/index.ts +0 -21
  516. package/src/injection/index.ts +0 -3
  517. package/src/injection/injector.ts +0 -184
  518. package/src/logger.ts +0 -134
  519. package/src/messages.ts +0 -68
  520. package/src/symtable.ts +0 -70
  521. package/src/template-processor.ts +0 -233
  522. package/src/transformation.ts +0 -583
  523. package/src/type-definition-generator.ts +0 -1458
  524. package/src/types/answer-version.ts +0 -4
  525. package/src/types/build-type.ts +0 -1
  526. package/src/types/class-parent.ts +0 -12
  527. package/src/types/config-flags.ts +0 -5
  528. package/src/types/conflict-child-element.ts +0 -11
  529. package/src/types/conflict-grouped-element.ts +0 -7
  530. package/src/types/conflict-grouped-elements.ts +0 -5
  531. package/src/types/construct-name.ts +0 -11
  532. package/src/types/dependency-map.ts +0 -4
  533. package/src/types/dependency.ts +0 -14
  534. package/src/types/environment.ts +0 -1
  535. package/src/types/generate-config.ts +0 -35
  536. package/src/types/generator-type.ts +0 -4
  537. package/src/types/gir-alias-element.ts +0 -15
  538. package/src/types/gir-annotation.ts +0 -10
  539. package/src/types/gir-any-element.ts +0 -35
  540. package/src/types/gir-any-type.ts +0 -7
  541. package/src/types/gir-array-type.ts +0 -23
  542. package/src/types/gir-bitfield-element.ts +0 -20
  543. package/src/types/gir-boolean.ts +0 -1
  544. package/src/types/gir-boxed-element.ts +0 -19
  545. package/src/types/gir-c-include.ts +0 -7
  546. package/src/types/gir-callable-attrs.ts +0 -19
  547. package/src/types/gir-callable-param-element.ts +0 -45
  548. package/src/types/gir-callable-param.ts +0 -9
  549. package/src/types/gir-callable-return.ts +0 -25
  550. package/src/types/gir-callback-element.ts +0 -28
  551. package/src/types/gir-class-element.ts +0 -71
  552. package/src/types/gir-constant-element.ts +0 -17
  553. package/src/types/gir-constructor-element.ts +0 -18
  554. package/src/types/gir-direction.ts +0 -5
  555. package/src/types/gir-doc-element.ts +0 -73
  556. package/src/types/gir-enum-element.ts +0 -28
  557. package/src/types/gir-field-element.ts +0 -31
  558. package/src/types/gir-function-element.ts +0 -19
  559. package/src/types/gir-implements.ts +0 -9
  560. package/src/types/gir-include.ts +0 -9
  561. package/src/types/gir-info-attrs.ts +0 -16
  562. package/src/types/gir-info-elements.ts +0 -8
  563. package/src/types/gir-instance-parameter.ts +0 -25
  564. package/src/types/gir-interface-element.ts +0 -53
  565. package/src/types/gir-member-element.ts +0 -19
  566. package/src/types/gir-method-element.ts +0 -25
  567. package/src/types/gir-module-resolved-by.ts +0 -11
  568. package/src/types/gir-modules-grouped-map.ts +0 -5
  569. package/src/types/gir-modules-grouped.ts +0 -13
  570. package/src/types/gir-namespace.ts +0 -47
  571. package/src/types/gir-package.ts +0 -7
  572. package/src/types/gir-prerequisite.ts +0 -5
  573. package/src/types/gir-property-element.ts +0 -31
  574. package/src/types/gir-record-element.ts +0 -47
  575. package/src/types/gir-repository.ts +0 -20
  576. package/src/types/gir-signal.ts +0 -43
  577. package/src/types/gir-transfer-ownership-type.ts +0 -5
  578. package/src/types/gir-transfer-ownership.ts +0 -6
  579. package/src/types/gir-type.ts +0 -16
  580. package/src/types/gir-union-element.ts +0 -35
  581. package/src/types/gir-unparsed-number.ts +0 -2
  582. package/src/types/gir-var-args.ts +0 -6
  583. package/src/types/gir-virtual-method.ts +0 -22
  584. package/src/types/index.ts +0 -118
  585. package/src/types/inheritance-table.ts +0 -3
  586. package/src/types/injection-callback.ts +0 -20
  587. package/src/types/injection-class.ts +0 -30
  588. package/src/types/injection-function.ts +0 -23
  589. package/src/types/injection-generic-parameter.ts +0 -3
  590. package/src/types/injection-instance-parameter.ts +0 -3
  591. package/src/types/injection-parameter.ts +0 -9
  592. package/src/types/injection-property.ts +0 -7
  593. package/src/types/injection-type.ts +0 -3
  594. package/src/types/injection.ts +0 -6
  595. package/src/types/local-name-check.ts +0 -5
  596. package/src/types/local-name-type.ts +0 -1
  597. package/src/types/local-name.ts +0 -8
  598. package/src/types/local-names.ts +0 -5
  599. package/src/types/module-type.ts +0 -1
  600. package/src/types/parsed-gir.ts +0 -5
  601. package/src/types/part-of-class.ts +0 -9
  602. package/src/types/part-of-module.ts +0 -8
  603. package/src/types/resolve-type.ts +0 -4
  604. package/src/types/sym-table-items.ts +0 -5
  605. package/src/types/transformation-case.ts +0 -7
  606. package/src/types/transformations.ts +0 -12
  607. package/src/types/ts-alias.ts +0 -11
  608. package/src/types/ts-callback-interface.ts +0 -11
  609. package/src/types/ts-callback.ts +0 -21
  610. package/src/types/ts-class.ts +0 -109
  611. package/src/types/ts-doc-tag.ts +0 -23
  612. package/src/types/ts-doc.ts +0 -23
  613. package/src/types/ts-enum.ts +0 -15
  614. package/src/types/ts-function.ts +0 -59
  615. package/src/types/ts-generic-parameter.ts +0 -8
  616. package/src/types/ts-instance-parameter.ts +0 -4
  617. package/src/types/ts-member.ts +0 -11
  618. package/src/types/ts-method.ts +0 -6
  619. package/src/types/ts-parameter.ts +0 -20
  620. package/src/types/ts-property.ts +0 -22
  621. package/src/types/ts-signal.ts +0 -21
  622. package/src/types/ts-type-name.ts +0 -1
  623. package/src/types/ts-type-separator.ts +0 -1
  624. package/src/types/ts-type.ts +0 -25
  625. package/src/types/ts-var.ts +0 -21
  626. package/src/types/type-gir-alias.ts +0 -2
  627. package/src/types/type-gir-class.ts +0 -2
  628. package/src/types/type-gir-element.ts +0 -25
  629. package/src/types/type-gir-enumeration-member.ts +0 -2
  630. package/src/types/type-gir-enumeration.ts +0 -2
  631. package/src/types/type-gir-function.ts +0 -8
  632. package/src/types/type-gir-interface.ts +0 -2
  633. package/src/types/type-gir-method.ts +0 -2
  634. package/src/types/type-gir-parameter.ts +0 -1
  635. package/src/types/type-gir-property.ts +0 -2
  636. package/src/types/type-gir-variable.ts +0 -1
  637. package/src/types/type-ts-element.ts +0 -13
  638. package/src/types/type-ts-enumeration-member.ts +0 -2
  639. package/src/types/type-ts-function.ts +0 -1
  640. package/src/types/type-ts-property.ts +0 -1
  641. package/src/types/user-config-load-result.ts +0 -6
  642. package/src/types/user-config.ts +0 -43
  643. package/templates/Cogl-2.0.d.ts +0 -0
  644. package/templates/Gjs/GObject-2.0.d.ts +0 -238
  645. package/templates/Gjs/Gio-2.0.d.ts +0 -64
  646. package/templates/Gjs/Gjs.d.ts +0 -137
  647. package/templates/Gjs/Gjs.js +0 -21
  648. package/templates/Gjs/GnomeShell.d.ts +0 -122
  649. package/templates/Gjs/GnomeShell.js +0 -10
  650. package/templates/Gjs/index.d.ts +0 -594
  651. package/templates/Gjs/index.js +0 -4
  652. package/templates/Gjs/misc/dbusUtils.d.ts +0 -15
  653. package/templates/Gjs/misc/dbusUtils.js +0 -6
  654. package/templates/Gjs/misc/extensionUtils.d.ts +0 -99
  655. package/templates/Gjs/misc/extensionUtils.js +0 -6
  656. package/templates/Gjs/misc/fileUtils.d.ts +0 -49
  657. package/templates/Gjs/misc/fileUtils.js +0 -6
  658. package/templates/Gjs/misc/gnomeSession.d.ts +0 -72
  659. package/templates/Gjs/misc/gnomeSession.js +0 -6
  660. package/templates/Gjs/module.d.ts +0 -10
  661. package/templates/Gjs/module.js +0 -16
  662. package/templates/Gjs/ui/userWidget.d.ts +0 -10
  663. package/templates/Gjs/ui/userWidget.js +0 -6
  664. package/templates/Granite-1.0.d.ts +0 -7
  665. package/templates/Granite-7.0.d.ts +0 -7
  666. package/templates/GstBase-0.10.d.ts +0 -5
  667. package/templates/RygelServer-2.6.d.ts +0 -3
  668. package/templates/node-gtk/GObject-2.0.d.ts +0 -57
  669. package/templates/node-gtk/index.d.ts +0 -40
  670. package/templates/node-gtk/index.js +0 -9
  671. package/templates/node-gtk/module.d.ts +0 -10
  672. package/templates/node-gtk/module.js +0 -17
package/src/config.ts CHANGED
@@ -5,18 +5,21 @@
5
5
  import inquirer from 'inquirer'
6
6
  import { Options } from 'yargs'
7
7
  import { cosmiconfig, Options as ConfigSearchOptions } from 'cosmiconfig'
8
- import Path from 'path'
9
- import OS from 'os'
10
- import { merge, isEqual, readTsJsConfig } from './utils.js'
11
- import type { Environment, UserConfig, ConfigFlags, UserConfigLoadResult, GenerateConfig } from './types/index.js'
12
- import { promises as fs } from 'fs'
13
- import { Logger } from './logger.js'
14
- import { APP_NAME, APP_USAGE } from './constants.js'
8
+ import { join, extname, dirname, resolve } from 'path'
9
+ import { writeFile } from 'fs/promises'
15
10
  import {
16
- WARN_USE_NAMESPACE_ON_TYPES,
17
- WARN_USE_NAMESPACE_ON_ESM,
11
+ merge,
12
+ isEqual,
13
+ Logger,
14
+ APP_NAME,
15
+ APP_USAGE,
18
16
  ERROR_CONFIG_EXTENSION_UNSUPPORTED,
19
- } from './messages.js'
17
+ WARN_USE_ESM_FOR_ALIAS,
18
+ WARN_USE_GJS_FOR_ALIAS,
19
+ } from '@ts-for-gir/lib'
20
+ import { readTsJsConfig } from './utils.js'
21
+
22
+ import type { Environment, UserConfig, ConfigFlags, UserConfigLoadResult, GenerateConfig } from '@ts-for-gir/lib'
20
23
 
21
24
  export class Config {
22
25
  static appName = APP_NAME
@@ -27,28 +30,30 @@ export class Config {
27
30
  * Default cli flag and argument values
28
31
  */
29
32
  static defaults = {
30
- environments: ['gjs', 'node'],
31
- pretty: false,
33
+ environments: ['gjs'],
32
34
  print: false,
33
35
  configName: '.ts-for-girrc.js',
36
+ root: process.cwd(),
34
37
  outdir: './@types',
35
- girDirectories: OS.platform() === 'darwin' ? ['/usr/local/share/gir-1.0'] : ['/usr/share/gir-1.0'],
38
+ girDirectories: getDefaultGirDirectories(),
36
39
  modules: ['*'],
37
40
  ignore: [],
38
41
  verbose: false,
39
42
  ignoreVersionConflicts: false,
40
- useNamespace: false,
43
+ noNamespace: false,
41
44
  buildType: 'lib',
42
- moduleType: 'commonjs',
45
+ moduleType: 'esm',
43
46
  noComments: false,
44
47
  noDebugComments: false,
45
- noCheck: false,
46
48
  fixConflicts: true,
47
49
  noDOMLib: false,
48
- gnomeShellTypes: false,
50
+ generateAlias: false,
51
+ promisify: true,
52
+ npmScope: '@girs',
53
+ package: false,
49
54
  }
50
55
 
51
- static configFilePath = Path.join(process.cwd(), Config.defaults.configName)
56
+ static configFilePath = join(process.cwd(), Config.defaults.configName)
52
57
 
53
58
  /**
54
59
  * CLI options used in commands/generate.ts and commands/list.ts
@@ -68,6 +73,12 @@ export class Config {
68
73
  default: Config.defaults.girDirectories,
69
74
  normalize: true,
70
75
  },
76
+ root: {
77
+ type: 'string',
78
+ description: 'Root directory of your project',
79
+ default: Config.defaults.root,
80
+ normalize: true,
81
+ },
71
82
  outdir: {
72
83
  type: 'string',
73
84
  alias: 'o',
@@ -105,16 +116,10 @@ export class Config {
105
116
  type: 'string',
106
117
  alias: 't',
107
118
  description: 'Specify what module code is generated.',
108
- choices: ['esm', 'commonjs'],
119
+ choices: ['esm', 'commonjs', 'cjs'],
109
120
  default: Config.defaults.moduleType,
110
121
  normalize: true,
111
122
  },
112
- pretty: {
113
- type: 'boolean',
114
- description: 'Prettifies the generated .d.ts files',
115
- default: Config.defaults.pretty,
116
- normalize: true,
117
- },
118
123
  verbose: {
119
124
  type: 'boolean',
120
125
  alias: 'v',
@@ -141,11 +146,11 @@ export class Config {
141
146
  default: Config.defaults.configName,
142
147
  normalize: true,
143
148
  },
144
- useNamespace: {
149
+ noNamespace: {
145
150
  type: 'boolean',
146
151
  alias: 'd',
147
- description: 'Export all symbols for each module as a namespace',
148
- default: Config.defaults.useNamespace,
152
+ description: 'Do not export all symbols for each module as a namespace',
153
+ default: Config.defaults.noNamespace,
149
154
  normalize: true,
150
155
  },
151
156
  noComments: {
@@ -161,12 +166,6 @@ export class Config {
161
166
  default: Config.defaults.noDebugComments,
162
167
  normalize: true,
163
168
  },
164
- noCheck: {
165
- type: 'boolean',
166
- description: 'Disable typescript semantic checks using @ts-nocheck',
167
- default: Config.defaults.noCheck,
168
- normalize: true,
169
- },
170
169
  fixConflicts: {
171
170
  type: 'boolean',
172
171
  description: 'Fix Inheritance and implementation type conflicts',
@@ -179,10 +178,29 @@ export class Config {
179
178
  default: Config.defaults.noDOMLib,
180
179
  normalize: true,
181
180
  },
182
- gnomeShellTypes: {
181
+ generateAlias: {
182
+ type: 'boolean',
183
+ alias: 'a',
184
+ description: 'Generate an alias tsconfig file to support GJS ESM module imports',
185
+ default: Config.defaults.generateAlias,
186
+ normalize: true,
187
+ },
188
+ promisify: {
183
189
  type: 'boolean',
184
- description: 'Generate types for GNOME Shell',
185
- default: Config.defaults.gnomeShellTypes,
190
+ description: 'Generate promisified functions for async/finish calls',
191
+ default: Config.defaults.promisify,
192
+ normalize: true,
193
+ },
194
+ npmScope: {
195
+ type: 'string',
196
+ description: 'Scope of the generated NPM packages',
197
+ default: Config.defaults.npmScope,
198
+ normalize: true,
199
+ },
200
+ package: {
201
+ type: 'boolean',
202
+ description: 'Generates an NPM compatible packages for each GIR module',
203
+ default: Config.defaults.package,
186
204
  normalize: true,
187
205
  },
188
206
  }
@@ -193,23 +211,25 @@ export class Config {
193
211
  static generateOptions = {
194
212
  modules: this.options.modules,
195
213
  girDirectories: this.options.girDirectories,
214
+ root: this.options.root,
196
215
  outdir: this.options.outdir,
197
216
  environments: this.options.environments,
198
217
  ignore: this.options.ignore,
199
218
  buildType: this.options.buildType,
200
219
  moduleType: this.options.moduleType,
201
- pretty: this.options.pretty,
202
220
  verbose: this.options.verbose,
203
221
  ignoreVersionConflicts: this.options.ignoreVersionConflicts,
204
222
  print: this.options.print,
205
223
  configName: this.options.configName,
206
- useNamespace: this.options.useNamespace,
224
+ noNamespace: this.options.noNamespace,
207
225
  noComments: this.options.noComments,
208
226
  noDebugComments: this.options.noDebugComments,
209
- noCheck: this.options.noCheck,
210
227
  noDOMLib: this.options.noDOMLib,
211
228
  fixConflicts: this.options.fixConflicts,
212
- gnomeShellTypes: this.options.gnomeShellTypes,
229
+ generateAlias: this.options.generateAlias,
230
+ promisify: this.options.promisify,
231
+ npmScope: this.options.npmScope,
232
+ package: this.options.package,
213
233
  }
214
234
 
215
235
  static listOptions = {
@@ -220,16 +240,27 @@ export class Config {
220
240
  verbose: Config.options.verbose,
221
241
  }
222
242
 
243
+ static docOptions = {
244
+ modules: this.options.modules,
245
+ girDirectories: Config.options.girDirectories,
246
+ outdir: Config.options.outdir,
247
+ environments: Config.options.environments,
248
+ ignore: Config.options.ignore,
249
+ verbose: Config.options.verbose,
250
+ ignoreVersionConflicts: Config.options.ignoreVersionConflicts,
251
+ configName: Config.options.configName,
252
+ }
253
+
223
254
  /**
224
- * Overwrites values in the user config
255
+ * Overwrites values in the user config file
225
256
  * @param configsToAdd
226
257
  */
227
- public static async addToConfig(configsToAdd: Partial<UserConfig>): Promise<void> {
228
- const userConfig = await this.loadConfigFile()
258
+ public static async addToConfig(configsToAdd: Partial<UserConfig>, configName?: string): Promise<void> {
259
+ const userConfig = await this.loadConfigFile(configName)
229
260
  const path = userConfig?.filepath || this.configFilePath
230
261
  const configToStore = {}
231
262
  merge(configToStore, userConfig?.config || {}, configsToAdd)
232
- const fileExtension = Path.extname(path)
263
+ const fileExtension = extname(path)
233
264
  let writeConfigString = ''
234
265
  switch (fileExtension) {
235
266
  case '.js':
@@ -243,7 +274,7 @@ export class Config {
243
274
  break
244
275
  }
245
276
  if (writeConfigString && path) {
246
- return fs.writeFile(path, writeConfigString)
277
+ return writeFile(path, writeConfigString)
247
278
  }
248
279
  }
249
280
 
@@ -276,29 +307,32 @@ export class Config {
276
307
  if (configName) {
277
308
  configSearchOptions.searchPlaces = [configName]
278
309
  }
279
- const userConfig: UserConfigLoadResult | null = await cosmiconfig(Config.appName, configSearchOptions).search()
280
- if (userConfig?.filepath) {
281
- Config.configFilePath = userConfig?.filepath
310
+ const configFile: UserConfigLoadResult | null = await cosmiconfig(Config.appName, configSearchOptions).search()
311
+ if (configFile?.filepath) {
312
+ Config.configFilePath = configFile.filepath
282
313
  }
283
- return userConfig
314
+
315
+ return configFile
284
316
  }
285
317
 
286
318
  public static getGenerateConfig(config: UserConfig, environment: Environment = 'gjs'): GenerateConfig {
287
319
  const generateConfig: GenerateConfig = {
288
320
  environment: environment,
289
321
  girDirectories: config.girDirectories,
322
+ root: config.root,
290
323
  outdir: config.outdir,
291
- pretty: config.pretty,
292
324
  verbose: config.verbose,
293
325
  buildType: config.buildType,
294
326
  moduleType: config.moduleType,
295
- useNamespace: config.useNamespace,
327
+ noNamespace: config.noNamespace,
296
328
  noComments: config.noComments,
297
329
  noDebugComments: config.noDebugComments,
298
- noCheck: config.noCheck,
299
330
  fixConflicts: config.fixConflicts,
300
331
  noDOMLib: config.noDOMLib,
301
- gnomeShellTypes: config.gnomeShellTypes,
332
+ generateAlias: config.generateAlias,
333
+ promisify: config.promisify,
334
+ npmScope: config.npmScope,
335
+ package: config.package,
302
336
  }
303
337
  return generateConfig
304
338
  }
@@ -309,7 +343,7 @@ export class Config {
309
343
  ? false // NoLib makes typescript to ignore the lib property
310
344
  : Array.isArray(tsCompilerOptions.lib)
311
345
  ? tsCompilerOptions.lib.some((lib) => lib.toLowerCase().startsWith('dom'))
312
- : true // Typescript icludes DOM lib by default
346
+ : true // Typescript includes DOM lib by default
313
347
 
314
348
  if (config.environments.includes('gjs') && tsConfigHasDOMLib && !config.noDOMLib) {
315
349
  const answer = (
@@ -331,17 +365,14 @@ export class Config {
331
365
  }
332
366
 
333
367
  public static async validate(config: UserConfig): Promise<UserConfig> {
334
- if (config.buildType === 'types') {
335
- if (config.useNamespace !== true) {
336
- Logger.warn(WARN_USE_NAMESPACE_ON_TYPES)
337
- config.useNamespace = true
368
+ if (config.generateAlias) {
369
+ if (!config.environments.includes('gjs')) {
370
+ Logger.warn(WARN_USE_GJS_FOR_ALIAS)
371
+ config.environments.push('gjs')
338
372
  }
339
- }
340
-
341
- if (config.moduleType === 'esm') {
342
- if (config.useNamespace !== true) {
343
- Logger.warn(WARN_USE_NAMESPACE_ON_ESM)
344
- config.useNamespace = true
373
+ if (config.moduleType !== 'esm') {
374
+ Logger.warn(WARN_USE_ESM_FOR_ALIAS)
375
+ config.moduleType = 'esm'
345
376
  }
346
377
  }
347
378
 
@@ -356,7 +387,8 @@ export class Config {
356
387
  * @param options
357
388
  */
358
389
  public static async load(options: ConfigFlags): Promise<UserConfig> {
359
- const configFile = (await this.loadConfigFile(options.configName))?.config || {}
390
+ const configFile = await this.loadConfigFile(options.configName)
391
+ const configFileData = configFile?.config || {}
360
392
 
361
393
  const config: UserConfig = {
362
394
  environments: options.environments,
@@ -364,117 +396,181 @@ export class Config {
364
396
  moduleType: options.moduleType,
365
397
  verbose: options.verbose,
366
398
  ignoreVersionConflicts: options.ignoreVersionConflicts,
367
- pretty: options.pretty,
368
399
  print: options.print,
400
+ root: options.root,
369
401
  outdir: options.outdir,
370
402
  girDirectories: options.girDirectories,
371
403
  ignore: options.ignore,
372
404
  modules: options.modules,
373
- useNamespace: options.useNamespace,
405
+ noNamespace: options.noNamespace,
374
406
  noComments: options.noComments,
375
407
  noDebugComments: options.noDebugComments,
376
- noCheck: options.noCheck,
377
408
  fixConflicts: options.fixConflicts,
378
409
  noDOMLib: options.noDOMLib,
379
- gnomeShellTypes: options.gnomeShellTypes,
410
+ generateAlias: options.generateAlias,
411
+ promisify: options.promisify,
412
+ npmScope: options.npmScope,
413
+ package: options.package,
380
414
  }
381
415
 
382
- if (configFile) {
416
+ if (configFileData) {
383
417
  // environments
384
- if (isEqual(config.environments, Config.defaults.environments) && configFile.environments) {
385
- config.environments = configFile.environments
418
+ if (isEqual(config.environments, Config.defaults.environments) && configFileData.environments) {
419
+ config.environments = configFileData.environments
386
420
  }
387
421
  // buildType
388
- if (config.buildType === Config.options.buildType.default && configFile.buildType) {
389
- config.buildType = configFile.buildType
422
+ if (config.buildType === Config.options.buildType.default && configFileData.buildType) {
423
+ config.buildType = configFileData.buildType
390
424
  }
391
425
  // moduleType
392
- if (config.moduleType === Config.options.moduleType.default && configFile.moduleType) {
393
- config.moduleType = configFile.moduleType
426
+ if (config.moduleType === Config.options.moduleType.default && configFileData.moduleType) {
427
+ config.moduleType = configFileData.moduleType
394
428
  }
395
429
  // verbose
396
- if (config.verbose === Config.options.verbose.default && typeof configFile.verbose === 'boolean') {
397
- config.verbose = configFile.verbose
430
+ if (config.verbose === Config.options.verbose.default && typeof configFileData.verbose === 'boolean') {
431
+ config.verbose = configFileData.verbose
398
432
  }
399
433
  // ignoreVersionConflicts
400
434
  if (
401
435
  config.ignoreVersionConflicts === Config.options.ignoreVersionConflicts.default &&
402
- typeof configFile.ignoreVersionConflicts === 'boolean'
436
+ typeof configFileData.ignoreVersionConflicts === 'boolean'
403
437
  ) {
404
- config.ignoreVersionConflicts = configFile.ignoreVersionConflicts
405
- }
406
- // pretty
407
- if (config.pretty === Config.options.pretty.default && typeof configFile.pretty === 'boolean') {
408
- config.pretty = configFile.pretty
438
+ config.ignoreVersionConflicts = configFileData.ignoreVersionConflicts
409
439
  }
410
440
  // print
411
- if (config.print === Config.options.print.default && typeof configFile.print === 'boolean') {
412
- config.print = configFile.print
441
+ if (config.print === Config.options.print.default && typeof configFileData.print === 'boolean') {
442
+ config.print = configFileData.print
443
+ }
444
+ // root
445
+ if (config.root === Config.options.root.default && (configFileData.root || configFile?.filepath)) {
446
+ // Use the config file path as the root path if no root path is set
447
+ config.root =
448
+ configFileData.root ||
449
+ (configFile?.filepath ? dirname(configFile.filepath) : (Config.options.root.default as string))
413
450
  }
414
451
  // outdir
415
- if (config.outdir === Config.options.outdir.default && configFile.outdir) {
416
- config.outdir = config.print ? null : configFile.outdir
452
+ if (config.outdir === Config.options.outdir.default && configFileData.outdir) {
453
+ config.outdir = config.print ? null : configFileData.outdir
417
454
  }
418
455
  // girDirectories
419
- if (config.girDirectories === Config.options.girDirectories.default && configFile.girDirectories) {
420
- config.girDirectories = configFile.girDirectories
456
+ if (config.girDirectories === Config.options.girDirectories.default && configFileData.girDirectories) {
457
+ config.girDirectories = configFileData.girDirectories
421
458
  }
422
459
  // ignore
423
460
  if (
424
461
  (!config.ignore || config.ignore.length <= 0 || isEqual(config.ignore, Config.defaults.ignore)) &&
425
- configFile.ignore
462
+ configFileData.ignore
426
463
  ) {
427
- config.ignore = configFile.ignore
464
+ config.ignore = configFileData.ignore
428
465
  }
429
466
  // modules
430
467
  if (
431
468
  (config.modules.length <= 0 || isEqual(config.modules, Config.defaults.modules)) &&
432
- configFile.modules
469
+ configFileData.modules
433
470
  ) {
434
- config.modules = configFile.modules
471
+ config.modules = configFileData.modules
435
472
  }
436
- // useNamespace
473
+ // noNamespace
437
474
  if (
438
- config.useNamespace === Config.options.useNamespace.default &&
439
- typeof configFile.useNamespace === 'boolean'
475
+ config.noNamespace === Config.options.noNamespace.default &&
476
+ typeof configFileData.noNamespace === 'boolean'
440
477
  ) {
441
- config.useNamespace = configFile.useNamespace
478
+ config.noNamespace = configFileData.noNamespace
442
479
  }
443
480
  // noComments
444
- if (config.noComments === Config.options.noComments.default && typeof configFile.noComments === 'boolean') {
445
- config.noComments = configFile.noComments
481
+ if (
482
+ config.noComments === Config.options.noComments.default &&
483
+ typeof configFileData.noComments === 'boolean'
484
+ ) {
485
+ config.noComments = configFileData.noComments
446
486
  }
447
487
  // noDebugComments
448
488
  if (
449
489
  config.noDebugComments === Config.options.noDebugComments.default &&
450
- typeof configFile.noDebugComments === 'boolean'
490
+ typeof configFileData.noDebugComments === 'boolean'
451
491
  ) {
452
- config.noDebugComments = configFile.noDebugComments
453
- }
454
- // noCheck
455
- if (config.noCheck === Config.options.noCheck.default && typeof configFile.noCheck === 'boolean') {
456
- config.noCheck = configFile.noCheck
492
+ config.noDebugComments = configFileData.noDebugComments
457
493
  }
458
494
  // fixConflicts
459
495
  if (
460
496
  config.fixConflicts === Config.options.fixConflicts.default &&
461
- typeof configFile.fixConflicts === 'boolean'
497
+ typeof configFileData.fixConflicts === 'boolean'
462
498
  ) {
463
- config.fixConflicts = configFile.fixConflicts
499
+ config.fixConflicts = configFileData.fixConflicts
464
500
  }
465
501
  // noDOMLib
466
- if (config.noDOMLib === Config.options.noDOMLib.default && typeof configFile.noDOMLib === 'boolean') {
467
- config.noDOMLib = configFile.noDOMLib
502
+ if (config.noDOMLib === Config.options.noDOMLib.default && typeof configFileData.noDOMLib === 'boolean') {
503
+ config.noDOMLib = configFileData.noDOMLib
504
+ }
505
+ // generateAlias
506
+ if (
507
+ config.generateAlias === Config.options.generateAlias.default &&
508
+ typeof configFileData.generateAlias === 'boolean'
509
+ ) {
510
+ config.generateAlias = configFileData.generateAlias
468
511
  }
469
- // gnomeShellTypes
512
+ // promisify
470
513
  if (
471
- config.gnomeShellTypes === Config.options.gnomeShellTypes.default &&
472
- typeof configFile.gnomeShellTypes === 'boolean'
514
+ config.promisify === Config.options.promisify.default &&
515
+ typeof configFileData.promisify === 'boolean'
473
516
  ) {
474
- config.gnomeShellTypes = configFile.gnomeShellTypes
517
+ config.promisify = configFileData.promisify
475
518
  }
519
+ // npmScope
520
+ if (config.npmScope === Config.options.npmScope.default && configFileData.npmScope) {
521
+ config.npmScope = configFileData.npmScope
522
+ }
523
+ // package
524
+ if (config.package === Config.options.package.default && typeof configFileData.package === 'boolean') {
525
+ config.package = configFileData.package
526
+ }
527
+ }
528
+
529
+ if ((config.moduleType as string) === 'commonjs') {
530
+ config.moduleType = 'cjs'
531
+ }
532
+
533
+ // If outdir is not absolute, make it absolute to the root path
534
+ if (config.outdir && !config.outdir?.startsWith('/')) {
535
+ config.outdir = resolve(config.root, config.outdir)
536
+ }
537
+
538
+ // Same for girDirectories
539
+ if (config.girDirectories) {
540
+ config.girDirectories = config.girDirectories.map((dir) => {
541
+ if (!dir.startsWith('/')) {
542
+ return resolve(config.root, dir)
543
+ }
544
+ return dir
545
+ })
476
546
  }
477
547
 
478
548
  return await this.validate(config)
479
549
  }
480
550
  }
551
+
552
+ function getDefaultGirDirectories(): string[] {
553
+ const girDirectories = [
554
+ '/usr/local/share/gir-1.0',
555
+ '/usr/share/gir-1.0',
556
+ '/usr/share/gnome-shell',
557
+ '/usr/share/gnome-shell/gir-1.0',
558
+ '/usr/lib64/mutter-10',
559
+ '/usr/lib64/mutter-11',
560
+ '/usr/lib64/mutter-12',
561
+ '/usr/lib/x86_64-linux-gnu/mutter-10',
562
+ '/usr/lib/x86_64-linux-gnu/mutter-11',
563
+ '/usr/lib/x86_64-linux-gnu/mutter-12',
564
+ ]
565
+ // NixOS and other distributions does not have a /usr/local/share directory.
566
+ // Instead, the nix store paths with Gir files are set as XDG_DATA_DIRS.
567
+ // See https://github.com/NixOS/nixpkgs/blob/96e18717904dfedcd884541e5a92bf9ff632cf39/pkgs/development/libraries/gobject-introspection/setup-hook.sh#L7-L10
568
+ const dataDirs = process.env['XDG_DATA_DIRS']?.split(':') || []
569
+ for (let dataDir of dataDirs) {
570
+ dataDir = join(dataDir, 'gir-1.0')
571
+ if (!girDirectories.includes(dataDir)) {
572
+ girDirectories.push(dataDir)
573
+ }
574
+ }
575
+ return girDirectories
576
+ }
@@ -1,18 +1,18 @@
1
- import fs from 'fs'
2
- import { GirModule } from './gir-module.js'
3
- import { Generator } from './generator.js'
4
- import TypeDefinitionGenerator from './type-definition-generator.js'
5
- import HTMLDocGenerator from './html-doc-generator.js'
6
- import { Logger } from './logger.js'
7
- import { getEnvironmentDir } from './utils.js'
8
- import { InheritanceTable, GenerateConfig, GirModulesGrouped, GeneratorType } from './types/index.js'
1
+ import { mkdir } from 'fs/promises'
9
2
  import {
3
+ GirModule,
4
+ Logger,
10
5
  START_MODULE,
11
6
  FILE_PARSING_DONE,
12
7
  TSDATA_PARSING_DONE,
13
8
  GENERATING_TYPES_DONE,
14
9
  ERROR_NO_MODULE_SPECIFIED,
15
- } from './messages.js'
10
+ } from '@ts-for-gir/lib'
11
+ import { GeneratorType, Generator } from '@ts-for-gir/generator-base'
12
+ import { TypeDefinitionGenerator } from '@ts-for-gir/generator-typescript'
13
+ import { HtmlDocGenerator } from '@ts-for-gir/generator-html-doc'
14
+
15
+ import type { InheritanceTable, GenerateConfig, GirModulesGrouped } from '@ts-for-gir/lib'
16
16
 
17
17
  export class GenerationHandler {
18
18
  log: Logger
@@ -25,7 +25,7 @@ export class GenerationHandler {
25
25
  this.generator = new TypeDefinitionGenerator(config)
26
26
  break
27
27
  case GeneratorType.HTML_DOC:
28
- this.generator = new HTMLDocGenerator(config)
28
+ this.generator = new HtmlDocGenerator(config)
29
29
  break
30
30
  default:
31
31
  throw new Error('Unknown Generator')
@@ -65,11 +65,10 @@ export class GenerationHandler {
65
65
 
66
66
  for (const girModule of girModules) {
67
67
  if (this.config.outdir) {
68
- const outputDir = getEnvironmentDir(this.config.environment, this.config.outdir)
69
- fs.mkdirSync(outputDir, { recursive: true })
68
+ await mkdir(this.config.outdir, { recursive: true })
70
69
  }
71
70
  this.log.log(` - ${girModule.packageName} ...`)
72
- girModule.start()
71
+ girModule.start(girModules)
73
72
  }
74
73
 
75
74
  await this.generator.start(girModules, girModulesGrouped, inheritanceTable)
package/src/index.ts CHANGED
@@ -1,17 +1,5 @@
1
- export * from './types/index.js'
2
- export * from './injection/index.js'
3
1
  export * from './commands/index.js'
4
2
  export * from './config.js'
5
- export * from './conflict-resolver.js'
6
- export * from './constants.js'
7
3
  export * from './generation-handler.js'
8
- export * from './gir-factory.js'
9
- export * from './gir-module.js'
10
- export * from './logger.js'
11
- export * from './messages.js'
12
4
  export * from './module-loader.js'
13
- export * from './symtable.js'
14
- export * from './template-processor.js'
15
- export * from './transformation.js'
16
5
  export * from './utils.js'
17
- export { default as templateProcessor } from './template-processor.js'