@ts-for-gir/cli 3.0.0-beta.9 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +160 -35
- package/lib/commands/doc.d.ts +1 -17
- package/lib/commands/doc.js +7 -13
- package/lib/commands/doc.js.map +1 -1
- package/lib/commands/generate.d.ts +1 -37
- package/lib/commands/generate.js +8 -24
- package/lib/commands/generate.js.map +1 -1
- package/lib/commands/list.d.ts +1 -11
- package/lib/commands/list.js +6 -10
- package/lib/commands/list.js.map +1 -1
- package/lib/config.d.ts +21 -5
- package/lib/config.js +164 -86
- package/lib/config.js.map +1 -1
- package/lib/generation-handler.d.ts +3 -4
- package/lib/generation-handler.js +7 -11
- package/lib/generation-handler.js.map +1 -1
- package/lib/index.d.ts +0 -12
- package/lib/index.js +0 -12
- package/lib/index.js.map +1 -1
- package/lib/module-loader.d.ts +35 -24
- package/lib/module-loader.js +3 -8
- package/lib/module-loader.js.map +1 -1
- package/lib/utils.d.ts +0 -262
- package/lib/utils.js +8 -371
- package/lib/utils.js.map +1 -1
- package/package.json +32 -37
- package/src/commands/doc.ts +9 -14
- package/src/commands/generate.ts +10 -24
- package/src/commands/list.ts +8 -10
- package/src/config.ts +178 -92
- package/src/generation-handler.ts +11 -12
- package/src/index.ts +0 -12
- package/src/module-loader.ts +39 -31
- package/src/utils.ts +8 -401
- package/lib/conflict-resolver.d.ts +0 -155
- package/lib/conflict-resolver.js +0 -1103
- package/lib/conflict-resolver.js.map +0 -1
- package/lib/constants.d.ts +0 -18
- package/lib/constants.js +0 -23
- package/lib/constants.js.map +0 -1
- package/lib/dependency-manager.d.ts +0 -34
- package/lib/dependency-manager.js +0 -78
- package/lib/dependency-manager.js.map +0 -1
- package/lib/generator.d.ts +0 -5
- package/lib/generator.js +0 -2
- package/lib/generator.js.map +0 -1
- package/lib/gir-factory.d.ts +0 -51
- package/lib/gir-factory.js +0 -361
- package/lib/gir-factory.js.map +0 -1
- package/lib/gir-module.d.ts +0 -257
- package/lib/gir-module.js +0 -2086
- package/lib/gir-module.js.map +0 -1
- package/lib/html-doc-generator.d.ts +0 -13
- package/lib/html-doc-generator.js +0 -18
- package/lib/html-doc-generator.js.map +0 -1
- package/lib/injection/callbacks/gjs/Gio-2.0.d.ts +0 -2
- package/lib/injection/callbacks/gjs/Gio-2.0.js +0 -36
- package/lib/injection/callbacks/gjs/Gio-2.0.js.map +0 -1
- package/lib/injection/callbacks/gjs/index.d.ts +0 -2
- package/lib/injection/callbacks/gjs/index.js +0 -3
- package/lib/injection/callbacks/gjs/index.js.map +0 -1
- package/lib/injection/callbacks/index.d.ts +0 -4
- package/lib/injection/callbacks/index.js +0 -4
- package/lib/injection/callbacks/index.js.map +0 -1
- package/lib/injection/callbacks/node-gtk/index.d.ts +0 -2
- package/lib/injection/callbacks/node-gtk/index.js +0 -2
- package/lib/injection/callbacks/node-gtk/index.js.map +0 -1
- package/lib/injection/classes/GLib-2-0.d.ts +0 -2
- package/lib/injection/classes/GLib-2-0.js +0 -35
- package/lib/injection/classes/GLib-2-0.js.map +0 -1
- package/lib/injection/classes/gjs/GLib-2.0.d.ts +0 -2
- package/lib/injection/classes/gjs/GLib-2.0.js +0 -200
- package/lib/injection/classes/gjs/GLib-2.0.js.map +0 -1
- package/lib/injection/classes/gjs/GObject-2.0.d.ts +0 -2
- package/lib/injection/classes/gjs/GObject-2.0.js +0 -634
- package/lib/injection/classes/gjs/GObject-2.0.js.map +0 -1
- package/lib/injection/classes/gjs/Gio-2.0.d.ts +0 -5
- package/lib/injection/classes/gjs/Gio-2.0.js +0 -218
- package/lib/injection/classes/gjs/Gio-2.0.js.map +0 -1
- package/lib/injection/classes/gjs/index.d.ts +0 -2
- package/lib/injection/classes/gjs/index.js +0 -5
- package/lib/injection/classes/gjs/index.js.map +0 -1
- package/lib/injection/classes/index.d.ts +0 -4
- package/lib/injection/classes/index.js +0 -5
- package/lib/injection/classes/index.js.map +0 -1
- package/lib/injection/classes/node-gtk/GLib-2.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/GLib-2.0.js +0 -19
- package/lib/injection/classes/node-gtk/GLib-2.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/GObject-2.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/GObject-2.0.js +0 -66
- package/lib/injection/classes/node-gtk/GObject-2.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/Gdk-4.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/Gdk-4.0.js +0 -32
- package/lib/injection/classes/node-gtk/Gdk-4.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/Gio-2.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/Gio-2.0.js +0 -14
- package/lib/injection/classes/node-gtk/Gio-2.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/Graphene-1.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/Graphene-1.0.js +0 -133
- package/lib/injection/classes/node-gtk/Graphene-1.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/Gtk-3.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/Gtk-3.0.js +0 -31
- package/lib/injection/classes/node-gtk/Gtk-3.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/Gtk-4.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/Gtk-4.0.js +0 -52
- package/lib/injection/classes/node-gtk/Gtk-4.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/Pango-1.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/Pango-1.0.js +0 -31
- package/lib/injection/classes/node-gtk/Pango-1.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/index.d.ts +0 -2
- package/lib/injection/classes/node-gtk/index.js +0 -19
- package/lib/injection/classes/node-gtk/index.js.map +0 -1
- package/lib/injection/index.d.ts +0 -3
- package/lib/injection/index.js +0 -4
- package/lib/injection/index.js.map +0 -1
- package/lib/injection/injector.d.ts +0 -17
- package/lib/injection/injector.js +0 -139
- package/lib/injection/injector.js.map +0 -1
- package/lib/logger.d.ts +0 -36
- package/lib/logger.js +0 -137
- package/lib/logger.js.map +0 -1
- package/lib/messages.d.ts +0 -31
- package/lib/messages.js +0 -46
- package/lib/messages.js.map +0 -1
- package/lib/symtable.d.ts +0 -24
- package/lib/symtable.js +0 -63
- package/lib/symtable.js.map +0 -1
- package/lib/template-processor.d.ts +0 -74
- package/lib/template-processor.js +0 -165
- package/lib/template-processor.js.map +0 -1
- package/lib/transformation.d.ts +0 -156
- package/lib/transformation.js +0 -523
- package/lib/transformation.js.map +0 -1
- package/lib/type-definition-generator.d.ts +0 -116
- package/lib/type-definition-generator.js +0 -991
- package/lib/type-definition-generator.js.map +0 -1
- package/lib/types/answer-version.d.ts +0 -4
- package/lib/types/answer-version.js +0 -2
- package/lib/types/answer-version.js.map +0 -1
- package/lib/types/build-type.d.ts +0 -1
- package/lib/types/build-type.js +0 -2
- package/lib/types/build-type.js.map +0 -1
- package/lib/types/class-parent.d.ts +0 -13
- package/lib/types/class-parent.js +0 -2
- package/lib/types/class-parent.js.map +0 -1
- package/lib/types/config-flags.d.ts +0 -4
- package/lib/types/config-flags.js +0 -2
- package/lib/types/config-flags.js.map +0 -1
- package/lib/types/conflict-child-element.d.ts +0 -10
- package/lib/types/conflict-child-element.js +0 -2
- package/lib/types/conflict-child-element.js.map +0 -1
- package/lib/types/conflict-grouped-element.d.ts +0 -6
- package/lib/types/conflict-grouped-element.js +0 -2
- package/lib/types/conflict-grouped-element.js.map +0 -1
- package/lib/types/conflict-grouped-elements.d.ts +0 -4
- package/lib/types/conflict-grouped-elements.js +0 -2
- package/lib/types/conflict-grouped-elements.js.map +0 -1
- package/lib/types/construct-name.d.ts +0 -1
- package/lib/types/construct-name.js +0 -2
- package/lib/types/construct-name.js.map +0 -1
- package/lib/types/dependency-map.d.ts +0 -4
- package/lib/types/dependency-map.js +0 -2
- package/lib/types/dependency-map.js.map +0 -1
- package/lib/types/dependency.d.ts +0 -15
- package/lib/types/dependency.js +0 -2
- package/lib/types/dependency.js.map +0 -1
- package/lib/types/environment.d.ts +0 -1
- package/lib/types/environment.js +0 -2
- package/lib/types/environment.js.map +0 -1
- package/lib/types/file-info.d.ts +0 -14
- package/lib/types/file-info.js +0 -2
- package/lib/types/file-info.js.map +0 -1
- package/lib/types/generate-config.d.ts +0 -32
- package/lib/types/generate-config.js +0 -2
- package/lib/types/generate-config.js.map +0 -1
- package/lib/types/generator-type.d.ts +0 -4
- package/lib/types/generator-type.js +0 -6
- package/lib/types/generator-type.js.map +0 -1
- package/lib/types/gir-alias-element.d.ts +0 -13
- package/lib/types/gir-alias-element.js +0 -2
- package/lib/types/gir-alias-element.js.map +0 -1
- package/lib/types/gir-annotation.d.ts +0 -9
- package/lib/types/gir-annotation.js +0 -2
- package/lib/types/gir-annotation.js.map +0 -1
- package/lib/types/gir-any-element.d.ts +0 -2
- package/lib/types/gir-any-element.js +0 -2
- package/lib/types/gir-any-element.js.map +0 -1
- package/lib/types/gir-any-type.d.ts +0 -5
- package/lib/types/gir-any-type.js +0 -2
- package/lib/types/gir-any-type.js.map +0 -1
- package/lib/types/gir-array-type.d.ts +0 -20
- package/lib/types/gir-array-type.js +0 -3
- package/lib/types/gir-array-type.js.map +0 -1
- package/lib/types/gir-bitfield-element.d.ts +0 -17
- package/lib/types/gir-bitfield-element.js +0 -2
- package/lib/types/gir-bitfield-element.js.map +0 -1
- package/lib/types/gir-boolean.d.ts +0 -1
- package/lib/types/gir-boolean.js +0 -2
- package/lib/types/gir-boolean.js.map +0 -1
- package/lib/types/gir-boxed-element.d.ts +0 -15
- package/lib/types/gir-boxed-element.js +0 -2
- package/lib/types/gir-boxed-element.js.map +0 -1
- package/lib/types/gir-c-include.d.ts +0 -7
- package/lib/types/gir-c-include.js +0 -2
- package/lib/types/gir-c-include.js.map +0 -1
- package/lib/types/gir-callable-attrs.d.ts +0 -15
- package/lib/types/gir-callable-attrs.js +0 -3
- package/lib/types/gir-callable-attrs.js.map +0 -1
- package/lib/types/gir-callable-param-element.d.ts +0 -30
- package/lib/types/gir-callable-param-element.js +0 -2
- package/lib/types/gir-callable-param-element.js.map +0 -1
- package/lib/types/gir-callable-param.d.ts +0 -7
- package/lib/types/gir-callable-param.js +0 -2
- package/lib/types/gir-callable-param.js.map +0 -1
- package/lib/types/gir-callable-return.d.ts +0 -22
- package/lib/types/gir-callable-return.js +0 -2
- package/lib/types/gir-callable-return.js.map +0 -1
- package/lib/types/gir-callback-element.d.ts +0 -15
- package/lib/types/gir-callback-element.js +0 -2
- package/lib/types/gir-callback-element.js.map +0 -1
- package/lib/types/gir-class-element.d.ts +0 -48
- package/lib/types/gir-class-element.js +0 -2
- package/lib/types/gir-class-element.js.map +0 -1
- package/lib/types/gir-constant-element.d.ts +0 -15
- package/lib/types/gir-constant-element.js +0 -2
- package/lib/types/gir-constant-element.js.map +0 -1
- package/lib/types/gir-constructor-element.d.ts +0 -8
- package/lib/types/gir-constructor-element.js +0 -2
- package/lib/types/gir-constructor-element.js.map +0 -1
- package/lib/types/gir-direction.d.ts +0 -5
- package/lib/types/gir-direction.js +0 -7
- package/lib/types/gir-direction.js.map +0 -1
- package/lib/types/gir-doc-element.d.ts +0 -68
- package/lib/types/gir-doc-element.js +0 -2
- package/lib/types/gir-doc-element.js.map +0 -1
- package/lib/types/gir-enum-element.d.ts +0 -19
- package/lib/types/gir-enum-element.js +0 -2
- package/lib/types/gir-enum-element.js.map +0 -1
- package/lib/types/gir-field-element.d.ts +0 -18
- package/lib/types/gir-field-element.js +0 -2
- package/lib/types/gir-field-element.js.map +0 -1
- package/lib/types/gir-function-element.d.ts +0 -8
- package/lib/types/gir-function-element.js +0 -2
- package/lib/types/gir-function-element.js.map +0 -1
- package/lib/types/gir-implements.d.ts +0 -8
- package/lib/types/gir-implements.js +0 -2
- package/lib/types/gir-implements.js.map +0 -1
- package/lib/types/gir-include.d.ts +0 -9
- package/lib/types/gir-include.js +0 -2
- package/lib/types/gir-include.js.map +0 -1
- package/lib/types/gir-info-attrs.d.ts +0 -13
- package/lib/types/gir-info-attrs.js +0 -2
- package/lib/types/gir-info-attrs.js.map +0 -1
- package/lib/types/gir-info-elements.d.ts +0 -5
- package/lib/types/gir-info-elements.js +0 -2
- package/lib/types/gir-info-elements.js.map +0 -1
- package/lib/types/gir-instance-parameter.d.ts +0 -21
- package/lib/types/gir-instance-parameter.js +0 -2
- package/lib/types/gir-instance-parameter.js.map +0 -1
- package/lib/types/gir-interface-element.d.ts +0 -31
- package/lib/types/gir-interface-element.js +0 -2
- package/lib/types/gir-interface-element.js.map +0 -1
- package/lib/types/gir-member-element.d.ts +0 -17
- package/lib/types/gir-member-element.js +0 -2
- package/lib/types/gir-member-element.js.map +0 -1
- package/lib/types/gir-method-element.d.ts +0 -13
- package/lib/types/gir-method-element.js +0 -2
- package/lib/types/gir-method-element.js.map +0 -1
- package/lib/types/gir-module-resolved-by.d.ts +0 -10
- package/lib/types/gir-module-resolved-by.js +0 -2
- package/lib/types/gir-module-resolved-by.js.map +0 -1
- package/lib/types/gir-modules-grouped-map.d.ts +0 -4
- package/lib/types/gir-modules-grouped-map.js +0 -2
- package/lib/types/gir-modules-grouped-map.js.map +0 -1
- package/lib/types/gir-modules-grouped.d.ts +0 -12
- package/lib/types/gir-modules-grouped.js +0 -2
- package/lib/types/gir-modules-grouped.js.map +0 -1
- package/lib/types/gir-namespace.d.ts +0 -30
- package/lib/types/gir-namespace.js +0 -2
- package/lib/types/gir-namespace.js.map +0 -1
- package/lib/types/gir-package.d.ts +0 -7
- package/lib/types/gir-package.js +0 -2
- package/lib/types/gir-package.js.map +0 -1
- package/lib/types/gir-prerequisite.d.ts +0 -5
- package/lib/types/gir-prerequisite.js +0 -2
- package/lib/types/gir-prerequisite.js.map +0 -1
- package/lib/types/gir-property-element.d.ts +0 -21
- package/lib/types/gir-property-element.js +0 -2
- package/lib/types/gir-property-element.js.map +0 -1
- package/lib/types/gir-record-element.d.ts +0 -30
- package/lib/types/gir-record-element.js +0 -2
- package/lib/types/gir-record-element.js.map +0 -1
- package/lib/types/gir-repository.d.ts +0 -16
- package/lib/types/gir-repository.js +0 -2
- package/lib/types/gir-repository.js.map +0 -1
- package/lib/types/gir-signal.d.ts +0 -25
- package/lib/types/gir-signal.js +0 -2
- package/lib/types/gir-signal.js.map +0 -1
- package/lib/types/gir-transfer-ownership-type.d.ts +0 -5
- package/lib/types/gir-transfer-ownership-type.js +0 -7
- package/lib/types/gir-transfer-ownership-type.js.map +0 -1
- package/lib/types/gir-transfer-ownership.d.ts +0 -5
- package/lib/types/gir-transfer-ownership.js +0 -2
- package/lib/types/gir-transfer-ownership.js.map +0 -1
- package/lib/types/gir-type.d.ts +0 -14
- package/lib/types/gir-type.js +0 -2
- package/lib/types/gir-type.js.map +0 -1
- package/lib/types/gir-union-element.d.ts +0 -22
- package/lib/types/gir-union-element.js +0 -2
- package/lib/types/gir-union-element.js.map +0 -1
- package/lib/types/gir-unparsed-number.d.ts +0 -2
- package/lib/types/gir-unparsed-number.js +0 -2
- package/lib/types/gir-unparsed-number.js.map +0 -1
- package/lib/types/gir-var-args.d.ts +0 -5
- package/lib/types/gir-var-args.js +0 -2
- package/lib/types/gir-var-args.js.map +0 -1
- package/lib/types/gir-virtual-method.d.ts +0 -10
- package/lib/types/gir-virtual-method.js +0 -2
- package/lib/types/gir-virtual-method.js.map +0 -1
- package/lib/types/index.d.ts +0 -119
- package/lib/types/index.js +0 -120
- package/lib/types/index.js.map +0 -1
- package/lib/types/inheritance-table.d.ts +0 -3
- package/lib/types/inheritance-table.js +0 -2
- package/lib/types/inheritance-table.js.map +0 -1
- package/lib/types/injection-callback.d.ts +0 -16
- package/lib/types/injection-callback.js +0 -2
- package/lib/types/injection-callback.js.map +0 -1
- package/lib/types/injection-class.d.ts +0 -25
- package/lib/types/injection-class.js +0 -2
- package/lib/types/injection-class.js.map +0 -1
- package/lib/types/injection-function.d.ts +0 -7
- package/lib/types/injection-function.js +0 -2
- package/lib/types/injection-function.js.map +0 -1
- package/lib/types/injection-generic-parameter.d.ts +0 -2
- package/lib/types/injection-generic-parameter.js +0 -2
- package/lib/types/injection-generic-parameter.js.map +0 -1
- package/lib/types/injection-instance-parameter.d.ts +0 -2
- package/lib/types/injection-instance-parameter.js +0 -2
- package/lib/types/injection-instance-parameter.js.map +0 -1
- package/lib/types/injection-parameter.d.ts +0 -8
- package/lib/types/injection-parameter.js +0 -2
- package/lib/types/injection-parameter.js.map +0 -1
- package/lib/types/injection-property.d.ts +0 -4
- package/lib/types/injection-property.js +0 -2
- package/lib/types/injection-property.js.map +0 -1
- package/lib/types/injection-type.d.ts +0 -2
- package/lib/types/injection-type.js +0 -2
- package/lib/types/injection-type.js.map +0 -1
- package/lib/types/injection.d.ts +0 -5
- package/lib/types/injection.js +0 -2
- package/lib/types/injection.js.map +0 -1
- package/lib/types/local-name-check.d.ts +0 -4
- package/lib/types/local-name-check.js +0 -2
- package/lib/types/local-name-check.js.map +0 -1
- package/lib/types/local-name-type.d.ts +0 -1
- package/lib/types/local-name-type.js +0 -2
- package/lib/types/local-name-type.js.map +0 -1
- package/lib/types/local-name.d.ts +0 -7
- package/lib/types/local-name.js +0 -2
- package/lib/types/local-name.js.map +0 -1
- package/lib/types/local-names.d.ts +0 -4
- package/lib/types/local-names.js +0 -2
- package/lib/types/local-names.js.map +0 -1
- package/lib/types/module-type.d.ts +0 -1
- package/lib/types/module-type.js +0 -2
- package/lib/types/module-type.js.map +0 -1
- package/lib/types/parsed-gir.d.ts +0 -4
- package/lib/types/parsed-gir.js +0 -2
- package/lib/types/parsed-gir.js.map +0 -1
- package/lib/types/part-of-class.d.ts +0 -7
- package/lib/types/part-of-class.js +0 -2
- package/lib/types/part-of-class.js.map +0 -1
- package/lib/types/part-of-module.d.ts +0 -6
- package/lib/types/part-of-module.js +0 -2
- package/lib/types/part-of-module.js.map +0 -1
- package/lib/types/promisify-func.d.ts +0 -5
- package/lib/types/promisify-func.js +0 -2
- package/lib/types/promisify-func.js.map +0 -1
- package/lib/types/resolve-type.d.ts +0 -4
- package/lib/types/resolve-type.js +0 -6
- package/lib/types/resolve-type.js.map +0 -1
- package/lib/types/sym-table-items.d.ts +0 -4
- package/lib/types/sym-table-items.js +0 -2
- package/lib/types/sym-table-items.js.map +0 -1
- package/lib/types/transformation-case.d.ts +0 -1
- package/lib/types/transformation-case.js +0 -2
- package/lib/types/transformation-case.js.map +0 -1
- package/lib/types/transformations.d.ts +0 -11
- package/lib/types/transformations.js +0 -2
- package/lib/types/transformations.js.map +0 -1
- package/lib/types/ts-alias.d.ts +0 -10
- package/lib/types/ts-alias.js +0 -2
- package/lib/types/ts-alias.js.map +0 -1
- package/lib/types/ts-callback-interface.d.ts +0 -10
- package/lib/types/ts-callback-interface.js +0 -2
- package/lib/types/ts-callback-interface.js.map +0 -1
- package/lib/types/ts-callback.d.ts +0 -17
- package/lib/types/ts-callback.js +0 -2
- package/lib/types/ts-callback.js.map +0 -1
- package/lib/types/ts-class.d.ts +0 -85
- package/lib/types/ts-class.js +0 -2
- package/lib/types/ts-class.js.map +0 -1
- package/lib/types/ts-doc-tag.d.ts +0 -21
- package/lib/types/ts-doc-tag.js +0 -2
- package/lib/types/ts-doc-tag.js.map +0 -1
- package/lib/types/ts-doc.d.ts +0 -20
- package/lib/types/ts-doc.js +0 -2
- package/lib/types/ts-doc.js.map +0 -1
- package/lib/types/ts-enum.d.ts +0 -12
- package/lib/types/ts-enum.js +0 -2
- package/lib/types/ts-enum.js.map +0 -1
- package/lib/types/ts-function.d.ts +0 -44
- package/lib/types/ts-function.js +0 -2
- package/lib/types/ts-function.js.map +0 -1
- package/lib/types/ts-generic-parameter.d.ts +0 -8
- package/lib/types/ts-generic-parameter.js +0 -2
- package/lib/types/ts-generic-parameter.js.map +0 -1
- package/lib/types/ts-instance-parameter.d.ts +0 -4
- package/lib/types/ts-instance-parameter.js +0 -2
- package/lib/types/ts-instance-parameter.js.map +0 -1
- package/lib/types/ts-member.d.ts +0 -10
- package/lib/types/ts-member.js +0 -2
- package/lib/types/ts-member.js.map +0 -1
- package/lib/types/ts-method.d.ts +0 -5
- package/lib/types/ts-method.js +0 -2
- package/lib/types/ts-method.js.map +0 -1
- package/lib/types/ts-parameter.d.ts +0 -15
- package/lib/types/ts-parameter.js +0 -2
- package/lib/types/ts-parameter.js.map +0 -1
- package/lib/types/ts-property.d.ts +0 -17
- package/lib/types/ts-property.js +0 -2
- package/lib/types/ts-property.js.map +0 -1
- package/lib/types/ts-signal.d.ts +0 -17
- package/lib/types/ts-signal.js +0 -2
- package/lib/types/ts-signal.js.map +0 -1
- package/lib/types/ts-type-name.d.ts +0 -1
- package/lib/types/ts-type-name.js +0 -2
- package/lib/types/ts-type-name.js.map +0 -1
- package/lib/types/ts-type-separator.d.ts +0 -1
- package/lib/types/ts-type-separator.js +0 -2
- package/lib/types/ts-type-separator.js.map +0 -1
- package/lib/types/ts-type.d.ts +0 -22
- package/lib/types/ts-type.js +0 -2
- package/lib/types/ts-type.js.map +0 -1
- package/lib/types/ts-var.d.ts +0 -17
- package/lib/types/ts-var.js +0 -2
- package/lib/types/ts-var.js.map +0 -1
- package/lib/types/type-gir-alias.d.ts +0 -2
- package/lib/types/type-gir-alias.js +0 -2
- package/lib/types/type-gir-alias.js.map +0 -1
- package/lib/types/type-gir-class.d.ts +0 -2
- package/lib/types/type-gir-class.js +0 -2
- package/lib/types/type-gir-class.js.map +0 -1
- package/lib/types/type-gir-element.d.ts +0 -3
- package/lib/types/type-gir-element.js +0 -2
- package/lib/types/type-gir-element.js.map +0 -1
- package/lib/types/type-gir-enumeration-member.d.ts +0 -2
- package/lib/types/type-gir-enumeration-member.js +0 -2
- package/lib/types/type-gir-enumeration-member.js.map +0 -1
- package/lib/types/type-gir-enumeration.d.ts +0 -2
- package/lib/types/type-gir-enumeration.js +0 -2
- package/lib/types/type-gir-enumeration.js.map +0 -1
- package/lib/types/type-gir-function.d.ts +0 -1
- package/lib/types/type-gir-function.js +0 -2
- package/lib/types/type-gir-function.js.map +0 -1
- package/lib/types/type-gir-interface.d.ts +0 -2
- package/lib/types/type-gir-interface.js +0 -2
- package/lib/types/type-gir-interface.js.map +0 -1
- package/lib/types/type-gir-method.d.ts +0 -2
- package/lib/types/type-gir-method.js +0 -2
- package/lib/types/type-gir-method.js.map +0 -1
- package/lib/types/type-gir-parameter.d.ts +0 -1
- package/lib/types/type-gir-parameter.js +0 -2
- package/lib/types/type-gir-parameter.js.map +0 -1
- package/lib/types/type-gir-property.d.ts +0 -2
- package/lib/types/type-gir-property.js +0 -2
- package/lib/types/type-gir-property.js.map +0 -1
- package/lib/types/type-gir-variable.d.ts +0 -1
- package/lib/types/type-gir-variable.js +0 -2
- package/lib/types/type-gir-variable.js.map +0 -1
- package/lib/types/type-ts-element.d.ts +0 -3
- package/lib/types/type-ts-element.js +0 -2
- package/lib/types/type-ts-element.js.map +0 -1
- package/lib/types/type-ts-enumeration-member.d.ts +0 -2
- package/lib/types/type-ts-enumeration-member.js +0 -2
- package/lib/types/type-ts-enumeration-member.js.map +0 -1
- package/lib/types/type-ts-function.d.ts +0 -1
- package/lib/types/type-ts-function.js +0 -2
- package/lib/types/type-ts-function.js.map +0 -1
- package/lib/types/type-ts-property.d.ts +0 -1
- package/lib/types/type-ts-property.js +0 -2
- package/lib/types/type-ts-property.js.map +0 -1
- package/lib/types/user-config-load-result.d.ts +0 -6
- package/lib/types/user-config-load-result.js +0 -2
- package/lib/types/user-config-load-result.js.map +0 -1
- package/lib/types/user-config.d.ts +0 -40
- package/lib/types/user-config.js +0 -2
- package/lib/types/user-config.js.map +0 -1
- package/src/conflict-resolver.ts +0 -1358
- package/src/constants.ts +0 -29
- package/src/dependency-manager.ts +0 -91
- package/src/generator.ts +0 -10
- package/src/gir-factory.ts +0 -499
- package/src/gir-module.ts +0 -2827
- package/src/html-doc-generator.ts +0 -23
- package/src/injection/callbacks/gjs/Gio-2.0.ts +0 -37
- package/src/injection/callbacks/gjs/index.ts +0 -5
- package/src/injection/callbacks/index.ts +0 -6
- package/src/injection/callbacks/node-gtk/index.ts +0 -3
- package/src/injection/classes/GLib-2-0.ts +0 -36
- package/src/injection/classes/gjs/GLib-2.0.ts +0 -201
- package/src/injection/classes/gjs/GObject-2.0.ts +0 -635
- package/src/injection/classes/gjs/Gio-2.0.ts +0 -219
- package/src/injection/classes/gjs/index.ts +0 -7
- package/src/injection/classes/index.ts +0 -7
- package/src/injection/classes/node-gtk/GLib-2.0.ts +0 -20
- package/src/injection/classes/node-gtk/GObject-2.0.ts +0 -67
- package/src/injection/classes/node-gtk/Gdk-4.0.ts +0 -33
- package/src/injection/classes/node-gtk/Gio-2.0.ts +0 -15
- package/src/injection/classes/node-gtk/Graphene-1.0.ts +0 -134
- package/src/injection/classes/node-gtk/Gtk-3.0.ts +0 -32
- package/src/injection/classes/node-gtk/Gtk-4.0.ts +0 -53
- package/src/injection/classes/node-gtk/Pango-1.0.ts +0 -32
- package/src/injection/classes/node-gtk/index.ts +0 -21
- package/src/injection/index.ts +0 -3
- package/src/injection/injector.ts +0 -184
- package/src/logger.ts +0 -134
- package/src/messages.ts +0 -69
- package/src/symtable.ts +0 -72
- package/src/template-processor.ts +0 -199
- package/src/transformation.ts +0 -583
- package/src/type-definition-generator.ts +0 -1460
- package/src/types/answer-version.ts +0 -4
- package/src/types/build-type.ts +0 -1
- package/src/types/class-parent.ts +0 -14
- package/src/types/config-flags.ts +0 -5
- package/src/types/conflict-child-element.ts +0 -11
- package/src/types/conflict-grouped-element.ts +0 -7
- package/src/types/conflict-grouped-elements.ts +0 -5
- package/src/types/construct-name.ts +0 -11
- package/src/types/dependency-map.ts +0 -4
- package/src/types/dependency.ts +0 -16
- package/src/types/environment.ts +0 -1
- package/src/types/file-info.ts +0 -14
- package/src/types/generate-config.ts +0 -33
- package/src/types/generator-type.ts +0 -4
- package/src/types/gir-alias-element.ts +0 -15
- package/src/types/gir-annotation.ts +0 -10
- package/src/types/gir-any-element.ts +0 -35
- package/src/types/gir-any-type.ts +0 -7
- package/src/types/gir-array-type.ts +0 -23
- package/src/types/gir-bitfield-element.ts +0 -20
- package/src/types/gir-boolean.ts +0 -1
- package/src/types/gir-boxed-element.ts +0 -19
- package/src/types/gir-c-include.ts +0 -7
- package/src/types/gir-callable-attrs.ts +0 -19
- package/src/types/gir-callable-param-element.ts +0 -45
- package/src/types/gir-callable-param.ts +0 -9
- package/src/types/gir-callable-return.ts +0 -25
- package/src/types/gir-callback-element.ts +0 -28
- package/src/types/gir-class-element.ts +0 -71
- package/src/types/gir-constant-element.ts +0 -17
- package/src/types/gir-constructor-element.ts +0 -18
- package/src/types/gir-direction.ts +0 -5
- package/src/types/gir-doc-element.ts +0 -73
- package/src/types/gir-enum-element.ts +0 -28
- package/src/types/gir-field-element.ts +0 -31
- package/src/types/gir-function-element.ts +0 -19
- package/src/types/gir-implements.ts +0 -9
- package/src/types/gir-include.ts +0 -9
- package/src/types/gir-info-attrs.ts +0 -16
- package/src/types/gir-info-elements.ts +0 -8
- package/src/types/gir-instance-parameter.ts +0 -25
- package/src/types/gir-interface-element.ts +0 -53
- package/src/types/gir-member-element.ts +0 -19
- package/src/types/gir-method-element.ts +0 -25
- package/src/types/gir-module-resolved-by.ts +0 -11
- package/src/types/gir-modules-grouped-map.ts +0 -5
- package/src/types/gir-modules-grouped.ts +0 -13
- package/src/types/gir-namespace.ts +0 -47
- package/src/types/gir-package.ts +0 -7
- package/src/types/gir-prerequisite.ts +0 -5
- package/src/types/gir-property-element.ts +0 -31
- package/src/types/gir-record-element.ts +0 -47
- package/src/types/gir-repository.ts +0 -20
- package/src/types/gir-signal.ts +0 -43
- package/src/types/gir-transfer-ownership-type.ts +0 -5
- package/src/types/gir-transfer-ownership.ts +0 -6
- package/src/types/gir-type.ts +0 -16
- package/src/types/gir-union-element.ts +0 -35
- package/src/types/gir-unparsed-number.ts +0 -2
- package/src/types/gir-var-args.ts +0 -6
- package/src/types/gir-virtual-method.ts +0 -22
- package/src/types/index.ts +0 -119
- package/src/types/inheritance-table.ts +0 -3
- package/src/types/injection-callback.ts +0 -20
- package/src/types/injection-class.ts +0 -30
- package/src/types/injection-function.ts +0 -23
- package/src/types/injection-generic-parameter.ts +0 -3
- package/src/types/injection-instance-parameter.ts +0 -3
- package/src/types/injection-parameter.ts +0 -9
- package/src/types/injection-property.ts +0 -7
- package/src/types/injection-type.ts +0 -3
- package/src/types/injection.ts +0 -6
- package/src/types/local-name-check.ts +0 -5
- package/src/types/local-name-type.ts +0 -1
- package/src/types/local-name.ts +0 -8
- package/src/types/local-names.ts +0 -5
- package/src/types/module-type.ts +0 -1
- package/src/types/parsed-gir.ts +0 -5
- package/src/types/part-of-class.ts +0 -9
- package/src/types/part-of-module.ts +0 -8
- package/src/types/resolve-type.ts +0 -4
- package/src/types/sym-table-items.ts +0 -5
- package/src/types/transformation-case.ts +0 -7
- package/src/types/transformations.ts +0 -12
- package/src/types/ts-alias.ts +0 -11
- package/src/types/ts-callback-interface.ts +0 -11
- package/src/types/ts-callback.ts +0 -21
- package/src/types/ts-class.ts +0 -109
- package/src/types/ts-doc-tag.ts +0 -23
- package/src/types/ts-doc.ts +0 -23
- package/src/types/ts-enum.ts +0 -15
- package/src/types/ts-function.ts +0 -59
- package/src/types/ts-generic-parameter.ts +0 -8
- package/src/types/ts-instance-parameter.ts +0 -4
- package/src/types/ts-member.ts +0 -11
- package/src/types/ts-method.ts +0 -6
- package/src/types/ts-parameter.ts +0 -20
- package/src/types/ts-property.ts +0 -22
- package/src/types/ts-signal.ts +0 -21
- package/src/types/ts-type-name.ts +0 -1
- package/src/types/ts-type-separator.ts +0 -1
- package/src/types/ts-type.ts +0 -25
- package/src/types/ts-var.ts +0 -21
- package/src/types/type-gir-alias.ts +0 -2
- package/src/types/type-gir-class.ts +0 -2
- package/src/types/type-gir-element.ts +0 -25
- package/src/types/type-gir-enumeration-member.ts +0 -2
- package/src/types/type-gir-enumeration.ts +0 -2
- package/src/types/type-gir-function.ts +0 -8
- package/src/types/type-gir-interface.ts +0 -2
- package/src/types/type-gir-method.ts +0 -2
- package/src/types/type-gir-parameter.ts +0 -1
- package/src/types/type-gir-property.ts +0 -2
- package/src/types/type-gir-variable.ts +0 -1
- package/src/types/type-ts-element.ts +0 -13
- package/src/types/type-ts-enumeration-member.ts +0 -2
- package/src/types/type-ts-function.ts +0 -1
- package/src/types/type-ts-property.ts +0 -1
- package/src/types/user-config-load-result.ts +0 -6
- package/src/types/user-config.ts +0 -41
- package/templates/Cogl-2.0.d.ts +0 -0
- package/templates/Gjs/GObject-2.0.d.ts +0 -238
- package/templates/Gjs/Gio-2.0.d.ts +0 -64
- package/templates/Gjs/Gjs.d.ts +0 -204
- package/templates/Gjs/Gjs.js +0 -21
- package/templates/Gjs/GnomeShell.d.ts +0 -152
- package/templates/Gjs/GnomeShell.js +0 -10
- package/templates/Gjs/index.d.ts +0 -594
- package/templates/Gjs/index.js +0 -4
- package/templates/Gjs/misc/dbusUtils.d.ts +0 -15
- package/templates/Gjs/misc/dbusUtils.js +0 -6
- package/templates/Gjs/misc/extensionUtils.d.ts +0 -99
- package/templates/Gjs/misc/extensionUtils.js +0 -6
- package/templates/Gjs/misc/fileUtils.d.ts +0 -51
- package/templates/Gjs/misc/fileUtils.js +0 -6
- package/templates/Gjs/misc/gnomeSession.d.ts +0 -74
- package/templates/Gjs/misc/gnomeSession.js +0 -6
- package/templates/Gjs/misc/parentalControlsManager.d.ts +0 -42
- package/templates/Gjs/misc/parentalControlsManager.js +0 -6
- package/templates/Gjs/misc/signals.d.ts +0 -15
- package/templates/Gjs/misc/signals.js +0 -6
- package/templates/Gjs/module.d.ts +0 -6
- package/templates/Gjs/module.js +0 -16
- package/templates/Gjs/tsconfig.alias.json +0 -10
- package/templates/Gjs/ui/accessDialog.d.ts +0 -19
- package/templates/Gjs/ui/accessDialog.js +0 -6
- package/templates/Gjs/ui/altTab.d.ts +0 -124
- package/templates/Gjs/ui/altTab.js +0 -6
- package/templates/Gjs/ui/animation.d.ts +0 -58
- package/templates/Gjs/ui/animation.js +0 -6
- package/templates/Gjs/ui/appDisplay.d.ts +0 -204
- package/templates/Gjs/ui/appDisplay.js +0 -6
- package/templates/Gjs/ui/appFavorites.d.ts +0 -34
- package/templates/Gjs/ui/appFavorites.js +0 -6
- package/templates/Gjs/ui/appMenu.d.ts +0 -74
- package/templates/Gjs/ui/appMenu.js +0 -6
- package/templates/Gjs/ui/audioDeviceSelection.d.ts +0 -51
- package/templates/Gjs/ui/audioDeviceSelection.js +0 -6
- package/templates/Gjs/ui/background.d.ts +0 -255
- package/templates/Gjs/ui/background.js +0 -5
- package/templates/Gjs/ui/backgroundMenu.d.ts +0 -19
- package/templates/Gjs/ui/backgroundMenu.js +0 -5
- package/templates/Gjs/ui/barLevel.d.ts +0 -42
- package/templates/Gjs/ui/barLevel.js +0 -5
- package/templates/Gjs/ui/boxpointer.d.ts +0 -103
- package/templates/Gjs/ui/boxpointer.js +0 -5
- package/templates/Gjs/ui/calendar.d.ts +0 -261
- package/templates/Gjs/ui/calendar.js +0 -5
- package/templates/Gjs/ui/components/__init__.d.ts +0 -9
- package/templates/Gjs/ui/components/__init__.js +0 -6
- package/templates/Gjs/ui/components/automountManager.d.ts +0 -8
- package/templates/Gjs/ui/components/automountManager.js +0 -6
- package/templates/Gjs/ui/components/autorunManager.d.ts +0 -8
- package/templates/Gjs/ui/components/autorunManager.js +0 -6
- package/templates/Gjs/ui/components/index.d.ts +0 -6
- package/templates/Gjs/ui/components/index.js +0 -6
- package/templates/Gjs/ui/components/keyring.d.ts +0 -19
- package/templates/Gjs/ui/components/keyring.js +0 -6
- package/templates/Gjs/ui/components/networkAgent.d.ts +0 -10
- package/templates/Gjs/ui/components/networkAgent.js +0 -6
- package/templates/Gjs/ui/components/polkitAgent.d.ts +0 -19
- package/templates/Gjs/ui/components/polkitAgent.js +0 -6
- package/templates/Gjs/ui/components/telepathyClient.d.ts +0 -10
- package/templates/Gjs/ui/components/telepathyClient.js +0 -6
- package/templates/Gjs/ui/dialog.d.ts +0 -78
- package/templates/Gjs/ui/dialog.js +0 -0
- package/templates/Gjs/ui/dnd.d.ts +0 -127
- package/templates/Gjs/ui/dnd.js +0 -6
- package/templates/Gjs/ui/iconGrid.d.ts +0 -172
- package/templates/Gjs/ui/iconGrid.js +0 -6
- package/templates/Gjs/ui/layout.d.ts +0 -311
- package/templates/Gjs/ui/layout.js +0 -6
- package/templates/Gjs/ui/main.d.ts +0 -215
- package/templates/Gjs/ui/main.js +0 -6
- package/templates/Gjs/ui/messageList.d.ts +0 -113
- package/templates/Gjs/ui/messageList.js +0 -6
- package/templates/Gjs/ui/messageTray.d.ts +0 -423
- package/templates/Gjs/ui/messageTray.js +0 -6
- package/templates/Gjs/ui/modalDialog.d.ts +0 -96
- package/templates/Gjs/ui/modalDialog.js +0 -6
- package/templates/Gjs/ui/mpris.d.ts +0 -78
- package/templates/Gjs/ui/mpris.js +0 -6
- package/templates/Gjs/ui/notificationDaemon.d.ts +0 -5
- package/templates/Gjs/ui/notificationDaemon.js +0 -6
- package/templates/Gjs/ui/panel.d.ts +0 -65
- package/templates/Gjs/ui/panel.js +0 -6
- package/templates/Gjs/ui/panelMenu.d.ts +0 -51
- package/templates/Gjs/ui/panelMenu.js +0 -6
- package/templates/Gjs/ui/popupMenu.d.ts +0 -228
- package/templates/Gjs/ui/popupMenu.js +0 -6
- package/templates/Gjs/ui/ripples.d.ts +0 -44
- package/templates/Gjs/ui/ripples.js +0 -6
- package/templates/Gjs/ui/search.d.ts +0 -158
- package/templates/Gjs/ui/search.js +0 -6
- package/templates/Gjs/ui/switcherPopup.d.ts +0 -107
- package/templates/Gjs/ui/switcherPopup.js +0 -6
- package/templates/Gjs/ui/userWidget.d.ts +0 -13
- package/templates/Gjs/ui/userWidget.js +0 -6
- package/templates/Granite-1.0.d.ts +0 -7
- package/templates/Granite-7.0.d.ts +0 -7
- package/templates/GstBase-0.10.d.ts +0 -5
- package/templates/RygelServer-2.6.d.ts +0 -3
- package/templates/node-gtk/GObject-2.0.d.ts +0 -57
- package/templates/node-gtk/index.d.ts +0 -40
- package/templates/node-gtk/index.js +0 -9
- package/templates/node-gtk/module.d.ts +0 -6
- package/templates/node-gtk/module.js +0 -17
package/src/module-loader.ts
CHANGED
|
@@ -4,10 +4,22 @@
|
|
|
4
4
|
|
|
5
5
|
import inquirer, { ListQuestion, Answers } from 'inquirer'
|
|
6
6
|
import glob from 'tiny-glob'
|
|
7
|
-
import
|
|
7
|
+
import { basename } from 'path'
|
|
8
8
|
import { readFile } from 'fs/promises'
|
|
9
9
|
import { bold } from 'colorette'
|
|
10
10
|
import * as xml2js from 'xml2js'
|
|
11
|
+
import {
|
|
12
|
+
DependencyManager,
|
|
13
|
+
ResolveType,
|
|
14
|
+
GirModule,
|
|
15
|
+
Logger,
|
|
16
|
+
splitModuleName,
|
|
17
|
+
union,
|
|
18
|
+
isIterable,
|
|
19
|
+
WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE,
|
|
20
|
+
} from '@ts-for-gir/lib'
|
|
21
|
+
import { Config } from './config.js'
|
|
22
|
+
|
|
11
23
|
import type {
|
|
12
24
|
GirModulesGroupedMap,
|
|
13
25
|
ParsedGir,
|
|
@@ -17,21 +29,14 @@ import type {
|
|
|
17
29
|
DependencyMap,
|
|
18
30
|
Dependency,
|
|
19
31
|
AnswerVersion,
|
|
20
|
-
} from '
|
|
21
|
-
import { ResolveType } from './types/index.js'
|
|
22
|
-
import { GirModule } from './gir-module.js'
|
|
23
|
-
import { Config } from './config.js'
|
|
24
|
-
import { Logger } from './logger.js'
|
|
25
|
-
import { DependencyManager } from './dependency-manager.js'
|
|
26
|
-
import { splitModuleName, union, isIterable } from './utils.js'
|
|
27
|
-
import { WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE } from './messages.js'
|
|
32
|
+
} from '@ts-for-gir/lib'
|
|
28
33
|
|
|
29
34
|
export class ModuleLoader {
|
|
30
35
|
log: Logger
|
|
31
36
|
dependencyManager: DependencyManager
|
|
32
37
|
/** Transitive module dependencies */
|
|
33
38
|
modDependencyMap: DependencyMap = {}
|
|
34
|
-
constructor(
|
|
39
|
+
constructor(protected readonly config: GenerateConfig) {
|
|
35
40
|
this.log = new Logger('', config.verbose, 'ModuleLoader')
|
|
36
41
|
this.dependencyManager = DependencyManager.getInstance(config)
|
|
37
42
|
}
|
|
@@ -41,7 +46,7 @@ export class ModuleLoader {
|
|
|
41
46
|
* E.g. Gtk-3.0 and Gtk-4.0 will be grouped
|
|
42
47
|
* @param girFiles
|
|
43
48
|
*/
|
|
44
|
-
|
|
49
|
+
protected groupGirFiles(resolveGirModules: Set<GirModuleResolvedBy> | GirModuleResolvedBy[]): GirModulesGroupedMap {
|
|
45
50
|
const girModulesGrouped: GirModulesGroupedMap = {}
|
|
46
51
|
|
|
47
52
|
for (const resolveGirModule of resolveGirModules) {
|
|
@@ -68,7 +73,7 @@ export class ModuleLoader {
|
|
|
68
73
|
* @param girModulesGrouped
|
|
69
74
|
* @param selected Users selected module packageName
|
|
70
75
|
*/
|
|
71
|
-
|
|
76
|
+
protected sortVersionsByAnswer(
|
|
72
77
|
girModulesGrouped: GirModulesGrouped,
|
|
73
78
|
selected: string[],
|
|
74
79
|
): { keep: Set<GirModuleResolvedBy>; ignore: string[] } {
|
|
@@ -102,7 +107,10 @@ export class ModuleLoader {
|
|
|
102
107
|
}
|
|
103
108
|
}
|
|
104
109
|
|
|
105
|
-
|
|
110
|
+
protected generateContinueQuestion(
|
|
111
|
+
message = `do you want to continue?`,
|
|
112
|
+
choices = ['Yes', 'Go back'],
|
|
113
|
+
): ListQuestion {
|
|
106
114
|
const question: ListQuestion = {
|
|
107
115
|
name: 'continue',
|
|
108
116
|
message,
|
|
@@ -112,7 +120,7 @@ export class ModuleLoader {
|
|
|
112
120
|
return question
|
|
113
121
|
}
|
|
114
122
|
|
|
115
|
-
|
|
123
|
+
protected generateIgnoreDepsQuestion(
|
|
116
124
|
message = `Do you want to ignore them too?`,
|
|
117
125
|
choices = ['Yes', 'No', 'Go back'],
|
|
118
126
|
): ListQuestion {
|
|
@@ -125,7 +133,7 @@ export class ModuleLoader {
|
|
|
125
133
|
return question
|
|
126
134
|
}
|
|
127
135
|
|
|
128
|
-
|
|
136
|
+
protected async askIgnoreDepsPrompt(
|
|
129
137
|
deps: GirModuleResolvedBy[] | Set<GirModuleResolvedBy>,
|
|
130
138
|
): Promise<'Yes' | 'No' | 'Go back'> {
|
|
131
139
|
let question: ListQuestion<Answers> | null = null
|
|
@@ -152,7 +160,7 @@ export class ModuleLoader {
|
|
|
152
160
|
* @param girModuleGrouped
|
|
153
161
|
* @param message
|
|
154
162
|
*/
|
|
155
|
-
|
|
163
|
+
protected generateModuleVersionQuestion(girModuleGrouped: GirModulesGrouped, message?: string): ListQuestion {
|
|
156
164
|
message = message || `Multiple versions of '${girModuleGrouped.namespace}' found, which one do you want to use?`
|
|
157
165
|
const choices = ['All', ...girModuleGrouped.modules.map((module) => module.packageName)]
|
|
158
166
|
const question: ListQuestion = {
|
|
@@ -169,7 +177,7 @@ export class ModuleLoader {
|
|
|
169
177
|
* @param girModulesGroupedMap
|
|
170
178
|
* @param packageName
|
|
171
179
|
*/
|
|
172
|
-
|
|
180
|
+
protected findPackageNamesDependOnPackage(
|
|
173
181
|
girModulesGroupedMap: GirModulesGroupedMap,
|
|
174
182
|
packageName: string,
|
|
175
183
|
): GirModuleResolvedBy[] {
|
|
@@ -194,7 +202,7 @@ export class ModuleLoader {
|
|
|
194
202
|
* @param girModulesGroupedMap
|
|
195
203
|
* @param packageName
|
|
196
204
|
*/
|
|
197
|
-
|
|
205
|
+
protected findPackageNamesDependOnPackages(
|
|
198
206
|
girModulesGroupedMap: GirModulesGroupedMap,
|
|
199
207
|
packageNames: string[],
|
|
200
208
|
): GirModuleResolvedBy[] {
|
|
@@ -205,7 +213,7 @@ export class ModuleLoader {
|
|
|
205
213
|
return girModules
|
|
206
214
|
}
|
|
207
215
|
|
|
208
|
-
|
|
216
|
+
protected async askForVersionsPrompt(girModulesGrouped: GirModulesGrouped): Promise<AnswerVersion> {
|
|
209
217
|
const question = this.generateModuleVersionQuestion(girModulesGrouped)
|
|
210
218
|
const choices = question.choices as string[]
|
|
211
219
|
if (!choices) {
|
|
@@ -236,7 +244,7 @@ export class ModuleLoader {
|
|
|
236
244
|
* Ignores also modules that depend on a module that should be ignored
|
|
237
245
|
* @param resolveFirModules
|
|
238
246
|
*/
|
|
239
|
-
|
|
247
|
+
protected async askForEachConflictVersionsPrompt(
|
|
240
248
|
girModulesGroupedMap: GirModulesGroupedMap,
|
|
241
249
|
ignore: string[],
|
|
242
250
|
): Promise<{ keep: Set<GirModuleResolvedBy>; ignore: string[] }> {
|
|
@@ -306,7 +314,7 @@ export class ModuleLoader {
|
|
|
306
314
|
* Asks via cli prompt if the user wants to add the ignored modules to his config file
|
|
307
315
|
* @param ignoredModules
|
|
308
316
|
*/
|
|
309
|
-
|
|
317
|
+
protected async askAddToIgnoreToConfigPrompt(ignoredModules: string[] | Set<string>): Promise<void> {
|
|
310
318
|
const questions = [
|
|
311
319
|
{
|
|
312
320
|
name: 'addToIgnore',
|
|
@@ -332,7 +340,7 @@ export class ModuleLoader {
|
|
|
332
340
|
* @param packageName
|
|
333
341
|
* @param result
|
|
334
342
|
*/
|
|
335
|
-
|
|
343
|
+
protected traverseDependencies(packageName: string, result: { [name: string]: Dependency } = {}): void {
|
|
336
344
|
const deps = this.modDependencyMap[packageName]
|
|
337
345
|
if (isIterable(deps)) {
|
|
338
346
|
for (const dep of deps) {
|
|
@@ -348,7 +356,7 @@ export class ModuleLoader {
|
|
|
348
356
|
* should be called for each girModule so that the modDependencyMap is complete
|
|
349
357
|
* @param girModule
|
|
350
358
|
*/
|
|
351
|
-
|
|
359
|
+
protected extendDependencyMapByGirModule(girModule: GirModule): void {
|
|
352
360
|
this.modDependencyMap[girModule.packageName] = girModule.dependencies
|
|
353
361
|
}
|
|
354
362
|
|
|
@@ -357,7 +365,7 @@ export class ModuleLoader {
|
|
|
357
365
|
* is required so that all dependencies can be found internally when generating the dependency imports for the module .d.ts file
|
|
358
366
|
* @param girModules
|
|
359
367
|
*/
|
|
360
|
-
|
|
368
|
+
protected setTraverseDependenciesForModules(girModules: GirModuleResolvedBy[]): void {
|
|
361
369
|
for (const girModule of girModules) {
|
|
362
370
|
const result: { [name: string]: Dependency } = {}
|
|
363
371
|
this.traverseDependencies(girModule.packageName, result)
|
|
@@ -371,7 +379,7 @@ export class ModuleLoader {
|
|
|
371
379
|
* @param fillName
|
|
372
380
|
* @param config
|
|
373
381
|
*/
|
|
374
|
-
|
|
382
|
+
protected async loadAndCreateGirModule(dependency: Dependency): Promise<GirModule | null> {
|
|
375
383
|
if (!dependency.exists || dependency.path === null) {
|
|
376
384
|
return null
|
|
377
385
|
}
|
|
@@ -390,7 +398,7 @@ export class ModuleLoader {
|
|
|
390
398
|
* @param girModules Array of girModules
|
|
391
399
|
* @param packageNames Full name like 'Gtk-3.0' you are looking for
|
|
392
400
|
*/
|
|
393
|
-
|
|
401
|
+
protected findGirModuleByFullNames(
|
|
394
402
|
girModules: (GirModuleResolvedBy | GirModule)[],
|
|
395
403
|
packageNames: string[],
|
|
396
404
|
): Array<GirModuleResolvedBy | GirModule> {
|
|
@@ -402,7 +410,7 @@ export class ModuleLoader {
|
|
|
402
410
|
* @param girModules
|
|
403
411
|
* @param packageName
|
|
404
412
|
*/
|
|
405
|
-
|
|
413
|
+
protected existsGirModules(girModules: (GirModuleResolvedBy | GirModule)[], packageName: string): boolean {
|
|
406
414
|
const foundModule = this.findGirModuleByFullNames(girModules, [packageName])
|
|
407
415
|
return foundModule.length > 0
|
|
408
416
|
}
|
|
@@ -416,7 +424,7 @@ export class ModuleLoader {
|
|
|
416
424
|
* @param ignoreDependencies
|
|
417
425
|
* @returns
|
|
418
426
|
*/
|
|
419
|
-
|
|
427
|
+
protected async loadGirModules(
|
|
420
428
|
dependencies: Dependency[],
|
|
421
429
|
ignoreDependencies: string[] = [],
|
|
422
430
|
girModules: GirModuleResolvedBy[] = [],
|
|
@@ -494,7 +502,7 @@ export class ModuleLoader {
|
|
|
494
502
|
* @param modules
|
|
495
503
|
* @param ignore
|
|
496
504
|
*/
|
|
497
|
-
|
|
505
|
+
protected async findPackageNames(modules: string[], ignore: string[] = []): Promise<Set<string>> {
|
|
498
506
|
const foundModules = new Set<string>()
|
|
499
507
|
|
|
500
508
|
for (let i = 0; i < modules.length; i++) {
|
|
@@ -509,7 +517,7 @@ export class ModuleLoader {
|
|
|
509
517
|
}
|
|
510
518
|
}
|
|
511
519
|
|
|
512
|
-
let globModules = files.map((file) =>
|
|
520
|
+
let globModules = files.map((file) => basename(file, '.gir'))
|
|
513
521
|
// Filter out the ignored modules
|
|
514
522
|
globModules = globModules.filter((mod) => {
|
|
515
523
|
const isIgnored = ignore.includes(mod)
|
|
@@ -524,7 +532,7 @@ export class ModuleLoader {
|
|
|
524
532
|
return foundModules
|
|
525
533
|
}
|
|
526
534
|
|
|
527
|
-
|
|
535
|
+
protected packageNamesToDependencies(packageNames: Set<string>): Dependency[] {
|
|
528
536
|
return Array.from(packageNames).map((packageName) => {
|
|
529
537
|
const { namespace, version } = splitModuleName(packageName)
|
|
530
538
|
return this.dependencyManager.get(namespace, version)
|
package/src/utils.ts
CHANGED
|
@@ -1,399 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import Path from 'path'
|
|
4
|
-
import fs from 'fs'
|
|
1
|
+
import { join, dirname, resolve } from 'path'
|
|
2
|
+
import { existsSync } from 'fs'
|
|
5
3
|
import { getTsconfig, TsConfigJsonResolved } from 'get-tsconfig'
|
|
6
|
-
import { fileURLToPath } from 'url'
|
|
7
|
-
import { Environment, GirInfoAttrs, TsType, FileInfo } from './types/index.js'
|
|
8
|
-
import { inspect } from 'util'
|
|
9
|
-
import { Logger } from './logger.js'
|
|
10
|
-
|
|
11
|
-
import { COMMENT_REG_EXP, PARAM_REG_EXP, OPT_PARAM_REG_EXP } from './constants.js'
|
|
12
|
-
|
|
13
|
-
export { inspect }
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Performs a deep comparison between two values to determine if they are
|
|
17
|
-
* equivalent.
|
|
18
|
-
*
|
|
19
|
-
* **Note:** This method supports comparing arrays, array buffers, booleans,
|
|
20
|
-
* date objects, error objects, maps, numbers, `Object` objects, regexes,
|
|
21
|
-
* sets, strings, symbols, and typed arrays. `Object` objects are compared
|
|
22
|
-
* by their own, not inherited, enumerable properties. Functions and DOM
|
|
23
|
-
* nodes are **not** supported.
|
|
24
|
-
*
|
|
25
|
-
* @category Lang
|
|
26
|
-
* @param value The value to compare.
|
|
27
|
-
* @param other The other value to compare.
|
|
28
|
-
* @returns Returns `true` if the values are equivalent, else `false`.
|
|
29
|
-
* @example
|
|
30
|
-
*
|
|
31
|
-
* var object = { 'user': 'fred' };
|
|
32
|
-
* var other = { 'user': 'fred' };
|
|
33
|
-
*
|
|
34
|
-
* _.isEqual(object, other);
|
|
35
|
-
* // => true
|
|
36
|
-
*
|
|
37
|
-
* object === other;
|
|
38
|
-
* // => false
|
|
39
|
-
*/
|
|
40
|
-
export const isEqual = lodash.isEqual
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Creates an array of values by running each element in collection through iteratee. The iteratee is
|
|
44
|
-
* invoked with three arguments: (value, index|key, collection).
|
|
45
|
-
*
|
|
46
|
-
* Many lodash methods are guarded to work as iteratees for methods like _.every, _.filter, _.map, _.mapValues,
|
|
47
|
-
* _.reject, and _.some.
|
|
48
|
-
*
|
|
49
|
-
* The guarded methods are:
|
|
50
|
-
* ary, callback, chunk, clone, create, curry, curryRight, drop, dropRight, every, fill, flatten, invert, max,
|
|
51
|
-
* min, parseInt, slice, sortBy, take, takeRight, template, trim, trimLeft, trimRight, trunc, random, range,
|
|
52
|
-
* sample, some, sum, uniq, and words
|
|
53
|
-
*
|
|
54
|
-
* @param collection The collection to iterate over.
|
|
55
|
-
* @param iteratee The function invoked per iteration.
|
|
56
|
-
* @return Returns the new mapped array.
|
|
57
|
-
*/
|
|
58
|
-
export const map = lodash.map
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Iterates over elements of collection, returning the first element predicate returns truthy for.
|
|
62
|
-
* The predicate is invoked with three arguments: (value, index|key, collection).
|
|
63
|
-
*
|
|
64
|
-
* @param collection The collection to search.
|
|
65
|
-
* @param predicate The function invoked per iteration.
|
|
66
|
-
* @param fromIndex The index to search from.
|
|
67
|
-
* @return Returns the matched element, else undefined.
|
|
68
|
-
*/
|
|
69
|
-
export const find = lodash.find
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Recursively merges own and inherited enumerable properties of source
|
|
73
|
-
* objects into the destination object, skipping source properties that resolve
|
|
74
|
-
* to `undefined`. Array and plain object properties are merged recursively.
|
|
75
|
-
* Other objects and value types are overridden by assignment. Source objects
|
|
76
|
-
* are applied from left to right. Subsequent sources overwrite property
|
|
77
|
-
* assignments of previous sources.
|
|
78
|
-
*
|
|
79
|
-
* **Note:** This method mutates `object`.
|
|
80
|
-
*
|
|
81
|
-
* @category Object
|
|
82
|
-
* @param object The destination object.
|
|
83
|
-
* @param [sources] The source objects.
|
|
84
|
-
* @returns Returns `object`.
|
|
85
|
-
* @example
|
|
86
|
-
*
|
|
87
|
-
* var users = {
|
|
88
|
-
* 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]
|
|
89
|
-
* };
|
|
90
|
-
*
|
|
91
|
-
* var ages = {
|
|
92
|
-
* 'data': [{ 'age': 36 }, { 'age': 40 }]
|
|
93
|
-
* };
|
|
94
|
-
*
|
|
95
|
-
* _.merge(users, ages);
|
|
96
|
-
* // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }
|
|
97
|
-
*/
|
|
98
|
-
export const merge = lodash.merge
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Creates a shallow clone of value.
|
|
102
|
-
*
|
|
103
|
-
* Note: This method is loosely based on the structured clone algorithm and supports cloning arrays,
|
|
104
|
-
* array buffers, booleans, date objects, maps, numbers, Object objects, regex's, sets, strings, symbols,
|
|
105
|
-
* and typed arrays. The own enumerable properties of arguments objects are cloned as plain objects. An empty
|
|
106
|
-
* object is returned for not cloneable values such as error objects, functions, DOM nodes, and WeakMaps.
|
|
107
|
-
*
|
|
108
|
-
* @param value The value to clone.
|
|
109
|
-
* @return Returns the cloned value.
|
|
110
|
-
*/
|
|
111
|
-
export const clone = lodash.clone
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* This method is like clone except that it recursively clones value.
|
|
115
|
-
*
|
|
116
|
-
* @param value The value to recursively clone.
|
|
117
|
-
* @return Returns the deep cloned value.
|
|
118
|
-
*/
|
|
119
|
-
export const cloneDeep = lodash.cloneDeep
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Split a package name into namespace and version
|
|
123
|
-
*/
|
|
124
|
-
export const splitModuleName = (packageName: string): { packageName: string; namespace: string; version: string } => {
|
|
125
|
-
// There are modules that use multiple hyphens like 'GUPnP-DLNA-1.0'
|
|
126
|
-
const splits = packageName.split('-')
|
|
127
|
-
const version = splits.splice(-1, 1)[0]
|
|
128
|
-
const namespace = splits.join('')
|
|
129
|
-
return {
|
|
130
|
-
packageName,
|
|
131
|
-
namespace,
|
|
132
|
-
version,
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/** Remove namespace prefix */
|
|
137
|
-
export const removeNamespace = (type: string, namespace: string) => {
|
|
138
|
-
if (type.startsWith(namespace + '.')) {
|
|
139
|
-
type = type.substring(namespace.length + 1)
|
|
140
|
-
}
|
|
141
|
-
return type
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/** Remove class module name prefix */
|
|
145
|
-
export const removeClassModule = removeNamespace
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Add namespace prefix
|
|
149
|
-
*/
|
|
150
|
-
export const addNamespace = (type: string, namespace: string) => {
|
|
151
|
-
if (!type.startsWith(namespace + '.')) {
|
|
152
|
-
type = namespace + '.' + type
|
|
153
|
-
}
|
|
154
|
-
return type
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Checking whether some variable is iterable
|
|
159
|
-
* @see https://stackoverflow.com/a/32538867
|
|
160
|
-
* @param obj Variable to check for iterable
|
|
161
|
-
* @returns Whether the variable is iterable or not
|
|
162
|
-
*/
|
|
163
|
-
export const isIterable = (obj: unknown[]): boolean => {
|
|
164
|
-
return obj != null && typeof obj[Symbol.iterator] === 'function'
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Checking whether a string is numeric
|
|
169
|
-
* @param str The string to check
|
|
170
|
-
* @returns Whether the string is numeric or not
|
|
171
|
-
*/
|
|
172
|
-
export const isNumeric = (str: string): boolean => {
|
|
173
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
174
|
-
return !isNaN((str as any) - parseFloat(str))
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Get the first character of a string
|
|
179
|
-
* @param str The string to get the first character from
|
|
180
|
-
* @returns The first character
|
|
181
|
-
*/
|
|
182
|
-
export const getFirstChar = (str: string): string => {
|
|
183
|
-
return str.charAt(0)
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Get the last character of a string
|
|
188
|
-
* @param str The string to get the last character from
|
|
189
|
-
* @returns The last character
|
|
190
|
-
*/
|
|
191
|
-
export const getLastChar = (str: string): string => {
|
|
192
|
-
return str.charAt(str.length - 1)
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Check if the first character of a string is numeric
|
|
197
|
-
* @param str The string to check
|
|
198
|
-
* @returns Whether the first character is numeric or not
|
|
199
|
-
*/
|
|
200
|
-
export const isFirstCharNumeric = (str: string): boolean => {
|
|
201
|
-
return isNumeric(getFirstChar(str))
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Convert a string to camelCase
|
|
206
|
-
* @param str The string to convert
|
|
207
|
-
* @returns The converted string
|
|
208
|
-
*/
|
|
209
|
-
export const camelCase = (str: string): string => {
|
|
210
|
-
return str
|
|
211
|
-
.replace(/\s(.)|(\s|-|_|\.)(.)/g, (a) => {
|
|
212
|
-
return a.toUpperCase()
|
|
213
|
-
})
|
|
214
|
-
.replace(/(\s|-|_|\.)/g, '')
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Convert a string to lowerCamelCase
|
|
219
|
-
* @param str The string to convert
|
|
220
|
-
* @returns The converted string
|
|
221
|
-
*/
|
|
222
|
-
export const lowerCamelCase = (str: string): string => {
|
|
223
|
-
str = camelCase(str)
|
|
224
|
-
str = getFirstChar(str).toLowerCase() + str.slice(1)
|
|
225
|
-
return str
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Convert a string to UpperCamelCase
|
|
230
|
-
* @param str The string to convert
|
|
231
|
-
* @returns The converted string
|
|
232
|
-
*/
|
|
233
|
-
export const upperCamelCase = (str: string): string => {
|
|
234
|
-
str = camelCase(str)
|
|
235
|
-
str = getFirstChar(str).toUpperCase() + str.slice(1)
|
|
236
|
-
return str
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* Find a file in a list of directories
|
|
241
|
-
* @param dirs The directories to search in
|
|
242
|
-
* @param filename The filename to search for
|
|
243
|
-
* @returns The file info
|
|
244
|
-
*/
|
|
245
|
-
export const findFileInDirs = (dirs: string[], filename: string): FileInfo => {
|
|
246
|
-
const FileInfo: FileInfo = {
|
|
247
|
-
path: null,
|
|
248
|
-
filename,
|
|
249
|
-
exists: false,
|
|
250
|
-
}
|
|
251
|
-
for (const dir of dirs) {
|
|
252
|
-
const filePath = Path.join(dir, filename)
|
|
253
|
-
FileInfo.exists = fs.existsSync(filePath)
|
|
254
|
-
if (FileInfo.exists) {
|
|
255
|
-
FileInfo.path = filePath
|
|
256
|
-
return FileInfo
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
return FileInfo
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Union (a ∪ b): create a set that contains the elements of both set a and set b.
|
|
265
|
-
* See https://2ality.com/2015/01/es6-set-operations.html#union
|
|
266
|
-
* @param target
|
|
267
|
-
* @param source
|
|
268
|
-
*/
|
|
269
|
-
export const union = <T>(target: Set<T> | T[], source: Set<T> | T[]): Set<T> => {
|
|
270
|
-
return (target = new Set<T>([...target, ...source]))
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
export const stripParamNames = (func: string, ignoreTail = false): string => {
|
|
274
|
-
const g = func
|
|
275
|
-
func = func.replace(COMMENT_REG_EXP, '')
|
|
276
|
-
const lb = func.split('(', 2)
|
|
277
|
-
if (lb.length < 2) Logger.error(`Bad function definition ${g}`)
|
|
278
|
-
const rb = lb[1].split(')')
|
|
279
|
-
const tail = ignoreTail ? '' : rb[rb.length - 1]
|
|
280
|
-
let params = rb.slice(0, rb.length - 1).join(')')
|
|
281
|
-
params = params.replace(PARAM_REG_EXP, ':')
|
|
282
|
-
params = params.replace(OPT_PARAM_REG_EXP, '?:')
|
|
283
|
-
return `${lb[0]}(${params})${tail}`
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
/**
|
|
287
|
-
* Check if a line is a comment line
|
|
288
|
-
* @param line The line to check
|
|
289
|
-
* @returns Whether the line is a comment line or not
|
|
290
|
-
*/
|
|
291
|
-
export const isCommentLine = (line: string) => {
|
|
292
|
-
const lineTrim = line.trim()
|
|
293
|
-
return lineTrim.startsWith('//') || (lineTrim.startsWith('/*') && lineTrim.endsWith('*/'))
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
/**
|
|
297
|
-
* Add indents to a string
|
|
298
|
-
* @param indents The number of indents
|
|
299
|
-
* @param spaceForIndent The number of spaces for each indent
|
|
300
|
-
* @returns The indented string
|
|
301
|
-
*/
|
|
302
|
-
export const generateIndent = (indents = 1, spaceForIndent = 4): string => {
|
|
303
|
-
return ' '.repeat(indents * spaceForIndent)
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
// Get __filename on ESM
|
|
307
|
-
export const __filename = fileURLToPath(import.meta.url)
|
|
308
|
-
// Get __dirname on ESM
|
|
309
|
-
export const __dirname = Path.dirname(__filename)
|
|
310
|
-
|
|
311
|
-
/**
|
|
312
|
-
* Get the output or input directory of the environment
|
|
313
|
-
* @param environment The environment to get the directory for
|
|
314
|
-
* @param baseDir The base directory
|
|
315
|
-
* @returns The path to the directory
|
|
316
|
-
*/
|
|
317
|
-
export const getEnvironmentDir = (environment: Environment, baseDir: string): string => {
|
|
318
|
-
if (!baseDir.endsWith(environment))
|
|
319
|
-
if (environment === 'gjs' && !baseDir.endsWith('/Gjs')) {
|
|
320
|
-
return Path.join(baseDir, 'Gjs')
|
|
321
|
-
}
|
|
322
|
-
if (environment === 'node' && !baseDir.endsWith('/node-gtk')) {
|
|
323
|
-
return Path.join(baseDir, 'node-gtk')
|
|
324
|
-
}
|
|
325
|
-
return baseDir
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
/**
|
|
329
|
-
* Get the destination path for the environment
|
|
330
|
-
* @param environment The environment to get the destination path for
|
|
331
|
-
* @param outputDir The output directory
|
|
332
|
-
* @param parts The path parts
|
|
333
|
-
* @returns The destination path
|
|
334
|
-
*/
|
|
335
|
-
export const getDestPath = (environment: Environment, outputDir: string, ...parts: string[]) => {
|
|
336
|
-
const outputEnvDir = getEnvironmentDir(environment, outputDir)
|
|
337
|
-
const destPath = Path.join(outputEnvDir, ...parts)
|
|
338
|
-
return destPath
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
/**
|
|
342
|
-
* Convert a GirBoolean to a boolean
|
|
343
|
-
* @param boolStr The GirBoolean string
|
|
344
|
-
* @param defaultVal The default value
|
|
345
|
-
* @returns The boolean value
|
|
346
|
-
*/
|
|
347
|
-
export const girBool = (boolStr: string | undefined, defaultVal = false): boolean => {
|
|
348
|
-
if (boolStr) {
|
|
349
|
-
if (parseInt(boolStr) === 0) return false
|
|
350
|
-
return true
|
|
351
|
-
}
|
|
352
|
-
return defaultVal
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
/**
|
|
356
|
-
* Returns `true` if the definitions in `d1` and `d2` have equivalent signatures
|
|
357
|
-
* @param d1
|
|
358
|
-
* @param d2
|
|
359
|
-
*/
|
|
360
|
-
export const signaturesMatch = (d1: string, d2: string) => {
|
|
361
|
-
if (isCommentLine(d1) || isCommentLine(d2)) return false
|
|
362
|
-
return stripParamNames(d1) == stripParamNames(d2)
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
/**
|
|
366
|
-
* GirElements contains an attribute `introspectable`, which is a GirBoolean.
|
|
367
|
-
* If this is attribute is falsy the element is not introspectable,
|
|
368
|
-
* this means doesn't exist in the bindings, due in general to missing information in the annotations in the original C code
|
|
369
|
-
*/
|
|
370
|
-
export const girElementIsIntrospectable = (girElement?: { $: GirInfoAttrs & { name: string } }, name?: string) => {
|
|
371
|
-
if (!girElement) {
|
|
372
|
-
return false
|
|
373
|
-
}
|
|
374
|
-
name = name || girElement?.$?.name
|
|
375
|
-
if (!name) {
|
|
376
|
-
return false
|
|
377
|
-
}
|
|
378
|
-
// Handle introspectable only if the attribute is also present...
|
|
379
|
-
if (girElement.$.hasOwnProperty('introspectable') && girElement.$.introspectable !== undefined) {
|
|
380
|
-
return girBool(girElement.$.introspectable, true)
|
|
381
|
-
}
|
|
382
|
-
// ...otherwise we assume that it is introspectable
|
|
383
|
-
return true
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
/**
|
|
387
|
-
* Check if a type is optional
|
|
388
|
-
* @param types The types to check
|
|
389
|
-
* @returns Whether the type is optional or not
|
|
390
|
-
*/
|
|
391
|
-
export const typeIsOptional = (types: TsType[]) => {
|
|
392
|
-
for (const type of types) {
|
|
393
|
-
if (type.optional) return true
|
|
394
|
-
}
|
|
395
|
-
return false
|
|
396
|
-
}
|
|
397
4
|
|
|
398
5
|
/**
|
|
399
6
|
* Get a typescript or javascript config by path
|
|
@@ -418,15 +25,15 @@ export const getTsJsConfigByPath = (path: string) => {
|
|
|
418
25
|
export function readTsJsConfig(path: string) {
|
|
419
26
|
let config: null | false | TsConfigJsonResolved = null
|
|
420
27
|
let lastPath = ''
|
|
421
|
-
let currentPath =
|
|
28
|
+
let currentPath = resolve(path)
|
|
422
29
|
while (!config && currentPath !== lastPath) {
|
|
423
|
-
const tsConfigPath =
|
|
424
|
-
const jsConfigPath =
|
|
30
|
+
const tsConfigPath = join(currentPath, 'tsconfig.json')
|
|
31
|
+
const jsConfigPath = join(currentPath, 'jsconfig.json')
|
|
425
32
|
config =
|
|
426
|
-
(
|
|
427
|
-
(
|
|
33
|
+
(existsSync(tsConfigPath) && getTsJsConfigByPath(tsConfigPath)) ||
|
|
34
|
+
(existsSync(jsConfigPath) && getTsJsConfigByPath(jsConfigPath))
|
|
428
35
|
lastPath = currentPath
|
|
429
|
-
currentPath =
|
|
36
|
+
currentPath = dirname(currentPath)
|
|
430
37
|
}
|
|
431
38
|
|
|
432
39
|
return config || null
|