@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,20 @@
|
|
|
1
|
+
import { TsType, TsDoc, TypeGirParameter, TsFunction } from './index.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Holds the data to generate a parameter of a function or return value in/for Typescript
|
|
5
|
+
*/
|
|
6
|
+
export interface TsParameter {
|
|
7
|
+
name: string
|
|
8
|
+
type: TsType[]
|
|
9
|
+
|
|
10
|
+
/** The parent function of this parameter */
|
|
11
|
+
parent: TsFunction
|
|
12
|
+
|
|
13
|
+
/** If `true` the parameter is a rest parameter like `(...names: string[])` */
|
|
14
|
+
isRest: boolean
|
|
15
|
+
|
|
16
|
+
girTypeName: TypeGirParameter
|
|
17
|
+
|
|
18
|
+
/** Typescript data to generate documentations in TSDoc style */
|
|
19
|
+
doc: TsDoc
|
|
20
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TsVar, TsDoc, TypeGirProperty, TypeTsProperty } from './index.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Holds the data to generate a property in/for Typescript
|
|
5
|
+
*/
|
|
6
|
+
export interface TsProperty extends TsVar {
|
|
7
|
+
readonly: boolean
|
|
8
|
+
isStatic: boolean
|
|
9
|
+
/** Temporary property, we will try later to resolve the conflicts correctly */
|
|
10
|
+
hasUnresolvedConflict?: boolean
|
|
11
|
+
|
|
12
|
+
/** true if this function was injected using the `Injector`. This information is used in the `ConflictResolver` */
|
|
13
|
+
isInjected: boolean
|
|
14
|
+
|
|
15
|
+
// CUSTOM
|
|
16
|
+
girTypeName: TypeGirProperty
|
|
17
|
+
/** Will be exported in Typescript as a `field` of a `class` or as a "constructor-property" */
|
|
18
|
+
tsTypeName: TypeTsProperty
|
|
19
|
+
|
|
20
|
+
/** Typescript data to generate documentations in TSDoc style */
|
|
21
|
+
doc: TsDoc
|
|
22
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TsMethod, TsCallback, TsCallbackInterface } from './index.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Holds the data to generate a function in/for Typescript for `GirSignal`
|
|
5
|
+
*/
|
|
6
|
+
export interface TsSignal extends TsCallback {
|
|
7
|
+
/** Signal functions like `connect`, `connect_after`, `disconnect` and `emit` on Gjs or `connect`, `after`, `on`, `once`, `off` and `emit` an node-gtk */
|
|
8
|
+
tsMethods: TsMethod[]
|
|
9
|
+
|
|
10
|
+
/** Signal overloads, used in `ConflictResolver` */
|
|
11
|
+
overloads: TsSignal[]
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Interface for the callback type
|
|
15
|
+
*/
|
|
16
|
+
tsCallbackInterface?: TsCallbackInterface
|
|
17
|
+
|
|
18
|
+
girTypeName: 'signal'
|
|
19
|
+
/** Signals are represented in Typescript as multiple event methods */
|
|
20
|
+
tsTypeName: 'event-methods'
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type TsTypeName = 'function' | 'method' | 'static-function' | 'interface' | 'event-methods' | 'constructor'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type TsTypeSeparator = '&' | '|'
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { GirCallbackElement, TsGenericParameter, TsTypeSeparator } from './index.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Holds the data to generate a type in/for Typescript
|
|
5
|
+
*/
|
|
6
|
+
export interface TsType {
|
|
7
|
+
// TODO: move option property to `TsParameter` and add the `undefined` type to types
|
|
8
|
+
optional: boolean
|
|
9
|
+
nullable: boolean
|
|
10
|
+
type: string
|
|
11
|
+
callbacks: GirCallbackElement[]
|
|
12
|
+
generics: TsGenericParameter[]
|
|
13
|
+
// TODO: transform array to type with generics?
|
|
14
|
+
isArray: boolean
|
|
15
|
+
isFunction: boolean
|
|
16
|
+
isCallback: boolean
|
|
17
|
+
/**
|
|
18
|
+
* Left type separated, used if multiple types found.
|
|
19
|
+
* If nothing os set, `|` will be used by default.
|
|
20
|
+
*
|
|
21
|
+
* @Example
|
|
22
|
+
* `string | number` or `Gtk.Window & Gtk.Widget`
|
|
23
|
+
* */
|
|
24
|
+
leftSeparator?: TsTypeSeparator
|
|
25
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TsType, TsDoc } from './index.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Holds the data to generate a variable in/for Typescript
|
|
5
|
+
*/
|
|
6
|
+
export interface TsVar {
|
|
7
|
+
name: string | null
|
|
8
|
+
type: TsType[]
|
|
9
|
+
/** Temporary property, we will try later to resolve the conflicts correctly */
|
|
10
|
+
hasUnresolvedConflict?: boolean
|
|
11
|
+
|
|
12
|
+
/** true if this function was injected using the `Injector`. This information is used in the `ConflictResolver` */
|
|
13
|
+
isInjected: boolean
|
|
14
|
+
|
|
15
|
+
girTypeName: 'constant' | 'field' | 'property'
|
|
16
|
+
/** Will be exported in Typescript as a `constant` or a `field` of a `class` */
|
|
17
|
+
tsTypeName: 'constant' | 'static-property' | 'property' | 'constructor-property'
|
|
18
|
+
|
|
19
|
+
/** Typescript data to generate documentations in TSDoc style */
|
|
20
|
+
doc: TsDoc
|
|
21
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
TypeGirClass,
|
|
3
|
+
TypeGirMethod,
|
|
4
|
+
TypeGirVariable,
|
|
5
|
+
TypeGirAlias,
|
|
6
|
+
TypeGirEnumeration,
|
|
7
|
+
TypeGirEnumerationMember,
|
|
8
|
+
TypeGirInterface,
|
|
9
|
+
TypeGirParameter,
|
|
10
|
+
TypeGirProperty,
|
|
11
|
+
TypeGirFunction,
|
|
12
|
+
} from './index.js'
|
|
13
|
+
|
|
14
|
+
/** Any gir element type */
|
|
15
|
+
export type TypeGirElement =
|
|
16
|
+
| TypeGirClass
|
|
17
|
+
| TypeGirMethod
|
|
18
|
+
| TypeGirVariable
|
|
19
|
+
| TypeGirAlias
|
|
20
|
+
| TypeGirEnumeration
|
|
21
|
+
| TypeGirEnumerationMember
|
|
22
|
+
| TypeGirInterface
|
|
23
|
+
| TypeGirParameter
|
|
24
|
+
| TypeGirProperty
|
|
25
|
+
| TypeGirFunction
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type TypeGirParameter = 'callable-param'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type TypeGirVariable = 'constant'
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TypeTsFunction, TypeTsProperty } from './index.js'
|
|
2
|
+
|
|
3
|
+
/** Any typescript element type */
|
|
4
|
+
export type TypeTsElement =
|
|
5
|
+
| 'class'
|
|
6
|
+
| 'interface'
|
|
7
|
+
| 'enum'
|
|
8
|
+
| 'enum-member'
|
|
9
|
+
| 'constant'
|
|
10
|
+
| 'event-methods'
|
|
11
|
+
| 'type'
|
|
12
|
+
| TypeTsFunction
|
|
13
|
+
| TypeTsProperty
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type TypeTsFunction = 'static-function' | 'constructor' | 'function' | 'method' | 'event-methods' | 'interface'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type TypeTsProperty = 'static-property' | 'property' | 'constructor-property'
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BuildType, Environment, ModuleType } from './index.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Types for config file
|
|
5
|
+
*/
|
|
6
|
+
export interface UserConfig {
|
|
7
|
+
/** javascript environment */
|
|
8
|
+
environments: Environment[]
|
|
9
|
+
/** directory to output to */
|
|
10
|
+
outdir: string | null
|
|
11
|
+
/** Definitions generation type */
|
|
12
|
+
buildType?: BuildType
|
|
13
|
+
/** Module type, can be CommonJS or ESM */
|
|
14
|
+
moduleType?: ModuleType
|
|
15
|
+
/** GIR directories */
|
|
16
|
+
girDirectories: string[]
|
|
17
|
+
/** Switch on/off the verbose mode */
|
|
18
|
+
verbose: boolean
|
|
19
|
+
/** Do not ask for package versions if multiple versions are found */
|
|
20
|
+
ignoreVersionConflicts: boolean
|
|
21
|
+
/** print the output to console and create no files */
|
|
22
|
+
print: boolean
|
|
23
|
+
/** prettifies the generated .d.ts files */
|
|
24
|
+
pretty: boolean
|
|
25
|
+
/** GIR modules to load, e.g. 'Gio-2.0'. Accepts multiple modules */
|
|
26
|
+
modules: string[]
|
|
27
|
+
/** modules that should be ignored */
|
|
28
|
+
ignore?: string[]
|
|
29
|
+
/** Export all symbols for each module as a namespace */
|
|
30
|
+
useNamespace: boolean
|
|
31
|
+
/** Do not generate documentation comments */
|
|
32
|
+
noComments: boolean
|
|
33
|
+
/** Do not generate debugging inline comments */
|
|
34
|
+
noDebugComments: boolean
|
|
35
|
+
/** Disable typescript semantic checks using @ts-nocheck */
|
|
36
|
+
noCheck: boolean
|
|
37
|
+
/** Fix Inheritance and implementation type conflicts */
|
|
38
|
+
fixConflicts: boolean
|
|
39
|
+
}
|
package/src/utils.ts
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/unbound-method */
|
|
2
|
+
import lodash from 'lodash'
|
|
3
|
+
import Path from 'path'
|
|
4
|
+
import fs from 'fs'
|
|
5
|
+
import { fileURLToPath } from 'url'
|
|
6
|
+
import { Environment, GirInfoAttrs, TsType } from './types/index.js'
|
|
7
|
+
import { inspect } from 'util'
|
|
8
|
+
import { Logger } from './logger.js'
|
|
9
|
+
|
|
10
|
+
import { COMMENT_REG_EXP, PARAM_REG_EXP, OPT_PARAM_REG_EXP } from './constants.js'
|
|
11
|
+
|
|
12
|
+
export { inspect }
|
|
13
|
+
|
|
14
|
+
export const isEqual = lodash.isEqual
|
|
15
|
+
|
|
16
|
+
export const map = lodash.map
|
|
17
|
+
|
|
18
|
+
export const find = lodash.find
|
|
19
|
+
|
|
20
|
+
export const merge = lodash.merge
|
|
21
|
+
|
|
22
|
+
export const clone = lodash.clone
|
|
23
|
+
|
|
24
|
+
export const cloneDeep = lodash.cloneDeep
|
|
25
|
+
|
|
26
|
+
export const splitModuleName = (packageName: string): { packageName: string; namespace: string; version: string } => {
|
|
27
|
+
// There are modules that use multiple hyphens like 'GUPnP-DLNA-1.0'
|
|
28
|
+
const splits = packageName.split('-')
|
|
29
|
+
const version = splits.splice(-1, 1)[0]
|
|
30
|
+
const namespace = splits.join('-')
|
|
31
|
+
return {
|
|
32
|
+
packageName,
|
|
33
|
+
namespace,
|
|
34
|
+
version,
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Remove namespace prefix */
|
|
39
|
+
export const removeNamespace = (type: string, namespace: string) => {
|
|
40
|
+
if (type.startsWith(namespace + '.')) {
|
|
41
|
+
type = type.substring(namespace.length + 1)
|
|
42
|
+
}
|
|
43
|
+
return type
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Remove class module name prefix */
|
|
47
|
+
export const removeClassModule = removeNamespace
|
|
48
|
+
|
|
49
|
+
export const addNamespace = (type: string, namespace: string) => {
|
|
50
|
+
if (!type.startsWith(namespace + '.')) {
|
|
51
|
+
type = namespace + '.' + type
|
|
52
|
+
}
|
|
53
|
+
return type
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Checking whether some variable is iterable
|
|
58
|
+
* see https://stackoverflow.com/a/32538867
|
|
59
|
+
* @param obj Variable to check for iterable
|
|
60
|
+
*/
|
|
61
|
+
export const isIterable = (obj: unknown[]): boolean => {
|
|
62
|
+
return obj != null && typeof obj[Symbol.iterator] === 'function'
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export const isNumeric = (str: string): boolean => {
|
|
66
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
|
+
return !isNaN((str as any) - parseFloat(str))
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export const getFirstChar = (str: string): string => {
|
|
71
|
+
return str.charAt(0)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export const getLastChar = (str: string): string => {
|
|
75
|
+
return str.charAt(str.length - 1)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export const isFirstCharNumeric = (str: string): boolean => {
|
|
79
|
+
return isNumeric(getFirstChar(str))
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export const camelCase = (str: string): string => {
|
|
83
|
+
return str
|
|
84
|
+
.replace(/\s(.)|(\s|-|_|\.)(.)/g, (a) => {
|
|
85
|
+
return a.toUpperCase()
|
|
86
|
+
})
|
|
87
|
+
.replace(/(\s|-|_|\.)/g, '')
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export const lowerCamelCase = (str: string): string => {
|
|
91
|
+
str = camelCase(str)
|
|
92
|
+
str = getFirstChar(str).toLowerCase() + str.slice(1)
|
|
93
|
+
return str
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export const upperCamelCase = (str: string): string => {
|
|
97
|
+
str = camelCase(str)
|
|
98
|
+
str = getFirstChar(str).toUpperCase() + str.slice(1)
|
|
99
|
+
return str
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export const findFileInDirs = (dirs: string[], filename: string): { path: string | null; exists: boolean } => {
|
|
103
|
+
let exists = false
|
|
104
|
+
for (const dir of dirs) {
|
|
105
|
+
const filePath = Path.join(dir, filename)
|
|
106
|
+
exists = fs.existsSync(filePath)
|
|
107
|
+
if (exists) {
|
|
108
|
+
return {
|
|
109
|
+
path: filePath,
|
|
110
|
+
exists,
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
path: null,
|
|
116
|
+
exists,
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Union (a ∪ b): create a set that contains the elements of both set a and set b.
|
|
122
|
+
* See https://2ality.com/2015/01/es6-set-operations.html#union
|
|
123
|
+
* @param target
|
|
124
|
+
* @param source
|
|
125
|
+
*/
|
|
126
|
+
export const union = <T>(target: Set<T> | T[], source: Set<T> | T[]): Set<T> => {
|
|
127
|
+
return (target = new Set<T>([...target, ...source]))
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export const stripParamNames = (func: string, ignoreTail = false): string => {
|
|
131
|
+
const g = func
|
|
132
|
+
func = func.replace(COMMENT_REG_EXP, '')
|
|
133
|
+
const lb = func.split('(', 2)
|
|
134
|
+
if (lb.length < 2) Logger.error(`Bad function definition ${g}`)
|
|
135
|
+
const rb = lb[1].split(')')
|
|
136
|
+
const tail = ignoreTail ? '' : rb[rb.length - 1]
|
|
137
|
+
let params = rb.slice(0, rb.length - 1).join(')')
|
|
138
|
+
params = params.replace(PARAM_REG_EXP, ':')
|
|
139
|
+
params = params.replace(OPT_PARAM_REG_EXP, '?:')
|
|
140
|
+
return `${lb[0]}(${params})${tail}`
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
export const isCommentLine = (line: string) => {
|
|
144
|
+
const lineTrim = line.trim()
|
|
145
|
+
return lineTrim.startsWith('//') || (lineTrim.startsWith('/*') && lineTrim.endsWith('*/'))
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export const generateIndent = (indents = 1, spaceForIndent = 4): string => {
|
|
149
|
+
return ' '.repeat(indents * spaceForIndent)
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Get __dirname on ESM
|
|
153
|
+
export const __filename = fileURLToPath(import.meta.url)
|
|
154
|
+
export const __dirname = Path.dirname(__filename)
|
|
155
|
+
|
|
156
|
+
export const getEnvironmentDir = (environment: Environment, baseDir: string): string => {
|
|
157
|
+
if (!baseDir.endsWith(environment))
|
|
158
|
+
if (environment === 'gjs' && !baseDir.endsWith('/Gjs')) {
|
|
159
|
+
return Path.join(baseDir, 'Gjs')
|
|
160
|
+
}
|
|
161
|
+
if (environment === 'node' && !baseDir.endsWith('/node-gtk')) {
|
|
162
|
+
return Path.join(baseDir, 'node-gtk')
|
|
163
|
+
}
|
|
164
|
+
return baseDir
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export const getDestPath = (environment: Environment, outputDir: string, outputFilename: string) => {
|
|
168
|
+
const outputEnvDir = getEnvironmentDir(environment, outputDir)
|
|
169
|
+
const destPath = Path.join(outputEnvDir, outputFilename)
|
|
170
|
+
return destPath
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export const girBool = (boolStr: string | undefined, defaultVal = false): boolean => {
|
|
174
|
+
if (boolStr) {
|
|
175
|
+
if (parseInt(boolStr) === 0) return false
|
|
176
|
+
return true
|
|
177
|
+
}
|
|
178
|
+
return defaultVal
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Returns `true` if the definitions in `d1` and `d2` have equivalent signatures
|
|
183
|
+
* @param d1
|
|
184
|
+
* @param d2
|
|
185
|
+
*/
|
|
186
|
+
export const signaturesMatch = (d1: string, d2: string) => {
|
|
187
|
+
if (isCommentLine(d1) || isCommentLine(d2)) return false
|
|
188
|
+
return stripParamNames(d1) == stripParamNames(d2)
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* GirElements contains an attribute `introspectable`, which is a GirBoolean.
|
|
193
|
+
* If this is attribute is falsy the element is not introspectable,
|
|
194
|
+
* this means doesn't exist in the bindings, due in general to missing information in the annotations in the original C code
|
|
195
|
+
*/
|
|
196
|
+
export const girElementIsIntrospectable = (girElement?: { $: GirInfoAttrs & { name: string } }, name?: string) => {
|
|
197
|
+
if (!girElement) {
|
|
198
|
+
return false
|
|
199
|
+
}
|
|
200
|
+
name = name || girElement?.$?.name
|
|
201
|
+
if (!name) {
|
|
202
|
+
return false
|
|
203
|
+
}
|
|
204
|
+
// Handle introspectable only if the attribute is also present...
|
|
205
|
+
if (girElement.$.hasOwnProperty('introspectable') && girElement.$.introspectable !== undefined) {
|
|
206
|
+
return girBool(girElement.$.introspectable, true)
|
|
207
|
+
}
|
|
208
|
+
// ...otherwise we assume that it is introspectable
|
|
209
|
+
return true
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export const typeIsOptional = (types: TsType[]) => {
|
|
213
|
+
for (const type of types) {
|
|
214
|
+
if (type.optional) return true
|
|
215
|
+
}
|
|
216
|
+
return false
|
|
217
|
+
}
|
|
File without changes
|