@ts-for-gir/cli 3.0.0-beta.8 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +429 -49
- 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 -39
- package/lib/commands/generate.js +8 -25
- 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 +25 -11
- package/lib/config.js +194 -112
- package/lib/config.js.map +1 -1
- package/lib/generation-handler.d.ts +3 -4
- package/lib/generation-handler.js +8 -12
- 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 +41 -27
- package/lib/module-loader.js +54 -56
- package/lib/module-loader.js.map +1 -1
- package/lib/utils.d.ts +13 -86
- package/lib/utils.js +13 -194
- 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 -25
- package/src/commands/list.ts +8 -10
- package/src/config.ts +211 -115
- package/src/generation-handler.ts +12 -13
- package/src/index.ts +0 -12
- package/src/module-loader.ts +88 -75
- package/src/utils.ts +12 -222
- 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/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 -256
- package/lib/gir-module.js +0 -2075
- 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 -30
- package/lib/messages.js +0 -45
- 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 -75
- package/lib/template-processor.js +0 -207
- 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 -989
- 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 -11
- 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 -14
- 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/generate-config.d.ts +0 -34
- 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 -118
- package/lib/types/index.js +0 -119
- 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/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 -42
- 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/generator.ts +0 -10
- package/src/gir-factory.ts +0 -499
- package/src/gir-module.ts +0 -2816
- 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 -68
- package/src/symtable.ts +0 -70
- package/src/template-processor.ts +0 -233
- package/src/transformation.ts +0 -583
- package/src/type-definition-generator.ts +0 -1458
- package/src/types/answer-version.ts +0 -4
- package/src/types/build-type.ts +0 -1
- package/src/types/class-parent.ts +0 -12
- 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 -14
- package/src/types/environment.ts +0 -1
- package/src/types/generate-config.ts +0 -35
- 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 -118
- 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 -43
- 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 -137
- package/templates/Gjs/Gjs.js +0 -21
- package/templates/Gjs/GnomeShell.d.ts +0 -122
- 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 -49
- package/templates/Gjs/misc/fileUtils.js +0 -6
- package/templates/Gjs/misc/gnomeSession.d.ts +0 -72
- package/templates/Gjs/misc/gnomeSession.js +0 -6
- package/templates/Gjs/module.d.ts +0 -10
- package/templates/Gjs/module.js +0 -16
- package/templates/Gjs/ui/userWidget.d.ts +0 -10
- 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 -10
- 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
|
|
8
|
-
import
|
|
7
|
+
import { basename } from 'path'
|
|
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,20 +29,16 @@ 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 { splitModuleName, union, isIterable, map, findFileInDirs } from './utils.js'
|
|
26
|
-
import { WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE } from './messages.js'
|
|
32
|
+
} from '@ts-for-gir/lib'
|
|
27
33
|
|
|
28
34
|
export class ModuleLoader {
|
|
29
35
|
log: Logger
|
|
36
|
+
dependencyManager: DependencyManager
|
|
30
37
|
/** Transitive module dependencies */
|
|
31
38
|
modDependencyMap: DependencyMap = {}
|
|
32
|
-
constructor(
|
|
39
|
+
constructor(protected readonly config: GenerateConfig) {
|
|
33
40
|
this.log = new Logger('', config.verbose, 'ModuleLoader')
|
|
41
|
+
this.dependencyManager = DependencyManager.getInstance(config)
|
|
34
42
|
}
|
|
35
43
|
|
|
36
44
|
/**
|
|
@@ -38,7 +46,7 @@ export class ModuleLoader {
|
|
|
38
46
|
* E.g. Gtk-3.0 and Gtk-4.0 will be grouped
|
|
39
47
|
* @param girFiles
|
|
40
48
|
*/
|
|
41
|
-
|
|
49
|
+
protected groupGirFiles(resolveGirModules: Set<GirModuleResolvedBy> | GirModuleResolvedBy[]): GirModulesGroupedMap {
|
|
42
50
|
const girModulesGrouped: GirModulesGroupedMap = {}
|
|
43
51
|
|
|
44
52
|
for (const resolveGirModule of resolveGirModules) {
|
|
@@ -65,7 +73,7 @@ export class ModuleLoader {
|
|
|
65
73
|
* @param girModulesGrouped
|
|
66
74
|
* @param selected Users selected module packageName
|
|
67
75
|
*/
|
|
68
|
-
|
|
76
|
+
protected sortVersionsByAnswer(
|
|
69
77
|
girModulesGrouped: GirModulesGrouped,
|
|
70
78
|
selected: string[],
|
|
71
79
|
): { keep: Set<GirModuleResolvedBy>; ignore: string[] } {
|
|
@@ -99,7 +107,10 @@ export class ModuleLoader {
|
|
|
99
107
|
}
|
|
100
108
|
}
|
|
101
109
|
|
|
102
|
-
|
|
110
|
+
protected generateContinueQuestion(
|
|
111
|
+
message = `do you want to continue?`,
|
|
112
|
+
choices = ['Yes', 'Go back'],
|
|
113
|
+
): ListQuestion {
|
|
103
114
|
const question: ListQuestion = {
|
|
104
115
|
name: 'continue',
|
|
105
116
|
message,
|
|
@@ -109,7 +120,7 @@ export class ModuleLoader {
|
|
|
109
120
|
return question
|
|
110
121
|
}
|
|
111
122
|
|
|
112
|
-
|
|
123
|
+
protected generateIgnoreDepsQuestion(
|
|
113
124
|
message = `Do you want to ignore them too?`,
|
|
114
125
|
choices = ['Yes', 'No', 'Go back'],
|
|
115
126
|
): ListQuestion {
|
|
@@ -122,7 +133,7 @@ export class ModuleLoader {
|
|
|
122
133
|
return question
|
|
123
134
|
}
|
|
124
135
|
|
|
125
|
-
|
|
136
|
+
protected async askIgnoreDepsPrompt(
|
|
126
137
|
deps: GirModuleResolvedBy[] | Set<GirModuleResolvedBy>,
|
|
127
138
|
): Promise<'Yes' | 'No' | 'Go back'> {
|
|
128
139
|
let question: ListQuestion<Answers> | null = null
|
|
@@ -149,7 +160,7 @@ export class ModuleLoader {
|
|
|
149
160
|
* @param girModuleGrouped
|
|
150
161
|
* @param message
|
|
151
162
|
*/
|
|
152
|
-
|
|
163
|
+
protected generateModuleVersionQuestion(girModuleGrouped: GirModulesGrouped, message?: string): ListQuestion {
|
|
153
164
|
message = message || `Multiple versions of '${girModuleGrouped.namespace}' found, which one do you want to use?`
|
|
154
165
|
const choices = ['All', ...girModuleGrouped.modules.map((module) => module.packageName)]
|
|
155
166
|
const question: ListQuestion = {
|
|
@@ -166,7 +177,7 @@ export class ModuleLoader {
|
|
|
166
177
|
* @param girModulesGroupedMap
|
|
167
178
|
* @param packageName
|
|
168
179
|
*/
|
|
169
|
-
|
|
180
|
+
protected findPackageNamesDependOnPackage(
|
|
170
181
|
girModulesGroupedMap: GirModulesGroupedMap,
|
|
171
182
|
packageName: string,
|
|
172
183
|
): GirModuleResolvedBy[] {
|
|
@@ -177,7 +188,7 @@ export class ModuleLoader {
|
|
|
177
188
|
continue
|
|
178
189
|
}
|
|
179
190
|
for (const dep of girModuleResolvedBy.module.dependencies) {
|
|
180
|
-
if (dep === packageName && !girModules.includes(girModuleResolvedBy)) {
|
|
191
|
+
if (dep.packageName === packageName && !girModules.includes(girModuleResolvedBy)) {
|
|
181
192
|
girModules.push(girModuleResolvedBy)
|
|
182
193
|
}
|
|
183
194
|
}
|
|
@@ -191,18 +202,18 @@ export class ModuleLoader {
|
|
|
191
202
|
* @param girModulesGroupedMap
|
|
192
203
|
* @param packageName
|
|
193
204
|
*/
|
|
194
|
-
|
|
205
|
+
protected findPackageNamesDependOnPackages(
|
|
195
206
|
girModulesGroupedMap: GirModulesGroupedMap,
|
|
196
207
|
packageNames: string[],
|
|
197
208
|
): GirModuleResolvedBy[] {
|
|
198
209
|
let girModules: GirModuleResolvedBy[] = []
|
|
199
210
|
for (const packageName of packageNames) {
|
|
200
|
-
girModules = girModules.concat(this.
|
|
211
|
+
girModules = girModules.concat(this.findPackageNamesDependOnPackage(girModulesGroupedMap, packageName))
|
|
201
212
|
}
|
|
202
213
|
return girModules
|
|
203
214
|
}
|
|
204
215
|
|
|
205
|
-
|
|
216
|
+
protected async askForVersionsPrompt(girModulesGrouped: GirModulesGrouped): Promise<AnswerVersion> {
|
|
206
217
|
const question = this.generateModuleVersionQuestion(girModulesGrouped)
|
|
207
218
|
const choices = question.choices as string[]
|
|
208
219
|
if (!choices) {
|
|
@@ -233,7 +244,7 @@ export class ModuleLoader {
|
|
|
233
244
|
* Ignores also modules that depend on a module that should be ignored
|
|
234
245
|
* @param resolveFirModules
|
|
235
246
|
*/
|
|
236
|
-
|
|
247
|
+
protected async askForEachConflictVersionsPrompt(
|
|
237
248
|
girModulesGroupedMap: GirModulesGroupedMap,
|
|
238
249
|
ignore: string[],
|
|
239
250
|
): Promise<{ keep: Set<GirModuleResolvedBy>; ignore: string[] }> {
|
|
@@ -260,7 +271,10 @@ export class ModuleLoader {
|
|
|
260
271
|
while (goBack) {
|
|
261
272
|
versionAnswer = await this.askForVersionsPrompt(girModulesGrouped)
|
|
262
273
|
// Check modules that depend on the unchosen modules
|
|
263
|
-
wouldIgnoreDeps = this.
|
|
274
|
+
wouldIgnoreDeps = this.findPackageNamesDependOnPackages(
|
|
275
|
+
girModulesGroupedMap,
|
|
276
|
+
versionAnswer.unselected,
|
|
277
|
+
)
|
|
264
278
|
// Do not check dependencies that have already been ignored
|
|
265
279
|
wouldIgnoreDeps = wouldIgnoreDeps.filter((dep) => !ignore.includes(dep.packageName))
|
|
266
280
|
ignoreDepsAnswer = await this.askIgnoreDepsPrompt(wouldIgnoreDeps)
|
|
@@ -298,9 +312,9 @@ export class ModuleLoader {
|
|
|
298
312
|
|
|
299
313
|
/**
|
|
300
314
|
* Asks via cli prompt if the user wants to add the ignored modules to his config file
|
|
301
|
-
* @param
|
|
315
|
+
* @param ignoredModules
|
|
302
316
|
*/
|
|
303
|
-
|
|
317
|
+
protected async askAddToIgnoreToConfigPrompt(ignoredModules: string[] | Set<string>): Promise<void> {
|
|
304
318
|
const questions = [
|
|
305
319
|
{
|
|
306
320
|
name: 'addToIgnore',
|
|
@@ -315,7 +329,7 @@ export class ModuleLoader {
|
|
|
315
329
|
|
|
316
330
|
if (answer.addToIgnore === 'Yes') {
|
|
317
331
|
await Config.addToConfig({
|
|
318
|
-
ignore: Array.from(
|
|
332
|
+
ignore: Array.from(ignoredModules),
|
|
319
333
|
})
|
|
320
334
|
this.log.log(`Add ignored modules to '${Config.configFilePath}'`)
|
|
321
335
|
}
|
|
@@ -326,12 +340,12 @@ export class ModuleLoader {
|
|
|
326
340
|
* @param packageName
|
|
327
341
|
* @param result
|
|
328
342
|
*/
|
|
329
|
-
|
|
343
|
+
protected traverseDependencies(packageName: string, result: { [name: string]: Dependency } = {}): void {
|
|
330
344
|
const deps = this.modDependencyMap[packageName]
|
|
331
345
|
if (isIterable(deps)) {
|
|
332
346
|
for (const dep of deps) {
|
|
333
347
|
if (result[dep.packageName]) continue
|
|
334
|
-
result[dep.packageName] =
|
|
348
|
+
result[dep.packageName] = dep
|
|
335
349
|
this.traverseDependencies(dep.packageName, result)
|
|
336
350
|
}
|
|
337
351
|
}
|
|
@@ -342,18 +356,8 @@ export class ModuleLoader {
|
|
|
342
356
|
* should be called for each girModule so that the modDependencyMap is complete
|
|
343
357
|
* @param girModule
|
|
344
358
|
*/
|
|
345
|
-
|
|
346
|
-
this.modDependencyMap[girModule.packageName
|
|
347
|
-
girModule.dependencies || [],
|
|
348
|
-
(packageName: string): Dependency => {
|
|
349
|
-
const { namespace, version } = splitModuleName(packageName)
|
|
350
|
-
return {
|
|
351
|
-
namespace,
|
|
352
|
-
version,
|
|
353
|
-
packageName,
|
|
354
|
-
}
|
|
355
|
-
},
|
|
356
|
-
)
|
|
359
|
+
protected extendDependencyMapByGirModule(girModule: GirModule): void {
|
|
360
|
+
this.modDependencyMap[girModule.packageName] = girModule.dependencies
|
|
357
361
|
}
|
|
358
362
|
|
|
359
363
|
/**
|
|
@@ -361,11 +365,11 @@ export class ModuleLoader {
|
|
|
361
365
|
* is required so that all dependencies can be found internally when generating the dependency imports for the module .d.ts file
|
|
362
366
|
* @param girModules
|
|
363
367
|
*/
|
|
364
|
-
|
|
368
|
+
protected setTraverseDependenciesForModules(girModules: GirModuleResolvedBy[]): void {
|
|
365
369
|
for (const girModule of girModules) {
|
|
366
|
-
const result: { [name: string]:
|
|
370
|
+
const result: { [name: string]: Dependency } = {}
|
|
367
371
|
this.traverseDependencies(girModule.packageName, result)
|
|
368
|
-
girModule.module.transitiveDependencies = Object.
|
|
372
|
+
girModule.module.transitiveDependencies = Object.values(result)
|
|
369
373
|
}
|
|
370
374
|
}
|
|
371
375
|
|
|
@@ -375,14 +379,13 @@ export class ModuleLoader {
|
|
|
375
379
|
* @param fillName
|
|
376
380
|
* @param config
|
|
377
381
|
*/
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
if (!file.exists || file.path === null) {
|
|
382
|
+
protected async loadAndCreateGirModule(dependency: Dependency): Promise<GirModule | null> {
|
|
383
|
+
if (!dependency.exists || dependency.path === null) {
|
|
381
384
|
return null
|
|
382
385
|
}
|
|
383
386
|
|
|
384
|
-
this.log.log(`Parsing ${
|
|
385
|
-
const fileContents =
|
|
387
|
+
this.log.log(`Parsing ${dependency.path}...`)
|
|
388
|
+
const fileContents = await readFile(dependency.path, 'utf8')
|
|
386
389
|
const result = (await xml2js.parseStringPromise(fileContents)) as ParsedGir
|
|
387
390
|
const girModule = new GirModule(result, this.config)
|
|
388
391
|
// Figure out transitive module dependencies
|
|
@@ -395,7 +398,7 @@ export class ModuleLoader {
|
|
|
395
398
|
* @param girModules Array of girModules
|
|
396
399
|
* @param packageNames Full name like 'Gtk-3.0' you are looking for
|
|
397
400
|
*/
|
|
398
|
-
|
|
401
|
+
protected findGirModuleByFullNames(
|
|
399
402
|
girModules: (GirModuleResolvedBy | GirModule)[],
|
|
400
403
|
packageNames: string[],
|
|
401
404
|
): Array<GirModuleResolvedBy | GirModule> {
|
|
@@ -407,41 +410,42 @@ export class ModuleLoader {
|
|
|
407
410
|
* @param girModules
|
|
408
411
|
* @param packageName
|
|
409
412
|
*/
|
|
410
|
-
|
|
411
|
-
const foundModule = this.findGirModuleByFullNames(girModules,
|
|
413
|
+
protected existsGirModules(girModules: (GirModuleResolvedBy | GirModule)[], packageName: string): boolean {
|
|
414
|
+
const foundModule = this.findGirModuleByFullNames(girModules, [packageName])
|
|
412
415
|
return foundModule.length > 0
|
|
413
416
|
}
|
|
414
417
|
|
|
415
418
|
/**
|
|
416
419
|
* Reads the gir xml module files and creates an object of GirModule for each module
|
|
417
|
-
* @param
|
|
420
|
+
* @param dependencies
|
|
418
421
|
* @param girModules
|
|
419
422
|
* @param resolvedBy
|
|
420
423
|
* @param failedGirModules
|
|
421
424
|
* @param ignoreDependencies
|
|
422
425
|
* @returns
|
|
423
426
|
*/
|
|
424
|
-
|
|
425
|
-
|
|
427
|
+
protected async loadGirModules(
|
|
428
|
+
dependencies: Dependency[],
|
|
426
429
|
ignoreDependencies: string[] = [],
|
|
427
430
|
girModules: GirModuleResolvedBy[] = [],
|
|
428
431
|
resolvedBy = ResolveType.BY_HAND,
|
|
429
432
|
failedGirModules = new Set<string>(),
|
|
430
433
|
): Promise<{ loaded: GirModuleResolvedBy[]; failed: Set<string> }> {
|
|
431
|
-
// A copy is needed here because we are changing the array for the while loop
|
|
432
|
-
const girToLoad = Array.from(girModulesToRead)
|
|
433
434
|
let newModuleFound = false
|
|
434
435
|
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
436
|
+
// Clone array
|
|
437
|
+
dependencies = [...dependencies]
|
|
438
|
+
|
|
439
|
+
while (dependencies.length > 0) {
|
|
440
|
+
const dependency = dependencies.shift()
|
|
441
|
+
if (!dependency?.packageName) continue
|
|
438
442
|
// If module has not already been loaded
|
|
439
|
-
if (!this.existsGirModules(girModules,
|
|
440
|
-
const girModule = await this.loadAndCreateGirModule(
|
|
443
|
+
if (!this.existsGirModules(girModules, dependency.packageName)) {
|
|
444
|
+
const girModule = await this.loadAndCreateGirModule(dependency)
|
|
441
445
|
if (!girModule) {
|
|
442
|
-
if (!failedGirModules.has(packageName)) {
|
|
443
|
-
this.log.warn(WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE(packageName))
|
|
444
|
-
failedGirModules.add(packageName)
|
|
446
|
+
if (!failedGirModules.has(dependency.packageName)) {
|
|
447
|
+
this.log.warn(WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE(dependency.packageName))
|
|
448
|
+
failedGirModules.add(dependency.packageName)
|
|
445
449
|
}
|
|
446
450
|
} else if (girModule && girModule.packageName) {
|
|
447
451
|
const addModule = {
|
|
@@ -471,9 +475,9 @@ export class ModuleLoader {
|
|
|
471
475
|
const transitiveDependencies = girModule.module.transitiveDependencies
|
|
472
476
|
if (transitiveDependencies.length > 0) {
|
|
473
477
|
for (const transitiveDependency of transitiveDependencies) {
|
|
474
|
-
if (ignoreDependencies.includes(transitiveDependency)) {
|
|
478
|
+
if (ignoreDependencies.includes(transitiveDependency.packageName)) {
|
|
475
479
|
this.log.warn(
|
|
476
|
-
`Load dependency "${transitiveDependency}" which is in the ignore list, if this should really be ignored also ignore "${girModule.packageName}"`,
|
|
480
|
+
`Load dependency "${transitiveDependency.packageName}" which is in the ignore list, if this should really be ignored also ignore "${girModule.packageName}"`,
|
|
477
481
|
)
|
|
478
482
|
}
|
|
479
483
|
}
|
|
@@ -498,7 +502,7 @@ export class ModuleLoader {
|
|
|
498
502
|
* @param modules
|
|
499
503
|
* @param ignore
|
|
500
504
|
*/
|
|
501
|
-
|
|
505
|
+
protected async findPackageNames(modules: string[], ignore: string[] = []): Promise<Set<string>> {
|
|
502
506
|
const foundModules = new Set<string>()
|
|
503
507
|
|
|
504
508
|
for (let i = 0; i < modules.length; i++) {
|
|
@@ -513,7 +517,7 @@ export class ModuleLoader {
|
|
|
513
517
|
}
|
|
514
518
|
}
|
|
515
519
|
|
|
516
|
-
let globModules = files.map((file) =>
|
|
520
|
+
let globModules = files.map((file) => basename(file, '.gir'))
|
|
517
521
|
// Filter out the ignored modules
|
|
518
522
|
globModules = globModules.filter((mod) => {
|
|
519
523
|
const isIgnored = ignore.includes(mod)
|
|
@@ -528,18 +532,26 @@ export class ModuleLoader {
|
|
|
528
532
|
return foundModules
|
|
529
533
|
}
|
|
530
534
|
|
|
535
|
+
protected packageNamesToDependencies(packageNames: Set<string>): Dependency[] {
|
|
536
|
+
return Array.from(packageNames).map((packageName) => {
|
|
537
|
+
const { namespace, version } = splitModuleName(packageName)
|
|
538
|
+
return this.dependencyManager.get(namespace, version)
|
|
539
|
+
})
|
|
540
|
+
}
|
|
541
|
+
|
|
531
542
|
/**
|
|
532
|
-
* Loads all found
|
|
543
|
+
* Loads all found `packageNames` and sorts out those that the user does not want to use including their dependencies
|
|
533
544
|
* @param girDirectories
|
|
534
|
-
* @param
|
|
545
|
+
* @param packageNames
|
|
535
546
|
*/
|
|
536
547
|
public async getModulesResolved(
|
|
537
|
-
|
|
548
|
+
packageNames: string[],
|
|
538
549
|
ignore: string[] = [],
|
|
539
550
|
doNotAskForVersionOnConflict = true,
|
|
540
551
|
): Promise<{ keep: GirModuleResolvedBy[]; grouped: GirModulesGroupedMap; ignore: string[]; failed: Set<string> }> {
|
|
541
|
-
const
|
|
542
|
-
const
|
|
552
|
+
const foundPackageNames = await this.findPackageNames(packageNames, ignore)
|
|
553
|
+
const dependencies = this.packageNamesToDependencies(foundPackageNames)
|
|
554
|
+
const { loaded, failed } = await this.loadGirModules(dependencies, ignore)
|
|
543
555
|
let keep: GirModuleResolvedBy[] = []
|
|
544
556
|
if (doNotAskForVersionOnConflict) {
|
|
545
557
|
keep = loaded
|
|
@@ -563,8 +575,9 @@ export class ModuleLoader {
|
|
|
563
575
|
modules: string[],
|
|
564
576
|
ignore: string[] = [],
|
|
565
577
|
): Promise<{ grouped: GirModulesGroupedMap; loaded: GirModuleResolvedBy[]; failed: string[] }> {
|
|
566
|
-
const
|
|
567
|
-
const
|
|
578
|
+
const foundPackageNames = await this.findPackageNames(modules, ignore)
|
|
579
|
+
const dependencies = this.packageNamesToDependencies(foundPackageNames)
|
|
580
|
+
const { loaded, failed } = await this.loadGirModules(dependencies, ignore)
|
|
568
581
|
const grouped = this.groupGirFiles(loaded)
|
|
569
582
|
return { grouped, loaded, failed: Array.from(failed) }
|
|
570
583
|
}
|
package/src/utils.ts
CHANGED
|
@@ -1,223 +1,13 @@
|
|
|
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 } 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
|
-
export const isEqual = lodash.isEqual
|
|
16
|
-
|
|
17
|
-
export const map = lodash.map
|
|
18
|
-
|
|
19
|
-
export const find = lodash.find
|
|
20
|
-
|
|
21
|
-
export const merge = lodash.merge
|
|
22
|
-
|
|
23
|
-
export const clone = lodash.clone
|
|
24
|
-
|
|
25
|
-
export const cloneDeep = lodash.cloneDeep
|
|
26
|
-
|
|
27
|
-
export const splitModuleName = (packageName: string): { packageName: string; namespace: string; version: string } => {
|
|
28
|
-
// There are modules that use multiple hyphens like 'GUPnP-DLNA-1.0'
|
|
29
|
-
const splits = packageName.split('-')
|
|
30
|
-
const version = splits.splice(-1, 1)[0]
|
|
31
|
-
const namespace = splits.join('')
|
|
32
|
-
return {
|
|
33
|
-
packageName,
|
|
34
|
-
namespace,
|
|
35
|
-
version,
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/** Remove namespace prefix */
|
|
40
|
-
export const removeNamespace = (type: string, namespace: string) => {
|
|
41
|
-
if (type.startsWith(namespace + '.')) {
|
|
42
|
-
type = type.substring(namespace.length + 1)
|
|
43
|
-
}
|
|
44
|
-
return type
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/** Remove class module name prefix */
|
|
48
|
-
export const removeClassModule = removeNamespace
|
|
49
|
-
|
|
50
|
-
export const addNamespace = (type: string, namespace: string) => {
|
|
51
|
-
if (!type.startsWith(namespace + '.')) {
|
|
52
|
-
type = namespace + '.' + type
|
|
53
|
-
}
|
|
54
|
-
return type
|
|
55
|
-
}
|
|
56
4
|
|
|
57
5
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
* @
|
|
6
|
+
* Get a typescript or javascript config by path
|
|
7
|
+
* @param path The path to search for a tsconfig.json or jsconfig.json file
|
|
8
|
+
* @returns The config or null if not found
|
|
61
9
|
*/
|
|
62
|
-
export const
|
|
63
|
-
return obj != null && typeof obj[Symbol.iterator] === 'function'
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export const isNumeric = (str: string): boolean => {
|
|
67
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
68
|
-
return !isNaN((str as any) - parseFloat(str))
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export const getFirstChar = (str: string): string => {
|
|
72
|
-
return str.charAt(0)
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export const getLastChar = (str: string): string => {
|
|
76
|
-
return str.charAt(str.length - 1)
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export const isFirstCharNumeric = (str: string): boolean => {
|
|
80
|
-
return isNumeric(getFirstChar(str))
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export const camelCase = (str: string): string => {
|
|
84
|
-
return str
|
|
85
|
-
.replace(/\s(.)|(\s|-|_|\.)(.)/g, (a) => {
|
|
86
|
-
return a.toUpperCase()
|
|
87
|
-
})
|
|
88
|
-
.replace(/(\s|-|_|\.)/g, '')
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export const lowerCamelCase = (str: string): string => {
|
|
92
|
-
str = camelCase(str)
|
|
93
|
-
str = getFirstChar(str).toLowerCase() + str.slice(1)
|
|
94
|
-
return str
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export const upperCamelCase = (str: string): string => {
|
|
98
|
-
str = camelCase(str)
|
|
99
|
-
str = getFirstChar(str).toUpperCase() + str.slice(1)
|
|
100
|
-
return str
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export const findFileInDirs = (dirs: string[], filename: string): { path: string | null; exists: boolean } => {
|
|
104
|
-
let exists = false
|
|
105
|
-
for (const dir of dirs) {
|
|
106
|
-
const filePath = Path.join(dir, filename)
|
|
107
|
-
exists = fs.existsSync(filePath)
|
|
108
|
-
if (exists) {
|
|
109
|
-
return {
|
|
110
|
-
path: filePath,
|
|
111
|
-
exists,
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
return {
|
|
116
|
-
path: null,
|
|
117
|
-
exists,
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Union (a ∪ b): create a set that contains the elements of both set a and set b.
|
|
123
|
-
* See https://2ality.com/2015/01/es6-set-operations.html#union
|
|
124
|
-
* @param target
|
|
125
|
-
* @param source
|
|
126
|
-
*/
|
|
127
|
-
export const union = <T>(target: Set<T> | T[], source: Set<T> | T[]): Set<T> => {
|
|
128
|
-
return (target = new Set<T>([...target, ...source]))
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
export const stripParamNames = (func: string, ignoreTail = false): string => {
|
|
132
|
-
const g = func
|
|
133
|
-
func = func.replace(COMMENT_REG_EXP, '')
|
|
134
|
-
const lb = func.split('(', 2)
|
|
135
|
-
if (lb.length < 2) Logger.error(`Bad function definition ${g}`)
|
|
136
|
-
const rb = lb[1].split(')')
|
|
137
|
-
const tail = ignoreTail ? '' : rb[rb.length - 1]
|
|
138
|
-
let params = rb.slice(0, rb.length - 1).join(')')
|
|
139
|
-
params = params.replace(PARAM_REG_EXP, ':')
|
|
140
|
-
params = params.replace(OPT_PARAM_REG_EXP, '?:')
|
|
141
|
-
return `${lb[0]}(${params})${tail}`
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
export const isCommentLine = (line: string) => {
|
|
145
|
-
const lineTrim = line.trim()
|
|
146
|
-
return lineTrim.startsWith('//') || (lineTrim.startsWith('/*') && lineTrim.endsWith('*/'))
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
export const generateIndent = (indents = 1, spaceForIndent = 4): string => {
|
|
150
|
-
return ' '.repeat(indents * spaceForIndent)
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// Get __dirname on ESM
|
|
154
|
-
export const __filename = fileURLToPath(import.meta.url)
|
|
155
|
-
export const __dirname = Path.dirname(__filename)
|
|
156
|
-
|
|
157
|
-
export const getEnvironmentDir = (environment: Environment, baseDir: string): string => {
|
|
158
|
-
if (!baseDir.endsWith(environment))
|
|
159
|
-
if (environment === 'gjs' && !baseDir.endsWith('/Gjs')) {
|
|
160
|
-
return Path.join(baseDir, 'Gjs')
|
|
161
|
-
}
|
|
162
|
-
if (environment === 'node' && !baseDir.endsWith('/node-gtk')) {
|
|
163
|
-
return Path.join(baseDir, 'node-gtk')
|
|
164
|
-
}
|
|
165
|
-
return baseDir
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
export const getDestPath = (environment: Environment, outputDir: string, ...parts: string[]) => {
|
|
169
|
-
const outputEnvDir = getEnvironmentDir(environment, outputDir)
|
|
170
|
-
const destPath = Path.join(outputEnvDir, ...parts)
|
|
171
|
-
return destPath
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
export const girBool = (boolStr: string | undefined, defaultVal = false): boolean => {
|
|
175
|
-
if (boolStr) {
|
|
176
|
-
if (parseInt(boolStr) === 0) return false
|
|
177
|
-
return true
|
|
178
|
-
}
|
|
179
|
-
return defaultVal
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Returns `true` if the definitions in `d1` and `d2` have equivalent signatures
|
|
184
|
-
* @param d1
|
|
185
|
-
* @param d2
|
|
186
|
-
*/
|
|
187
|
-
export const signaturesMatch = (d1: string, d2: string) => {
|
|
188
|
-
if (isCommentLine(d1) || isCommentLine(d2)) return false
|
|
189
|
-
return stripParamNames(d1) == stripParamNames(d2)
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* GirElements contains an attribute `introspectable`, which is a GirBoolean.
|
|
194
|
-
* If this is attribute is falsy the element is not introspectable,
|
|
195
|
-
* this means doesn't exist in the bindings, due in general to missing information in the annotations in the original C code
|
|
196
|
-
*/
|
|
197
|
-
export const girElementIsIntrospectable = (girElement?: { $: GirInfoAttrs & { name: string } }, name?: string) => {
|
|
198
|
-
if (!girElement) {
|
|
199
|
-
return false
|
|
200
|
-
}
|
|
201
|
-
name = name || girElement?.$?.name
|
|
202
|
-
if (!name) {
|
|
203
|
-
return false
|
|
204
|
-
}
|
|
205
|
-
// Handle introspectable only if the attribute is also present...
|
|
206
|
-
if (girElement.$.hasOwnProperty('introspectable') && girElement.$.introspectable !== undefined) {
|
|
207
|
-
return girBool(girElement.$.introspectable, true)
|
|
208
|
-
}
|
|
209
|
-
// ...otherwise we assume that it is introspectable
|
|
210
|
-
return true
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
export const typeIsOptional = (types: TsType[]) => {
|
|
214
|
-
for (const type of types) {
|
|
215
|
-
if (type.optional) return true
|
|
216
|
-
}
|
|
217
|
-
return false
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
function convertTsJsConfigToObject(path: string) {
|
|
10
|
+
export const getTsJsConfigByPath = (path: string) => {
|
|
221
11
|
try {
|
|
222
12
|
const config = getTsconfig(path)?.config
|
|
223
13
|
if (config) return config
|
|
@@ -235,15 +25,15 @@ function convertTsJsConfigToObject(path: string) {
|
|
|
235
25
|
export function readTsJsConfig(path: string) {
|
|
236
26
|
let config: null | false | TsConfigJsonResolved = null
|
|
237
27
|
let lastPath = ''
|
|
238
|
-
let currentPath =
|
|
28
|
+
let currentPath = resolve(path)
|
|
239
29
|
while (!config && currentPath !== lastPath) {
|
|
240
|
-
const tsConfigPath =
|
|
241
|
-
const jsConfigPath =
|
|
30
|
+
const tsConfigPath = join(currentPath, 'tsconfig.json')
|
|
31
|
+
const jsConfigPath = join(currentPath, 'jsconfig.json')
|
|
242
32
|
config =
|
|
243
|
-
(
|
|
244
|
-
(
|
|
33
|
+
(existsSync(tsConfigPath) && getTsJsConfigByPath(tsConfigPath)) ||
|
|
34
|
+
(existsSync(jsConfigPath) && getTsJsConfigByPath(jsConfigPath))
|
|
245
35
|
lastPath = currentPath
|
|
246
|
-
currentPath =
|
|
36
|
+
currentPath = dirname(currentPath)
|
|
247
37
|
}
|
|
248
38
|
|
|
249
39
|
return config || null
|