@ts-for-gir/cli 3.0.0-beta.2
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.
- package/README.md +156 -0
- package/lib/commands/doc.d.ts +27 -0
- package/lib/commands/doc.js +48 -0
- package/lib/commands/doc.js.map +1 -0
- package/lib/commands/generate.d.ts +45 -0
- package/lib/commands/generate.js +71 -0
- package/lib/commands/generate.js.map +1 -0
- package/lib/commands/index.d.ts +3 -0
- package/lib/commands/index.js +4 -0
- package/lib/commands/index.js.map +1 -0
- package/lib/commands/list.d.ts +21 -0
- package/lib/commands/list.js +77 -0
- package/lib/commands/list.js.map +1 -0
- package/lib/config.d.ts +103 -0
- package/lib/config.js +385 -0
- package/lib/config.js.map +1 -0
- package/lib/conflict-resolver.d.ts +154 -0
- package/lib/conflict-resolver.js +1095 -0
- package/lib/conflict-resolver.js.map +1 -0
- package/lib/constants.d.ts +18 -0
- package/lib/constants.js +23 -0
- package/lib/constants.js.map +1 -0
- package/lib/generation-handler.d.ts +12 -0
- package/lib/generation-handler.js +63 -0
- package/lib/generation-handler.js.map +1 -0
- package/lib/generator.d.ts +5 -0
- package/lib/generator.js +2 -0
- package/lib/generator.js.map +1 -0
- package/lib/gir-factory.d.ts +50 -0
- package/lib/gir-factory.js +354 -0
- package/lib/gir-factory.js.map +1 -0
- package/lib/gir-module.d.ts +256 -0
- package/lib/gir-module.js +2075 -0
- package/lib/gir-module.js.map +1 -0
- package/lib/html-doc-generator.d.ts +13 -0
- package/lib/html-doc-generator.js +18 -0
- package/lib/html-doc-generator.js.map +1 -0
- package/lib/index.d.ts +17 -0
- package/lib/index.js +18 -0
- package/lib/index.js.map +1 -0
- package/lib/injection/callbacks/gjs/Gio-2.0.d.ts +2 -0
- package/lib/injection/callbacks/gjs/Gio-2.0.js +36 -0
- package/lib/injection/callbacks/gjs/Gio-2.0.js.map +1 -0
- package/lib/injection/callbacks/gjs/index.d.ts +2 -0
- package/lib/injection/callbacks/gjs/index.js +3 -0
- package/lib/injection/callbacks/gjs/index.js.map +1 -0
- package/lib/injection/callbacks/index.d.ts +4 -0
- package/lib/injection/callbacks/index.js +4 -0
- package/lib/injection/callbacks/index.js.map +1 -0
- package/lib/injection/callbacks/node-gtk/index.d.ts +2 -0
- package/lib/injection/callbacks/node-gtk/index.js +2 -0
- package/lib/injection/callbacks/node-gtk/index.js.map +1 -0
- package/lib/injection/classes/GLib-2-0.d.ts +2 -0
- package/lib/injection/classes/GLib-2-0.js +35 -0
- package/lib/injection/classes/GLib-2-0.js.map +1 -0
- package/lib/injection/classes/gjs/GLib-2.0.d.ts +2 -0
- package/lib/injection/classes/gjs/GLib-2.0.js +74 -0
- package/lib/injection/classes/gjs/GLib-2.0.js.map +1 -0
- package/lib/injection/classes/gjs/GObject-2.0.d.ts +2 -0
- package/lib/injection/classes/gjs/GObject-2.0.js +634 -0
- package/lib/injection/classes/gjs/GObject-2.0.js.map +1 -0
- package/lib/injection/classes/gjs/Gio-2.0.d.ts +5 -0
- package/lib/injection/classes/gjs/Gio-2.0.js +218 -0
- package/lib/injection/classes/gjs/Gio-2.0.js.map +1 -0
- package/lib/injection/classes/gjs/index.d.ts +2 -0
- package/lib/injection/classes/gjs/index.js +5 -0
- package/lib/injection/classes/gjs/index.js.map +1 -0
- package/lib/injection/classes/index.d.ts +4 -0
- package/lib/injection/classes/index.js +5 -0
- package/lib/injection/classes/index.js.map +1 -0
- package/lib/injection/classes/node-gtk/GLib-2.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/GLib-2.0.js +19 -0
- package/lib/injection/classes/node-gtk/GLib-2.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/GObject-2.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/GObject-2.0.js +66 -0
- package/lib/injection/classes/node-gtk/GObject-2.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Gdk-4.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Gdk-4.0.js +32 -0
- package/lib/injection/classes/node-gtk/Gdk-4.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Gio-2.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Gio-2.0.js +14 -0
- package/lib/injection/classes/node-gtk/Gio-2.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Graphene-1.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Graphene-1.0.js +133 -0
- package/lib/injection/classes/node-gtk/Graphene-1.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Gtk-3.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Gtk-3.0.js +31 -0
- package/lib/injection/classes/node-gtk/Gtk-3.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Gtk-4.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Gtk-4.0.js +52 -0
- package/lib/injection/classes/node-gtk/Gtk-4.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Pango-1.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Pango-1.0.js +31 -0
- package/lib/injection/classes/node-gtk/Pango-1.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/index.d.ts +2 -0
- package/lib/injection/classes/node-gtk/index.js +19 -0
- package/lib/injection/classes/node-gtk/index.js.map +1 -0
- package/lib/injection/index.d.ts +3 -0
- package/lib/injection/index.js +4 -0
- package/lib/injection/index.js.map +1 -0
- package/lib/injection/injector.d.ts +17 -0
- package/lib/injection/injector.js +136 -0
- package/lib/injection/injector.js.map +1 -0
- package/lib/logger.d.ts +36 -0
- package/lib/logger.js +133 -0
- package/lib/logger.js.map +1 -0
- package/lib/messages.d.ts +30 -0
- package/lib/messages.js +45 -0
- package/lib/messages.js.map +1 -0
- package/lib/module-loader.d.ts +131 -0
- package/lib/module-loader.js +467 -0
- package/lib/module-loader.js.map +1 -0
- package/lib/start.d.ts +2 -0
- package/lib/start.js +15 -0
- package/lib/start.js.map +1 -0
- package/lib/symtable.d.ts +24 -0
- package/lib/symtable.js +63 -0
- package/lib/symtable.js.map +1 -0
- package/lib/template-processor.d.ts +46 -0
- package/lib/template-processor.js +154 -0
- package/lib/template-processor.js.map +1 -0
- package/lib/transformation.d.ts +156 -0
- package/lib/transformation.js +523 -0
- package/lib/transformation.js.map +1 -0
- package/lib/type-definition-generator.d.ts +117 -0
- package/lib/type-definition-generator.js +929 -0
- package/lib/type-definition-generator.js.map +1 -0
- package/lib/types/answer-version.d.ts +4 -0
- package/lib/types/answer-version.js +2 -0
- package/lib/types/answer-version.js.map +1 -0
- package/lib/types/build-type.d.ts +1 -0
- package/lib/types/build-type.js +2 -0
- package/lib/types/build-type.js.map +1 -0
- package/lib/types/class-parent.d.ts +11 -0
- package/lib/types/class-parent.js +2 -0
- package/lib/types/class-parent.js.map +1 -0
- package/lib/types/config-flags.d.ts +4 -0
- package/lib/types/config-flags.js +2 -0
- package/lib/types/config-flags.js.map +1 -0
- package/lib/types/conflict-child-element.d.ts +10 -0
- package/lib/types/conflict-child-element.js +2 -0
- package/lib/types/conflict-child-element.js.map +1 -0
- package/lib/types/conflict-grouped-element.d.ts +6 -0
- package/lib/types/conflict-grouped-element.js +2 -0
- package/lib/types/conflict-grouped-element.js.map +1 -0
- package/lib/types/conflict-grouped-elements.d.ts +4 -0
- package/lib/types/conflict-grouped-elements.js +2 -0
- package/lib/types/conflict-grouped-elements.js.map +1 -0
- package/lib/types/construct-name.d.ts +1 -0
- package/lib/types/construct-name.js +2 -0
- package/lib/types/construct-name.js.map +1 -0
- package/lib/types/dependency-map.d.ts +4 -0
- package/lib/types/dependency-map.js +2 -0
- package/lib/types/dependency-map.js.map +1 -0
- package/lib/types/dependency.d.ts +14 -0
- package/lib/types/dependency.js +2 -0
- package/lib/types/dependency.js.map +1 -0
- package/lib/types/environment.d.ts +1 -0
- package/lib/types/environment.js +2 -0
- package/lib/types/environment.js.map +1 -0
- package/lib/types/generate-config.d.ts +30 -0
- package/lib/types/generate-config.js +2 -0
- package/lib/types/generate-config.js.map +1 -0
- package/lib/types/generator-type.d.ts +4 -0
- package/lib/types/generator-type.js +6 -0
- package/lib/types/generator-type.js.map +1 -0
- package/lib/types/gir-alias-element.d.ts +13 -0
- package/lib/types/gir-alias-element.js +2 -0
- package/lib/types/gir-alias-element.js.map +1 -0
- package/lib/types/gir-annotation.d.ts +9 -0
- package/lib/types/gir-annotation.js +2 -0
- package/lib/types/gir-annotation.js.map +1 -0
- package/lib/types/gir-any-element.d.ts +2 -0
- package/lib/types/gir-any-element.js +2 -0
- package/lib/types/gir-any-element.js.map +1 -0
- package/lib/types/gir-any-type.d.ts +5 -0
- package/lib/types/gir-any-type.js +2 -0
- package/lib/types/gir-any-type.js.map +1 -0
- package/lib/types/gir-array-type.d.ts +20 -0
- package/lib/types/gir-array-type.js +3 -0
- package/lib/types/gir-array-type.js.map +1 -0
- package/lib/types/gir-bitfield-element.d.ts +17 -0
- package/lib/types/gir-bitfield-element.js +2 -0
- package/lib/types/gir-bitfield-element.js.map +1 -0
- package/lib/types/gir-boolean.d.ts +1 -0
- package/lib/types/gir-boolean.js +2 -0
- package/lib/types/gir-boolean.js.map +1 -0
- package/lib/types/gir-boxed-element.d.ts +15 -0
- package/lib/types/gir-boxed-element.js +2 -0
- package/lib/types/gir-boxed-element.js.map +1 -0
- package/lib/types/gir-c-include.d.ts +7 -0
- package/lib/types/gir-c-include.js +2 -0
- package/lib/types/gir-c-include.js.map +1 -0
- package/lib/types/gir-callable-attrs.d.ts +15 -0
- package/lib/types/gir-callable-attrs.js +3 -0
- package/lib/types/gir-callable-attrs.js.map +1 -0
- package/lib/types/gir-callable-param-element.d.ts +30 -0
- package/lib/types/gir-callable-param-element.js +2 -0
- package/lib/types/gir-callable-param-element.js.map +1 -0
- package/lib/types/gir-callable-param.d.ts +7 -0
- package/lib/types/gir-callable-param.js +2 -0
- package/lib/types/gir-callable-param.js.map +1 -0
- package/lib/types/gir-callable-return.d.ts +22 -0
- package/lib/types/gir-callable-return.js +2 -0
- package/lib/types/gir-callable-return.js.map +1 -0
- package/lib/types/gir-callback-element.d.ts +15 -0
- package/lib/types/gir-callback-element.js +2 -0
- package/lib/types/gir-callback-element.js.map +1 -0
- package/lib/types/gir-class-element.d.ts +48 -0
- package/lib/types/gir-class-element.js +2 -0
- package/lib/types/gir-class-element.js.map +1 -0
- package/lib/types/gir-constant-element.d.ts +15 -0
- package/lib/types/gir-constant-element.js +2 -0
- package/lib/types/gir-constant-element.js.map +1 -0
- package/lib/types/gir-constructor-element.d.ts +8 -0
- package/lib/types/gir-constructor-element.js +2 -0
- package/lib/types/gir-constructor-element.js.map +1 -0
- package/lib/types/gir-direction.d.ts +5 -0
- package/lib/types/gir-direction.js +7 -0
- package/lib/types/gir-direction.js.map +1 -0
- package/lib/types/gir-doc-element.d.ts +68 -0
- package/lib/types/gir-doc-element.js +2 -0
- package/lib/types/gir-doc-element.js.map +1 -0
- package/lib/types/gir-enum-element.d.ts +19 -0
- package/lib/types/gir-enum-element.js +2 -0
- package/lib/types/gir-enum-element.js.map +1 -0
- package/lib/types/gir-field-element.d.ts +18 -0
- package/lib/types/gir-field-element.js +2 -0
- package/lib/types/gir-field-element.js.map +1 -0
- package/lib/types/gir-function-element.d.ts +8 -0
- package/lib/types/gir-function-element.js +2 -0
- package/lib/types/gir-function-element.js.map +1 -0
- package/lib/types/gir-implements.d.ts +8 -0
- package/lib/types/gir-implements.js +2 -0
- package/lib/types/gir-implements.js.map +1 -0
- package/lib/types/gir-include.d.ts +9 -0
- package/lib/types/gir-include.js +2 -0
- package/lib/types/gir-include.js.map +1 -0
- package/lib/types/gir-info-attrs.d.ts +13 -0
- package/lib/types/gir-info-attrs.js +2 -0
- package/lib/types/gir-info-attrs.js.map +1 -0
- package/lib/types/gir-info-elements.d.ts +5 -0
- package/lib/types/gir-info-elements.js +2 -0
- package/lib/types/gir-info-elements.js.map +1 -0
- package/lib/types/gir-instance-parameter.d.ts +21 -0
- package/lib/types/gir-instance-parameter.js +2 -0
- package/lib/types/gir-instance-parameter.js.map +1 -0
- package/lib/types/gir-interface-element.d.ts +31 -0
- package/lib/types/gir-interface-element.js +2 -0
- package/lib/types/gir-interface-element.js.map +1 -0
- package/lib/types/gir-member-element.d.ts +17 -0
- package/lib/types/gir-member-element.js +2 -0
- package/lib/types/gir-member-element.js.map +1 -0
- package/lib/types/gir-method-element.d.ts +13 -0
- package/lib/types/gir-method-element.js +2 -0
- package/lib/types/gir-method-element.js.map +1 -0
- package/lib/types/gir-module-resolved-by.d.ts +10 -0
- package/lib/types/gir-module-resolved-by.js +2 -0
- package/lib/types/gir-module-resolved-by.js.map +1 -0
- package/lib/types/gir-modules-grouped-map.d.ts +4 -0
- package/lib/types/gir-modules-grouped-map.js +2 -0
- package/lib/types/gir-modules-grouped-map.js.map +1 -0
- package/lib/types/gir-modules-grouped.d.ts +12 -0
- package/lib/types/gir-modules-grouped.js +2 -0
- package/lib/types/gir-modules-grouped.js.map +1 -0
- package/lib/types/gir-namespace.d.ts +30 -0
- package/lib/types/gir-namespace.js +2 -0
- package/lib/types/gir-namespace.js.map +1 -0
- package/lib/types/gir-package.d.ts +7 -0
- package/lib/types/gir-package.js +2 -0
- package/lib/types/gir-package.js.map +1 -0
- package/lib/types/gir-prerequisite.d.ts +5 -0
- package/lib/types/gir-prerequisite.js +2 -0
- package/lib/types/gir-prerequisite.js.map +1 -0
- package/lib/types/gir-property-element.d.ts +21 -0
- package/lib/types/gir-property-element.js +2 -0
- package/lib/types/gir-property-element.js.map +1 -0
- package/lib/types/gir-record-element.d.ts +30 -0
- package/lib/types/gir-record-element.js +2 -0
- package/lib/types/gir-record-element.js.map +1 -0
- package/lib/types/gir-repository.d.ts +16 -0
- package/lib/types/gir-repository.js +2 -0
- package/lib/types/gir-repository.js.map +1 -0
- package/lib/types/gir-signal.d.ts +25 -0
- package/lib/types/gir-signal.js +2 -0
- package/lib/types/gir-signal.js.map +1 -0
- package/lib/types/gir-transfer-ownership-type.d.ts +5 -0
- package/lib/types/gir-transfer-ownership-type.js +7 -0
- package/lib/types/gir-transfer-ownership-type.js.map +1 -0
- package/lib/types/gir-transfer-ownership.d.ts +5 -0
- package/lib/types/gir-transfer-ownership.js +2 -0
- package/lib/types/gir-transfer-ownership.js.map +1 -0
- package/lib/types/gir-type.d.ts +14 -0
- package/lib/types/gir-type.js +2 -0
- package/lib/types/gir-type.js.map +1 -0
- package/lib/types/gir-union-element.d.ts +22 -0
- package/lib/types/gir-union-element.js +2 -0
- package/lib/types/gir-union-element.js.map +1 -0
- package/lib/types/gir-unparsed-number.d.ts +2 -0
- package/lib/types/gir-unparsed-number.js +2 -0
- package/lib/types/gir-unparsed-number.js.map +1 -0
- package/lib/types/gir-var-args.d.ts +5 -0
- package/lib/types/gir-var-args.js +2 -0
- package/lib/types/gir-var-args.js.map +1 -0
- package/lib/types/gir-virtual-method.d.ts +10 -0
- package/lib/types/gir-virtual-method.js +2 -0
- package/lib/types/gir-virtual-method.js.map +1 -0
- package/lib/types/index.d.ts +118 -0
- package/lib/types/index.js +119 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/inheritance-table.d.ts +3 -0
- package/lib/types/inheritance-table.js +2 -0
- package/lib/types/inheritance-table.js.map +1 -0
- package/lib/types/injection-callback.d.ts +16 -0
- package/lib/types/injection-callback.js +2 -0
- package/lib/types/injection-callback.js.map +1 -0
- package/lib/types/injection-class.d.ts +24 -0
- package/lib/types/injection-class.js +2 -0
- package/lib/types/injection-class.js.map +1 -0
- package/lib/types/injection-function.d.ts +7 -0
- package/lib/types/injection-function.js +2 -0
- package/lib/types/injection-function.js.map +1 -0
- package/lib/types/injection-generic-parameter.d.ts +2 -0
- package/lib/types/injection-generic-parameter.js +2 -0
- package/lib/types/injection-generic-parameter.js.map +1 -0
- package/lib/types/injection-instance-parameter.d.ts +2 -0
- package/lib/types/injection-instance-parameter.js +2 -0
- package/lib/types/injection-instance-parameter.js.map +1 -0
- package/lib/types/injection-parameter.d.ts +8 -0
- package/lib/types/injection-parameter.js +2 -0
- package/lib/types/injection-parameter.js.map +1 -0
- package/lib/types/injection-property.d.ts +4 -0
- package/lib/types/injection-property.js +2 -0
- package/lib/types/injection-property.js.map +1 -0
- package/lib/types/injection-type.d.ts +2 -0
- package/lib/types/injection-type.js +2 -0
- package/lib/types/injection-type.js.map +1 -0
- package/lib/types/injection.d.ts +5 -0
- package/lib/types/injection.js +2 -0
- package/lib/types/injection.js.map +1 -0
- package/lib/types/local-name-check.d.ts +4 -0
- package/lib/types/local-name-check.js +2 -0
- package/lib/types/local-name-check.js.map +1 -0
- package/lib/types/local-name-type.d.ts +1 -0
- package/lib/types/local-name-type.js +2 -0
- package/lib/types/local-name-type.js.map +1 -0
- package/lib/types/local-name.d.ts +7 -0
- package/lib/types/local-name.js +2 -0
- package/lib/types/local-name.js.map +1 -0
- package/lib/types/local-names.d.ts +4 -0
- package/lib/types/local-names.js +2 -0
- package/lib/types/local-names.js.map +1 -0
- package/lib/types/module-type.d.ts +1 -0
- package/lib/types/module-type.js +2 -0
- package/lib/types/module-type.js.map +1 -0
- package/lib/types/parsed-gir.d.ts +4 -0
- package/lib/types/parsed-gir.js +2 -0
- package/lib/types/parsed-gir.js.map +1 -0
- package/lib/types/part-of-class.d.ts +7 -0
- package/lib/types/part-of-class.js +2 -0
- package/lib/types/part-of-class.js.map +1 -0
- package/lib/types/part-of-module.d.ts +6 -0
- package/lib/types/part-of-module.js +2 -0
- package/lib/types/part-of-module.js.map +1 -0
- package/lib/types/resolve-type.d.ts +4 -0
- package/lib/types/resolve-type.js +6 -0
- package/lib/types/resolve-type.js.map +1 -0
- package/lib/types/sym-table-items.d.ts +4 -0
- package/lib/types/sym-table-items.js +2 -0
- package/lib/types/sym-table-items.js.map +1 -0
- package/lib/types/transformation-case.d.ts +1 -0
- package/lib/types/transformation-case.js +2 -0
- package/lib/types/transformation-case.js.map +1 -0
- package/lib/types/transformations.d.ts +11 -0
- package/lib/types/transformations.js +2 -0
- package/lib/types/transformations.js.map +1 -0
- package/lib/types/ts-alias.d.ts +10 -0
- package/lib/types/ts-alias.js +2 -0
- package/lib/types/ts-alias.js.map +1 -0
- package/lib/types/ts-callback-interface.d.ts +10 -0
- package/lib/types/ts-callback-interface.js +2 -0
- package/lib/types/ts-callback-interface.js.map +1 -0
- package/lib/types/ts-callback.d.ts +17 -0
- package/lib/types/ts-callback.js +2 -0
- package/lib/types/ts-callback.js.map +1 -0
- package/lib/types/ts-class.d.ts +85 -0
- package/lib/types/ts-class.js +2 -0
- package/lib/types/ts-class.js.map +1 -0
- package/lib/types/ts-doc-tag.d.ts +21 -0
- package/lib/types/ts-doc-tag.js +2 -0
- package/lib/types/ts-doc-tag.js.map +1 -0
- package/lib/types/ts-doc.d.ts +20 -0
- package/lib/types/ts-doc.js +2 -0
- package/lib/types/ts-doc.js.map +1 -0
- package/lib/types/ts-enum.d.ts +12 -0
- package/lib/types/ts-enum.js +2 -0
- package/lib/types/ts-enum.js.map +1 -0
- package/lib/types/ts-function.d.ts +44 -0
- package/lib/types/ts-function.js +2 -0
- package/lib/types/ts-function.js.map +1 -0
- package/lib/types/ts-generic-parameter.d.ts +8 -0
- package/lib/types/ts-generic-parameter.js +2 -0
- package/lib/types/ts-generic-parameter.js.map +1 -0
- package/lib/types/ts-instance-parameter.d.ts +4 -0
- package/lib/types/ts-instance-parameter.js +2 -0
- package/lib/types/ts-instance-parameter.js.map +1 -0
- package/lib/types/ts-member.d.ts +10 -0
- package/lib/types/ts-member.js +2 -0
- package/lib/types/ts-member.js.map +1 -0
- package/lib/types/ts-method.d.ts +5 -0
- package/lib/types/ts-method.js +2 -0
- package/lib/types/ts-method.js.map +1 -0
- package/lib/types/ts-parameter.d.ts +15 -0
- package/lib/types/ts-parameter.js +2 -0
- package/lib/types/ts-parameter.js.map +1 -0
- package/lib/types/ts-property.d.ts +17 -0
- package/lib/types/ts-property.js +2 -0
- package/lib/types/ts-property.js.map +1 -0
- package/lib/types/ts-signal.d.ts +17 -0
- package/lib/types/ts-signal.js +2 -0
- package/lib/types/ts-signal.js.map +1 -0
- package/lib/types/ts-type-name.d.ts +1 -0
- package/lib/types/ts-type-name.js +2 -0
- package/lib/types/ts-type-name.js.map +1 -0
- package/lib/types/ts-type-separator.d.ts +1 -0
- package/lib/types/ts-type-separator.js +2 -0
- package/lib/types/ts-type-separator.js.map +1 -0
- package/lib/types/ts-type.d.ts +22 -0
- package/lib/types/ts-type.js +2 -0
- package/lib/types/ts-type.js.map +1 -0
- package/lib/types/ts-var.d.ts +17 -0
- package/lib/types/ts-var.js +2 -0
- package/lib/types/ts-var.js.map +1 -0
- package/lib/types/type-gir-alias.d.ts +2 -0
- package/lib/types/type-gir-alias.js +2 -0
- package/lib/types/type-gir-alias.js.map +1 -0
- package/lib/types/type-gir-class.d.ts +2 -0
- package/lib/types/type-gir-class.js +2 -0
- package/lib/types/type-gir-class.js.map +1 -0
- package/lib/types/type-gir-element.d.ts +3 -0
- package/lib/types/type-gir-element.js +2 -0
- package/lib/types/type-gir-element.js.map +1 -0
- package/lib/types/type-gir-enumeration-member.d.ts +2 -0
- package/lib/types/type-gir-enumeration-member.js +2 -0
- package/lib/types/type-gir-enumeration-member.js.map +1 -0
- package/lib/types/type-gir-enumeration.d.ts +2 -0
- package/lib/types/type-gir-enumeration.js +2 -0
- package/lib/types/type-gir-enumeration.js.map +1 -0
- package/lib/types/type-gir-function.d.ts +1 -0
- package/lib/types/type-gir-function.js +2 -0
- package/lib/types/type-gir-function.js.map +1 -0
- package/lib/types/type-gir-interface.d.ts +2 -0
- package/lib/types/type-gir-interface.js +2 -0
- package/lib/types/type-gir-interface.js.map +1 -0
- package/lib/types/type-gir-method.d.ts +2 -0
- package/lib/types/type-gir-method.js +2 -0
- package/lib/types/type-gir-method.js.map +1 -0
- package/lib/types/type-gir-parameter.d.ts +1 -0
- package/lib/types/type-gir-parameter.js +2 -0
- package/lib/types/type-gir-parameter.js.map +1 -0
- package/lib/types/type-gir-property.d.ts +2 -0
- package/lib/types/type-gir-property.js +2 -0
- package/lib/types/type-gir-property.js.map +1 -0
- package/lib/types/type-gir-variable.d.ts +1 -0
- package/lib/types/type-gir-variable.js +2 -0
- package/lib/types/type-gir-variable.js.map +1 -0
- package/lib/types/type-ts-element.d.ts +3 -0
- package/lib/types/type-ts-element.js +2 -0
- package/lib/types/type-ts-element.js.map +1 -0
- package/lib/types/type-ts-enumeration-member.d.ts +2 -0
- package/lib/types/type-ts-enumeration-member.js +2 -0
- package/lib/types/type-ts-enumeration-member.js.map +1 -0
- package/lib/types/type-ts-function.d.ts +1 -0
- package/lib/types/type-ts-function.js +2 -0
- package/lib/types/type-ts-function.js.map +1 -0
- package/lib/types/type-ts-property.d.ts +1 -0
- package/lib/types/type-ts-property.js +2 -0
- package/lib/types/type-ts-property.js.map +1 -0
- package/lib/types/user-config-load-result.d.ts +6 -0
- package/lib/types/user-config-load-result.js +2 -0
- package/lib/types/user-config-load-result.js.map +1 -0
- package/lib/types/user-config.d.ts +38 -0
- package/lib/types/user-config.js +2 -0
- package/lib/types/user-config.js.map +1 -0
- package/lib/utils.d.ts +88 -0
- package/lib/utils.js +189 -0
- package/lib/utils.js.map +1 -0
- package/package.json +72 -0
- package/src/commands/doc.ts +65 -0
- package/src/commands/generate.ts +86 -0
- package/src/commands/index.ts +3 -0
- package/src/commands/list.ts +96 -0
- package/src/config.ts +426 -0
- package/src/conflict-resolver.ts +1350 -0
- package/src/constants.ts +29 -0
- package/src/generation-handler.ts +79 -0
- package/src/generator.ts +10 -0
- package/src/gir-factory.ts +488 -0
- package/src/gir-module.ts +2816 -0
- package/src/html-doc-generator.ts +23 -0
- package/src/index.ts +17 -0
- package/src/injection/callbacks/gjs/Gio-2.0.ts +37 -0
- package/src/injection/callbacks/gjs/index.ts +5 -0
- package/src/injection/callbacks/index.ts +6 -0
- package/src/injection/callbacks/node-gtk/index.ts +3 -0
- package/src/injection/classes/GLib-2-0.ts +36 -0
- package/src/injection/classes/gjs/GLib-2.0.ts +75 -0
- package/src/injection/classes/gjs/GObject-2.0.ts +635 -0
- package/src/injection/classes/gjs/Gio-2.0.ts +219 -0
- package/src/injection/classes/gjs/index.ts +7 -0
- package/src/injection/classes/index.ts +7 -0
- package/src/injection/classes/node-gtk/GLib-2.0.ts +20 -0
- package/src/injection/classes/node-gtk/GObject-2.0.ts +67 -0
- package/src/injection/classes/node-gtk/Gdk-4.0.ts +33 -0
- package/src/injection/classes/node-gtk/Gio-2.0.ts +15 -0
- package/src/injection/classes/node-gtk/Graphene-1.0.ts +134 -0
- package/src/injection/classes/node-gtk/Gtk-3.0.ts +32 -0
- package/src/injection/classes/node-gtk/Gtk-4.0.ts +53 -0
- package/src/injection/classes/node-gtk/Pango-1.0.ts +32 -0
- package/src/injection/classes/node-gtk/index.ts +21 -0
- package/src/injection/index.ts +3 -0
- package/src/injection/injector.ts +179 -0
- package/src/logger.ts +134 -0
- package/src/messages.ts +68 -0
- package/src/module-loader.ts +573 -0
- package/src/start.ts +16 -0
- package/src/symtable.ts +70 -0
- package/src/template-processor.ts +170 -0
- package/src/transformation.ts +583 -0
- package/src/type-definition-generator.ts +1387 -0
- package/src/types/answer-version.ts +4 -0
- package/src/types/build-type.ts +1 -0
- package/src/types/class-parent.ts +12 -0
- package/src/types/config-flags.ts +5 -0
- package/src/types/conflict-child-element.ts +11 -0
- package/src/types/conflict-grouped-element.ts +7 -0
- package/src/types/conflict-grouped-elements.ts +5 -0
- package/src/types/construct-name.ts +11 -0
- package/src/types/dependency-map.ts +4 -0
- package/src/types/dependency.ts +14 -0
- package/src/types/environment.ts +1 -0
- package/src/types/generate-config.ts +31 -0
- package/src/types/generator-type.ts +4 -0
- package/src/types/gir-alias-element.ts +15 -0
- package/src/types/gir-annotation.ts +10 -0
- package/src/types/gir-any-element.ts +35 -0
- package/src/types/gir-any-type.ts +7 -0
- package/src/types/gir-array-type.ts +23 -0
- package/src/types/gir-bitfield-element.ts +20 -0
- package/src/types/gir-boolean.ts +1 -0
- package/src/types/gir-boxed-element.ts +19 -0
- package/src/types/gir-c-include.ts +7 -0
- package/src/types/gir-callable-attrs.ts +19 -0
- package/src/types/gir-callable-param-element.ts +45 -0
- package/src/types/gir-callable-param.ts +9 -0
- package/src/types/gir-callable-return.ts +25 -0
- package/src/types/gir-callback-element.ts +28 -0
- package/src/types/gir-class-element.ts +71 -0
- package/src/types/gir-constant-element.ts +17 -0
- package/src/types/gir-constructor-element.ts +18 -0
- package/src/types/gir-direction.ts +5 -0
- package/src/types/gir-doc-element.ts +73 -0
- package/src/types/gir-enum-element.ts +28 -0
- package/src/types/gir-field-element.ts +31 -0
- package/src/types/gir-function-element.ts +19 -0
- package/src/types/gir-implements.ts +9 -0
- package/src/types/gir-include.ts +9 -0
- package/src/types/gir-info-attrs.ts +16 -0
- package/src/types/gir-info-elements.ts +8 -0
- package/src/types/gir-instance-parameter.ts +25 -0
- package/src/types/gir-interface-element.ts +53 -0
- package/src/types/gir-member-element.ts +19 -0
- package/src/types/gir-method-element.ts +25 -0
- package/src/types/gir-module-resolved-by.ts +11 -0
- package/src/types/gir-modules-grouped-map.ts +5 -0
- package/src/types/gir-modules-grouped.ts +13 -0
- package/src/types/gir-namespace.ts +47 -0
- package/src/types/gir-package.ts +7 -0
- package/src/types/gir-prerequisite.ts +5 -0
- package/src/types/gir-property-element.ts +31 -0
- package/src/types/gir-record-element.ts +47 -0
- package/src/types/gir-repository.ts +20 -0
- package/src/types/gir-signal.ts +43 -0
- package/src/types/gir-transfer-ownership-type.ts +5 -0
- package/src/types/gir-transfer-ownership.ts +6 -0
- package/src/types/gir-type.ts +16 -0
- package/src/types/gir-union-element.ts +35 -0
- package/src/types/gir-unparsed-number.ts +2 -0
- package/src/types/gir-var-args.ts +6 -0
- package/src/types/gir-virtual-method.ts +22 -0
- package/src/types/index.ts +118 -0
- package/src/types/inheritance-table.ts +3 -0
- package/src/types/injection-callback.ts +20 -0
- package/src/types/injection-class.ts +30 -0
- package/src/types/injection-function.ts +23 -0
- package/src/types/injection-generic-parameter.ts +3 -0
- package/src/types/injection-instance-parameter.ts +3 -0
- package/src/types/injection-parameter.ts +9 -0
- package/src/types/injection-property.ts +7 -0
- package/src/types/injection-type.ts +3 -0
- package/src/types/injection.ts +6 -0
- package/src/types/local-name-check.ts +5 -0
- package/src/types/local-name-type.ts +1 -0
- package/src/types/local-name.ts +8 -0
- package/src/types/local-names.ts +5 -0
- package/src/types/module-type.ts +1 -0
- package/src/types/parsed-gir.ts +5 -0
- package/src/types/part-of-class.ts +9 -0
- package/src/types/part-of-module.ts +8 -0
- package/src/types/resolve-type.ts +4 -0
- package/src/types/sym-table-items.ts +5 -0
- package/src/types/transformation-case.ts +7 -0
- package/src/types/transformations.ts +12 -0
- package/src/types/ts-alias.ts +11 -0
- package/src/types/ts-callback-interface.ts +11 -0
- package/src/types/ts-callback.ts +21 -0
- package/src/types/ts-class.ts +109 -0
- package/src/types/ts-doc-tag.ts +23 -0
- package/src/types/ts-doc.ts +23 -0
- package/src/types/ts-enum.ts +15 -0
- package/src/types/ts-function.ts +59 -0
- package/src/types/ts-generic-parameter.ts +8 -0
- package/src/types/ts-instance-parameter.ts +4 -0
- package/src/types/ts-member.ts +11 -0
- package/src/types/ts-method.ts +6 -0
- package/src/types/ts-parameter.ts +20 -0
- package/src/types/ts-property.ts +22 -0
- package/src/types/ts-signal.ts +21 -0
- package/src/types/ts-type-name.ts +1 -0
- package/src/types/ts-type-separator.ts +1 -0
- package/src/types/ts-type.ts +25 -0
- package/src/types/ts-var.ts +21 -0
- package/src/types/type-gir-alias.ts +2 -0
- package/src/types/type-gir-class.ts +2 -0
- package/src/types/type-gir-element.ts +25 -0
- package/src/types/type-gir-enumeration-member.ts +2 -0
- package/src/types/type-gir-enumeration.ts +2 -0
- package/src/types/type-gir-function.ts +8 -0
- package/src/types/type-gir-interface.ts +2 -0
- package/src/types/type-gir-method.ts +2 -0
- package/src/types/type-gir-parameter.ts +1 -0
- package/src/types/type-gir-property.ts +2 -0
- package/src/types/type-gir-variable.ts +1 -0
- package/src/types/type-ts-element.ts +13 -0
- package/src/types/type-ts-enumeration-member.ts +2 -0
- package/src/types/type-ts-function.ts +1 -0
- package/src/types/type-ts-property.ts +1 -0
- package/src/types/user-config-load-result.ts +6 -0
- package/src/types/user-config.ts +39 -0
- package/src/utils.ts +217 -0
- package/templates/Cogl-2.0.d.ts +0 -0
- package/templates/Gjs/GObject-2.0.d.ts +238 -0
- package/templates/Gjs/Gio-2.0.d.ts +64 -0
- package/templates/Gjs/Gjs.d.ts +135 -0
- package/templates/Gjs/Gjs.js +21 -0
- package/templates/Gjs/cast.ts +52 -0
- package/templates/Gjs/index.d.ts +279 -0
- package/templates/Gjs/index.js +4 -0
- package/templates/Gjs/module.d.ts +10 -0
- package/templates/Gjs/module.js +16 -0
- package/templates/Granite-1.0.d.ts +7 -0
- package/templates/Granite-7.0.d.ts +7 -0
- package/templates/GstBase-0.10.d.ts +5 -0
- package/templates/RygelServer-2.6.d.ts +3 -0
- package/templates/node-gtk/GObject-2.0.d.ts +57 -0
- package/templates/node-gtk/index.d.ts +40 -0
- package/templates/node-gtk/index.js +9 -0
- package/templates/node-gtk/module.d.ts +10 -0
- package/templates/node-gtk/module.js +17 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ModuleLoader is used for reading gir modules from the file system and to solve conflicts (e.g. Gtk-3.0 and Gtk-4.0 would be a conflict)
|
|
3
|
+
*/
|
|
4
|
+
import type { GirModulesGroupedMap, GenerateConfig, GirModuleResolvedBy, DependencyMap } from './types/index.js';
|
|
5
|
+
import { Logger } from './logger.js';
|
|
6
|
+
export declare class ModuleLoader {
|
|
7
|
+
private readonly config;
|
|
8
|
+
log: Logger;
|
|
9
|
+
/** Transitive module dependencies */
|
|
10
|
+
modDependencyMap: DependencyMap;
|
|
11
|
+
constructor(config: GenerateConfig);
|
|
12
|
+
/**
|
|
13
|
+
* Groups Gir modules by name id
|
|
14
|
+
* E.g. Gtk-3.0 and Gtk-4.0 will be grouped
|
|
15
|
+
* @param girFiles
|
|
16
|
+
*/
|
|
17
|
+
private groupGirFiles;
|
|
18
|
+
/**
|
|
19
|
+
* Sorts out the module the user has not selected via cli prompt
|
|
20
|
+
* @param girModulesGrouped
|
|
21
|
+
* @param keepFullName Users selected module packageName
|
|
22
|
+
*/
|
|
23
|
+
private sortVersionsByAnswer;
|
|
24
|
+
private generateContinueQuestion;
|
|
25
|
+
private generateIgnoreDepsQuestion;
|
|
26
|
+
private askIgnoreDepsPrompt;
|
|
27
|
+
/**
|
|
28
|
+
* Ask for duplicates / multiple versions of a module
|
|
29
|
+
* @param girModuleGrouped
|
|
30
|
+
* @param message
|
|
31
|
+
*/
|
|
32
|
+
private generateModuleVersionQuestion;
|
|
33
|
+
/**
|
|
34
|
+
* Find modules that depend on the module with the name 'packageName'
|
|
35
|
+
* @param girModulesGroupedMap
|
|
36
|
+
* @param packageName
|
|
37
|
+
*/
|
|
38
|
+
private findModulesDependOnPackage;
|
|
39
|
+
/**
|
|
40
|
+
* Find modules that depend on the module with the names in `packageNames`
|
|
41
|
+
* @param girModulesGroupedMap
|
|
42
|
+
* @param packageName
|
|
43
|
+
*/
|
|
44
|
+
private findModulesDependOnPackages;
|
|
45
|
+
private askForVersionsPrompt;
|
|
46
|
+
/**
|
|
47
|
+
* If multiple versions of the same module are found, this will aks the user with input prompts for the version he wish to use.
|
|
48
|
+
* Ignores also modules that depend on a module that should be ignored
|
|
49
|
+
* @param resolveFirModules
|
|
50
|
+
*/
|
|
51
|
+
private askForEachConflictVersionsPrompt;
|
|
52
|
+
/**
|
|
53
|
+
* Asks via cli prompt if the user wants to add the ignored modules to his config file
|
|
54
|
+
* @param ignore
|
|
55
|
+
*/
|
|
56
|
+
private askAddToIgnoreToConfigPrompt;
|
|
57
|
+
/**
|
|
58
|
+
* Figure out transitive module dependencies
|
|
59
|
+
* @param packageName
|
|
60
|
+
* @param result
|
|
61
|
+
*/
|
|
62
|
+
private traverseDependencies;
|
|
63
|
+
/**
|
|
64
|
+
* Extends the modDependencyMap by the current Module,
|
|
65
|
+
* should be called for each girModule so that the modDependencyMap is complete
|
|
66
|
+
* @param girModule
|
|
67
|
+
*/
|
|
68
|
+
private extendDependencyMapByGirModule;
|
|
69
|
+
/**
|
|
70
|
+
* Sets the traverse dependencies for the current girModule,
|
|
71
|
+
* is required so that all dependencies can be found internally when generating the dependency imports for the module .d.ts file
|
|
72
|
+
* @param girModules
|
|
73
|
+
*/
|
|
74
|
+
private setTraverseDependenciesForModules;
|
|
75
|
+
/**
|
|
76
|
+
* Reads a gir xml module file and creates an object of GirModule.
|
|
77
|
+
* Also sets the setDependencyMap
|
|
78
|
+
* @param fillName
|
|
79
|
+
* @param config
|
|
80
|
+
*/
|
|
81
|
+
private loadAndCreateGirModule;
|
|
82
|
+
/**
|
|
83
|
+
* Returns a girModule found by `packageName` property
|
|
84
|
+
* @param girModules Array of girModules
|
|
85
|
+
* @param packageNames Full name like 'Gtk-3.0' you are looking for
|
|
86
|
+
*/
|
|
87
|
+
private findGirModuleByFullNames;
|
|
88
|
+
/**
|
|
89
|
+
* Checks if a girModules with the `packageNames` exists
|
|
90
|
+
* @param girModules
|
|
91
|
+
* @param packageName
|
|
92
|
+
*/
|
|
93
|
+
private existsGirModules;
|
|
94
|
+
/**
|
|
95
|
+
* Reads the gir xml module files and creates an object of GirModule for each module
|
|
96
|
+
* @param girModulesToRead
|
|
97
|
+
* @param girModules
|
|
98
|
+
* @param resolvedBy
|
|
99
|
+
* @param failedGirModules
|
|
100
|
+
* @param ignoreDependencies
|
|
101
|
+
* @returns
|
|
102
|
+
*/
|
|
103
|
+
private loadGirModules;
|
|
104
|
+
/**
|
|
105
|
+
* Find modules with the possibility to use wild cards for module names. E.g. `Gtk*` or `'*'`
|
|
106
|
+
* @param girDirectories
|
|
107
|
+
* @param modules
|
|
108
|
+
*/
|
|
109
|
+
private findModules;
|
|
110
|
+
/**
|
|
111
|
+
* Loads all found modules and sorts out those that the user does not want to use including their dependencies
|
|
112
|
+
* @param girDirectories
|
|
113
|
+
* @param modules
|
|
114
|
+
*/
|
|
115
|
+
getModulesResolved(modules: string[], ignore?: string[], doNotAskForVersionOnConflict?: boolean): Promise<{
|
|
116
|
+
keep: GirModuleResolvedBy[];
|
|
117
|
+
grouped: GirModulesGroupedMap;
|
|
118
|
+
ignore: string[];
|
|
119
|
+
failed: Set<string>;
|
|
120
|
+
}>;
|
|
121
|
+
/**
|
|
122
|
+
* Find modules with the possibility to use wild cards for module names. E.g. `Gtk*` or `'*'`
|
|
123
|
+
* @param girDirectories
|
|
124
|
+
* @param modules
|
|
125
|
+
*/
|
|
126
|
+
getModules(modules: string[], ignore?: string[]): Promise<{
|
|
127
|
+
grouped: GirModulesGroupedMap;
|
|
128
|
+
loaded: GirModuleResolvedBy[];
|
|
129
|
+
failed: string[];
|
|
130
|
+
}>;
|
|
131
|
+
}
|
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ModuleLoader is used for reading gir modules from the file system and to solve conflicts (e.g. Gtk-3.0 and Gtk-4.0 would be a conflict)
|
|
3
|
+
*/
|
|
4
|
+
import inquirer from 'inquirer';
|
|
5
|
+
import glob from 'tiny-glob';
|
|
6
|
+
import Path from 'path';
|
|
7
|
+
import fs from 'fs';
|
|
8
|
+
import { bold } from 'colorette';
|
|
9
|
+
import * as xml2js from 'xml2js';
|
|
10
|
+
import { ResolveType } from './types/index.js';
|
|
11
|
+
import { GirModule } from './gir-module.js';
|
|
12
|
+
import { Config } from './config.js';
|
|
13
|
+
import { Logger } from './logger.js';
|
|
14
|
+
import { splitModuleName, union, isIterable, map, findFileInDirs } from './utils.js';
|
|
15
|
+
import { WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE } from './messages.js';
|
|
16
|
+
export class ModuleLoader {
|
|
17
|
+
config;
|
|
18
|
+
log;
|
|
19
|
+
/** Transitive module dependencies */
|
|
20
|
+
modDependencyMap = {};
|
|
21
|
+
constructor(config) {
|
|
22
|
+
this.config = config;
|
|
23
|
+
this.log = new Logger('', config.verbose, 'ModuleLoader');
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Groups Gir modules by name id
|
|
27
|
+
* E.g. Gtk-3.0 and Gtk-4.0 will be grouped
|
|
28
|
+
* @param girFiles
|
|
29
|
+
*/
|
|
30
|
+
groupGirFiles(resolveGirModules) {
|
|
31
|
+
const girModulesGrouped = {};
|
|
32
|
+
for (const resolveGirModule of resolveGirModules) {
|
|
33
|
+
const { namespace } = splitModuleName(resolveGirModule.packageName);
|
|
34
|
+
const id = namespace.toLowerCase();
|
|
35
|
+
if (!girModulesGrouped[id]) {
|
|
36
|
+
girModulesGrouped[id] = {
|
|
37
|
+
namespace: namespace,
|
|
38
|
+
modules: [resolveGirModule],
|
|
39
|
+
hasConflict: false,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
girModulesGrouped[id].modules.push(resolveGirModule);
|
|
44
|
+
girModulesGrouped[id].hasConflict = true;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return girModulesGrouped;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Sorts out the module the user has not selected via cli prompt
|
|
51
|
+
* @param girModulesGrouped
|
|
52
|
+
* @param keepFullName Users selected module packageName
|
|
53
|
+
*/
|
|
54
|
+
sortVersionsByAnswer(girModulesGrouped, selected) {
|
|
55
|
+
const keep = new Set();
|
|
56
|
+
let ignore = [];
|
|
57
|
+
if (!girModulesGrouped.hasConflict) {
|
|
58
|
+
keep.add(girModulesGrouped.modules[0]);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
const keepModules = this.findGirModuleByFullNames(girModulesGrouped.modules, selected);
|
|
62
|
+
const girModulePackageNames = girModulesGrouped.modules.map((resolveGirModule) => resolveGirModule.packageName);
|
|
63
|
+
if (!keepModules || keepModules.length <= 0) {
|
|
64
|
+
throw new Error('Module not found!');
|
|
65
|
+
}
|
|
66
|
+
for (const keepModule of keepModules) {
|
|
67
|
+
keep.add(keepModule);
|
|
68
|
+
}
|
|
69
|
+
const toIgnore = girModulePackageNames.filter((packageName) => !selected.includes(packageName));
|
|
70
|
+
ignore = ignore.concat(toIgnore);
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
keep,
|
|
74
|
+
ignore,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
generateContinueQuestion(message = `do you want to continue?`, choices = ['Yes', 'Go back']) {
|
|
78
|
+
const question = {
|
|
79
|
+
name: 'continue',
|
|
80
|
+
message,
|
|
81
|
+
type: 'list',
|
|
82
|
+
choices,
|
|
83
|
+
};
|
|
84
|
+
return question;
|
|
85
|
+
}
|
|
86
|
+
generateIgnoreDepsQuestion(message = `Do you want to ignore them too?`, choices = ['Yes', 'No', 'Go back']) {
|
|
87
|
+
const question = {
|
|
88
|
+
name: 'continue',
|
|
89
|
+
message,
|
|
90
|
+
type: 'list',
|
|
91
|
+
choices,
|
|
92
|
+
};
|
|
93
|
+
return question;
|
|
94
|
+
}
|
|
95
|
+
async askIgnoreDepsPrompt(deps) {
|
|
96
|
+
let question = null;
|
|
97
|
+
const size = deps.length || deps.size || 0;
|
|
98
|
+
if (size > 0) {
|
|
99
|
+
this.log.log(bold('\nThe following modules have the ignored modules as dependencies:'));
|
|
100
|
+
for (const dep of deps) {
|
|
101
|
+
this.log.log(`- ${dep.packageName}`);
|
|
102
|
+
}
|
|
103
|
+
this.log.log(bold('\n'));
|
|
104
|
+
question = this.generateIgnoreDepsQuestion();
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
this.log.log(bold('\nNo dependencies found on the ignored modules'));
|
|
108
|
+
question = this.generateContinueQuestion();
|
|
109
|
+
}
|
|
110
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
111
|
+
const answer = (await inquirer.prompt([question])).continue;
|
|
112
|
+
return answer;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Ask for duplicates / multiple versions of a module
|
|
116
|
+
* @param girModuleGrouped
|
|
117
|
+
* @param message
|
|
118
|
+
*/
|
|
119
|
+
generateModuleVersionQuestion(girModuleGrouped, message) {
|
|
120
|
+
message = message || `Multiple versions of '${girModuleGrouped.namespace}' found, which one do you want to use?`;
|
|
121
|
+
const choices = ['All', ...girModuleGrouped.modules.map((module) => module.packageName)];
|
|
122
|
+
const question = {
|
|
123
|
+
name: girModuleGrouped.namespace,
|
|
124
|
+
message,
|
|
125
|
+
type: 'list',
|
|
126
|
+
choices,
|
|
127
|
+
};
|
|
128
|
+
return question;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Find modules that depend on the module with the name 'packageName'
|
|
132
|
+
* @param girModulesGroupedMap
|
|
133
|
+
* @param packageName
|
|
134
|
+
*/
|
|
135
|
+
findModulesDependOnPackage(girModulesGroupedMap, packageName) {
|
|
136
|
+
const girModules = [];
|
|
137
|
+
for (const girModulesGrouped of Object.values(girModulesGroupedMap)) {
|
|
138
|
+
for (const girModuleResolvedBy of girModulesGrouped.modules) {
|
|
139
|
+
if (girModuleResolvedBy.packageName === packageName) {
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
for (const dep of girModuleResolvedBy.module.dependencies) {
|
|
143
|
+
if (dep === packageName && !girModules.includes(girModuleResolvedBy)) {
|
|
144
|
+
girModules.push(girModuleResolvedBy);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return girModules;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Find modules that depend on the module with the names in `packageNames`
|
|
153
|
+
* @param girModulesGroupedMap
|
|
154
|
+
* @param packageName
|
|
155
|
+
*/
|
|
156
|
+
findModulesDependOnPackages(girModulesGroupedMap, packageNames) {
|
|
157
|
+
let girModules = [];
|
|
158
|
+
for (const packageName of packageNames) {
|
|
159
|
+
girModules = girModules.concat(this.findModulesDependOnPackage(girModulesGroupedMap, packageName));
|
|
160
|
+
}
|
|
161
|
+
return girModules;
|
|
162
|
+
}
|
|
163
|
+
async askForVersionsPrompt(girModulesGrouped) {
|
|
164
|
+
const question = this.generateModuleVersionQuestion(girModulesGrouped);
|
|
165
|
+
const choices = question.choices;
|
|
166
|
+
if (!choices) {
|
|
167
|
+
throw new Error('No valid questions!');
|
|
168
|
+
}
|
|
169
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
170
|
+
const selected = (await inquirer.prompt([question]))[girModulesGrouped.namespace];
|
|
171
|
+
if (!selected) {
|
|
172
|
+
throw new Error('No valid answer!');
|
|
173
|
+
}
|
|
174
|
+
if (selected === 'All') {
|
|
175
|
+
return {
|
|
176
|
+
selected: choices.filter((choice) => choice !== 'All'),
|
|
177
|
+
unselected: [],
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
const unselected = choices.filter((choice) => choice !== selected);
|
|
181
|
+
return {
|
|
182
|
+
selected: [selected],
|
|
183
|
+
unselected,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* If multiple versions of the same module are found, this will aks the user with input prompts for the version he wish to use.
|
|
188
|
+
* Ignores also modules that depend on a module that should be ignored
|
|
189
|
+
* @param resolveFirModules
|
|
190
|
+
*/
|
|
191
|
+
async askForEachConflictVersionsPrompt(girModulesGroupedMap, ignore) {
|
|
192
|
+
let keep = new Set();
|
|
193
|
+
for (const girModulesGrouped of Object.values(girModulesGroupedMap)) {
|
|
194
|
+
// Remove ignored modules from group
|
|
195
|
+
girModulesGrouped.modules = girModulesGrouped.modules.filter((girGroup) => !ignore.includes(girGroup.packageName));
|
|
196
|
+
girModulesGrouped.hasConflict = girModulesGrouped.modules.length >= 2;
|
|
197
|
+
if (girModulesGrouped.modules.length <= 0) {
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
// Ask for version if there is a conflict
|
|
201
|
+
if (!girModulesGrouped.hasConflict) {
|
|
202
|
+
keep = union(keep, girModulesGrouped.modules);
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
let goBack = true;
|
|
206
|
+
let versionAnswer = null;
|
|
207
|
+
let ignoreDepsAnswer = null;
|
|
208
|
+
let wouldIgnoreDeps = [];
|
|
209
|
+
while (goBack) {
|
|
210
|
+
versionAnswer = await this.askForVersionsPrompt(girModulesGrouped);
|
|
211
|
+
// Check modules that depend on the unchosen modules
|
|
212
|
+
wouldIgnoreDeps = this.findModulesDependOnPackages(girModulesGroupedMap, versionAnswer.unselected);
|
|
213
|
+
// Do not check dependencies that have already been ignored
|
|
214
|
+
wouldIgnoreDeps = wouldIgnoreDeps.filter((dep) => !ignore.includes(dep.packageName));
|
|
215
|
+
ignoreDepsAnswer = await this.askIgnoreDepsPrompt(wouldIgnoreDeps);
|
|
216
|
+
goBack = ignoreDepsAnswer === 'Go back';
|
|
217
|
+
}
|
|
218
|
+
if (!versionAnswer) {
|
|
219
|
+
throw new Error('Error in processing the prompt versionAnswer');
|
|
220
|
+
}
|
|
221
|
+
if (ignoreDepsAnswer === 'Yes') {
|
|
222
|
+
// Also ignore the dependencies of the unselected version
|
|
223
|
+
ignore = ignore.concat(wouldIgnoreDeps.map((dep) => dep.packageName));
|
|
224
|
+
}
|
|
225
|
+
const unionMe = this.sortVersionsByAnswer(girModulesGrouped, versionAnswer.selected);
|
|
226
|
+
// Do not ignore the selected package version
|
|
227
|
+
keep = union(keep, unionMe.keep);
|
|
228
|
+
// Ignore the unchosen package versions
|
|
229
|
+
ignore = ignore.concat(unionMe.ignore);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (ignore && ignore.length > 0) {
|
|
233
|
+
const ignoreLogList = '- ' + ignore.join('\n- ');
|
|
234
|
+
this.log.log(bold(`\n The following modules will be ignored:`));
|
|
235
|
+
this.log.log(`\n${ignoreLogList}\n`);
|
|
236
|
+
await this.askAddToIgnoreToConfigPrompt(ignore);
|
|
237
|
+
}
|
|
238
|
+
return {
|
|
239
|
+
keep,
|
|
240
|
+
ignore,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Asks via cli prompt if the user wants to add the ignored modules to his config file
|
|
245
|
+
* @param ignore
|
|
246
|
+
*/
|
|
247
|
+
async askAddToIgnoreToConfigPrompt(ignore) {
|
|
248
|
+
const questions = [
|
|
249
|
+
{
|
|
250
|
+
name: 'addToIgnore',
|
|
251
|
+
message: `Do you want to add the ignored modules to your config so that you don't need to select them again next time?\n Config path: '${Config.configFilePath}`,
|
|
252
|
+
type: 'list',
|
|
253
|
+
choices: ['No', 'Yes'],
|
|
254
|
+
},
|
|
255
|
+
];
|
|
256
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
257
|
+
const answer = await inquirer.prompt(questions);
|
|
258
|
+
if (answer.addToIgnore === 'Yes') {
|
|
259
|
+
await Config.addToConfig({
|
|
260
|
+
ignore: Array.from(ignore),
|
|
261
|
+
});
|
|
262
|
+
this.log.log(`Add ignored modules to '${Config.configFilePath}'`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Figure out transitive module dependencies
|
|
267
|
+
* @param packageName
|
|
268
|
+
* @param result
|
|
269
|
+
*/
|
|
270
|
+
traverseDependencies(packageName, result = {}) {
|
|
271
|
+
const deps = this.modDependencyMap[packageName];
|
|
272
|
+
if (isIterable(deps)) {
|
|
273
|
+
for (const dep of deps) {
|
|
274
|
+
if (result[dep.packageName])
|
|
275
|
+
continue;
|
|
276
|
+
result[dep.packageName] = 1;
|
|
277
|
+
this.traverseDependencies(dep.packageName, result);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Extends the modDependencyMap by the current Module,
|
|
283
|
+
* should be called for each girModule so that the modDependencyMap is complete
|
|
284
|
+
* @param girModule
|
|
285
|
+
*/
|
|
286
|
+
extendDependencyMapByGirModule(girModule) {
|
|
287
|
+
this.modDependencyMap[girModule.packageName || '-'] = map(girModule.dependencies || [], (packageName) => {
|
|
288
|
+
const { namespace, version } = splitModuleName(packageName);
|
|
289
|
+
return {
|
|
290
|
+
namespace,
|
|
291
|
+
version,
|
|
292
|
+
packageName,
|
|
293
|
+
};
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Sets the traverse dependencies for the current girModule,
|
|
298
|
+
* is required so that all dependencies can be found internally when generating the dependency imports for the module .d.ts file
|
|
299
|
+
* @param girModules
|
|
300
|
+
*/
|
|
301
|
+
setTraverseDependenciesForModules(girModules) {
|
|
302
|
+
for (const girModule of girModules) {
|
|
303
|
+
const result = {};
|
|
304
|
+
this.traverseDependencies(girModule.packageName, result);
|
|
305
|
+
girModule.module.transitiveDependencies = Object.keys(result);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Reads a gir xml module file and creates an object of GirModule.
|
|
310
|
+
* Also sets the setDependencyMap
|
|
311
|
+
* @param fillName
|
|
312
|
+
* @param config
|
|
313
|
+
*/
|
|
314
|
+
async loadAndCreateGirModule(packageName) {
|
|
315
|
+
const file = findFileInDirs(this.config.girDirectories, packageName + '.gir');
|
|
316
|
+
if (!file.exists || file.path === null) {
|
|
317
|
+
return null;
|
|
318
|
+
}
|
|
319
|
+
this.log.log(`Parsing ${file.path}...`);
|
|
320
|
+
const fileContents = fs.readFileSync(file.path, 'utf8');
|
|
321
|
+
const result = (await xml2js.parseStringPromise(fileContents));
|
|
322
|
+
const girModule = new GirModule(result, this.config);
|
|
323
|
+
// Figure out transitive module dependencies
|
|
324
|
+
this.extendDependencyMapByGirModule(girModule);
|
|
325
|
+
return girModule;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Returns a girModule found by `packageName` property
|
|
329
|
+
* @param girModules Array of girModules
|
|
330
|
+
* @param packageNames Full name like 'Gtk-3.0' you are looking for
|
|
331
|
+
*/
|
|
332
|
+
findGirModuleByFullNames(girModules, packageNames) {
|
|
333
|
+
return girModules.filter((girModule) => packageNames.includes(girModule.packageName));
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Checks if a girModules with the `packageNames` exists
|
|
337
|
+
* @param girModules
|
|
338
|
+
* @param packageName
|
|
339
|
+
*/
|
|
340
|
+
existsGirModules(girModules, packageNames) {
|
|
341
|
+
const foundModule = this.findGirModuleByFullNames(girModules, packageNames);
|
|
342
|
+
return foundModule.length > 0;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Reads the gir xml module files and creates an object of GirModule for each module
|
|
346
|
+
* @param girModulesToRead
|
|
347
|
+
* @param girModules
|
|
348
|
+
* @param resolvedBy
|
|
349
|
+
* @param failedGirModules
|
|
350
|
+
* @param ignoreDependencies
|
|
351
|
+
* @returns
|
|
352
|
+
*/
|
|
353
|
+
async loadGirModules(girModulesToRead, ignoreDependencies = [], girModules = [], resolvedBy = ResolveType.BY_HAND, failedGirModules = new Set()) {
|
|
354
|
+
// A copy is needed here because we are changing the array for the while loop
|
|
355
|
+
const girToLoad = Array.from(girModulesToRead);
|
|
356
|
+
let newModuleFound = false;
|
|
357
|
+
while (girToLoad.length > 0) {
|
|
358
|
+
const packageName = girToLoad.shift() || 'unknown';
|
|
359
|
+
if (!packageName)
|
|
360
|
+
throw new Error(`Module name '${packageName} 'not found!`);
|
|
361
|
+
// If module has not already been loaded
|
|
362
|
+
if (!this.existsGirModules(girModules, [packageName])) {
|
|
363
|
+
const girModule = await this.loadAndCreateGirModule(packageName);
|
|
364
|
+
if (!girModule) {
|
|
365
|
+
if (!failedGirModules.has(packageName)) {
|
|
366
|
+
this.log.warn(WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE(packageName));
|
|
367
|
+
failedGirModules.add(packageName);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
else if (girModule && girModule.packageName) {
|
|
371
|
+
const addModule = {
|
|
372
|
+
packageName: girModule.packageName,
|
|
373
|
+
module: girModule,
|
|
374
|
+
resolvedBy,
|
|
375
|
+
};
|
|
376
|
+
girModules.push(addModule);
|
|
377
|
+
newModuleFound = true;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
if (!newModuleFound) {
|
|
382
|
+
return {
|
|
383
|
+
loaded: girModules,
|
|
384
|
+
failed: failedGirModules,
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
// Figure out transitive module dependencies
|
|
388
|
+
this.setTraverseDependenciesForModules(girModules);
|
|
389
|
+
// Load girModules for dependencies
|
|
390
|
+
for (const girModule of girModules) {
|
|
391
|
+
// Load dependencies
|
|
392
|
+
const transitiveDependencies = girModule.module.transitiveDependencies;
|
|
393
|
+
if (transitiveDependencies.length > 0) {
|
|
394
|
+
for (const transitiveDependency of transitiveDependencies) {
|
|
395
|
+
if (ignoreDependencies.includes(transitiveDependency)) {
|
|
396
|
+
this.log.warn(`Load dependency "${transitiveDependency}" which is in the ignore list, if this should really be ignored also ignore "${girModule.packageName}"`);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
await this.loadGirModules(transitiveDependencies, ignoreDependencies, girModules, ResolveType.DEPENDENCE, failedGirModules);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
return {
|
|
403
|
+
loaded: girModules,
|
|
404
|
+
failed: failedGirModules,
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Find modules with the possibility to use wild cards for module names. E.g. `Gtk*` or `'*'`
|
|
409
|
+
* @param girDirectories
|
|
410
|
+
* @param modules
|
|
411
|
+
*/
|
|
412
|
+
async findModules(modules, ignore = []) {
|
|
413
|
+
const foundModules = new Set();
|
|
414
|
+
for (let i = 0; i < modules.length; i++) {
|
|
415
|
+
if (modules[i]) {
|
|
416
|
+
const filename = `${modules[i]}.gir`;
|
|
417
|
+
let files = [];
|
|
418
|
+
for (const girDirectory of this.config.girDirectories) {
|
|
419
|
+
files = files.concat(await glob(filename, { cwd: girDirectory }));
|
|
420
|
+
}
|
|
421
|
+
let globModules = files.map((file) => Path.basename(file, '.gir'));
|
|
422
|
+
// Filter out the ignored modules
|
|
423
|
+
globModules = globModules.filter((mod) => {
|
|
424
|
+
const isIgnored = ignore.includes(mod);
|
|
425
|
+
if (isIgnored) {
|
|
426
|
+
this.log.warn(`Ignore ${mod}`);
|
|
427
|
+
}
|
|
428
|
+
return !isIgnored;
|
|
429
|
+
});
|
|
430
|
+
globModules.forEach((mod) => foundModules.add(mod));
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
return foundModules;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Loads all found modules and sorts out those that the user does not want to use including their dependencies
|
|
437
|
+
* @param girDirectories
|
|
438
|
+
* @param modules
|
|
439
|
+
*/
|
|
440
|
+
async getModulesResolved(modules, ignore = [], doNotAskForVersionOnConflict = true) {
|
|
441
|
+
const foundGirModules = await this.findModules(modules, ignore);
|
|
442
|
+
const { loaded, failed } = await this.loadGirModules(foundGirModules, ignore);
|
|
443
|
+
let keep = [];
|
|
444
|
+
if (doNotAskForVersionOnConflict) {
|
|
445
|
+
keep = loaded;
|
|
446
|
+
}
|
|
447
|
+
else {
|
|
448
|
+
const girModulesGrouped = this.groupGirFiles(loaded);
|
|
449
|
+
const filtered = await this.askForEachConflictVersionsPrompt(girModulesGrouped, ignore);
|
|
450
|
+
keep = Array.from(filtered.keep);
|
|
451
|
+
}
|
|
452
|
+
const grouped = this.groupGirFiles(keep);
|
|
453
|
+
return { keep, grouped, ignore, failed };
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Find modules with the possibility to use wild cards for module names. E.g. `Gtk*` or `'*'`
|
|
457
|
+
* @param girDirectories
|
|
458
|
+
* @param modules
|
|
459
|
+
*/
|
|
460
|
+
async getModules(modules, ignore = []) {
|
|
461
|
+
const foundGirModules = await this.findModules(modules, ignore);
|
|
462
|
+
const { loaded, failed } = await this.loadGirModules(foundGirModules, ignore);
|
|
463
|
+
const grouped = this.groupGirFiles(loaded);
|
|
464
|
+
return { grouped, loaded, failed: Array.from(failed) };
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
//# sourceMappingURL=module-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-loader.js","sourceRoot":"","sources":["../src/module-loader.ts"],"names":[],"mappings":"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"}
|
package/lib/start.d.ts
ADDED
package/lib/start.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import yargs from 'yargs';
|
|
3
|
+
import { hideBin } from 'yargs/helpers';
|
|
4
|
+
import { generate, list, doc } from './commands/index.js';
|
|
5
|
+
import { Config } from './config.js';
|
|
6
|
+
void yargs(hideBin(process.argv))
|
|
7
|
+
.scriptName(Config.appName)
|
|
8
|
+
.strict()
|
|
9
|
+
.usage(Config.usage)
|
|
10
|
+
.command(generate.command, generate.description, generate.builder, generate.handler)
|
|
11
|
+
.command(list.command, list.description, list.builder, list.handler)
|
|
12
|
+
.command(doc.command, doc.description, doc.builder, doc.handler)
|
|
13
|
+
.demandCommand(1)
|
|
14
|
+
.help().argv;
|
|
15
|
+
//# sourceMappingURL=start.js.map
|
package/lib/start.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5B,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;KACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;KACnF,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;KACnE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;KAC/D,aAAa,CAAC,CAAC,CAAC;KAChB,IAAI,EAAE,CAAC,IAAI,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { GenerateConfig, GirAnyElement } from './types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* The SymTable is used to get any Type from any dependency to compare or to get information from
|
|
4
|
+
*/
|
|
5
|
+
export declare class SymTable {
|
|
6
|
+
private readonly config;
|
|
7
|
+
private readonly modPackageName;
|
|
8
|
+
private readonly modNamespace;
|
|
9
|
+
/**
|
|
10
|
+
* The items are static because any GirModule has the same items to be able to access the types of dependencies as well
|
|
11
|
+
*/
|
|
12
|
+
private static items;
|
|
13
|
+
private log;
|
|
14
|
+
constructor(config: GenerateConfig, modPackageName: string, modNamespace: string);
|
|
15
|
+
/**
|
|
16
|
+
* Get symTable key, we use this method to prepend the package version to each key to prevent version conflicts e.g. in 'Gtk-3.0' and 'Gtk-4.0'
|
|
17
|
+
* @param implementation E.g. Gtk.Window
|
|
18
|
+
* @returns E.g. 'Gtk-3.0.Gtk.Window'
|
|
19
|
+
*/
|
|
20
|
+
getKey(dependencies: string[], implementation: string): string | null;
|
|
21
|
+
get<T>(dependencies: string[], fullTypeName: string): T | null;
|
|
22
|
+
getByHand<T = GirAnyElement>(key: string): T | null;
|
|
23
|
+
set(dependencies: string[], fullTypeName: string, GirElement: GirAnyElement): void;
|
|
24
|
+
}
|