@ts-for-gir/cli 3.0.0-beta.10
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 +420 -0
- package/lib/commands/doc.d.ts +27 -0
- package/lib/commands/doc.js +48 -0
- package/lib/commands/doc.js.map +1 -0
- package/lib/commands/generate.d.ts +49 -0
- package/lib/commands/generate.js +73 -0
- package/lib/commands/generate.js.map +1 -0
- package/lib/commands/index.d.ts +3 -0
- package/lib/commands/index.js +4 -0
- package/lib/commands/index.js.map +1 -0
- package/lib/commands/list.d.ts +21 -0
- package/lib/commands/list.js +77 -0
- package/lib/commands/list.js.map +1 -0
- package/lib/config.d.ts +88 -0
- package/lib/config.js +471 -0
- package/lib/config.js.map +1 -0
- package/lib/conflict-resolver.d.ts +155 -0
- package/lib/conflict-resolver.js +1103 -0
- package/lib/conflict-resolver.js.map +1 -0
- package/lib/constants.d.ts +18 -0
- package/lib/constants.js +23 -0
- package/lib/constants.js.map +1 -0
- package/lib/dependency-manager.d.ts +34 -0
- package/lib/dependency-manager.js +78 -0
- package/lib/dependency-manager.js.map +1 -0
- package/lib/generation-handler.d.ts +12 -0
- package/lib/generation-handler.js +63 -0
- package/lib/generation-handler.js.map +1 -0
- package/lib/generator.d.ts +5 -0
- package/lib/generator.js +2 -0
- package/lib/generator.js.map +1 -0
- package/lib/gir-factory.d.ts +52 -0
- package/lib/gir-factory.js +376 -0
- package/lib/gir-factory.js.map +1 -0
- package/lib/gir-module.d.ts +259 -0
- package/lib/gir-module.js +2181 -0
- package/lib/gir-module.js.map +1 -0
- package/lib/html-doc-generator.d.ts +13 -0
- package/lib/html-doc-generator.js +18 -0
- package/lib/html-doc-generator.js.map +1 -0
- package/lib/index.d.ts +17 -0
- package/lib/index.js +18 -0
- package/lib/index.js.map +1 -0
- package/lib/injection/callbacks/gjs/Gio-2.0.d.ts +2 -0
- package/lib/injection/callbacks/gjs/Gio-2.0.js +36 -0
- package/lib/injection/callbacks/gjs/Gio-2.0.js.map +1 -0
- package/lib/injection/callbacks/gjs/index.d.ts +2 -0
- package/lib/injection/callbacks/gjs/index.js +3 -0
- package/lib/injection/callbacks/gjs/index.js.map +1 -0
- package/lib/injection/callbacks/index.d.ts +4 -0
- package/lib/injection/callbacks/index.js +4 -0
- package/lib/injection/callbacks/index.js.map +1 -0
- package/lib/injection/callbacks/node-gtk/index.d.ts +2 -0
- package/lib/injection/callbacks/node-gtk/index.js +2 -0
- package/lib/injection/callbacks/node-gtk/index.js.map +1 -0
- package/lib/injection/classes/GLib-2-0.d.ts +2 -0
- package/lib/injection/classes/GLib-2-0.js +35 -0
- package/lib/injection/classes/GLib-2-0.js.map +1 -0
- package/lib/injection/classes/gjs/GLib-2.0.d.ts +2 -0
- package/lib/injection/classes/gjs/GLib-2.0.js +205 -0
- package/lib/injection/classes/gjs/GLib-2.0.js.map +1 -0
- package/lib/injection/classes/gjs/GObject-2.0.d.ts +2 -0
- package/lib/injection/classes/gjs/GObject-2.0.js +634 -0
- package/lib/injection/classes/gjs/GObject-2.0.js.map +1 -0
- package/lib/injection/classes/gjs/Gio-2.0.d.ts +5 -0
- package/lib/injection/classes/gjs/Gio-2.0.js +218 -0
- package/lib/injection/classes/gjs/Gio-2.0.js.map +1 -0
- package/lib/injection/classes/gjs/index.d.ts +2 -0
- package/lib/injection/classes/gjs/index.js +5 -0
- package/lib/injection/classes/gjs/index.js.map +1 -0
- package/lib/injection/classes/index.d.ts +4 -0
- package/lib/injection/classes/index.js +5 -0
- package/lib/injection/classes/index.js.map +1 -0
- package/lib/injection/classes/node-gtk/GLib-2.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/GLib-2.0.js +19 -0
- package/lib/injection/classes/node-gtk/GLib-2.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/GObject-2.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/GObject-2.0.js +66 -0
- package/lib/injection/classes/node-gtk/GObject-2.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Gdk-4.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Gdk-4.0.js +32 -0
- package/lib/injection/classes/node-gtk/Gdk-4.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Gio-2.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Gio-2.0.js +14 -0
- package/lib/injection/classes/node-gtk/Gio-2.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Graphene-1.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Graphene-1.0.js +133 -0
- package/lib/injection/classes/node-gtk/Graphene-1.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Gtk-3.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Gtk-3.0.js +31 -0
- package/lib/injection/classes/node-gtk/Gtk-3.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Gtk-4.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Gtk-4.0.js +52 -0
- package/lib/injection/classes/node-gtk/Gtk-4.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/Pango-1.0.d.ts +2 -0
- package/lib/injection/classes/node-gtk/Pango-1.0.js +31 -0
- package/lib/injection/classes/node-gtk/Pango-1.0.js.map +1 -0
- package/lib/injection/classes/node-gtk/index.d.ts +2 -0
- package/lib/injection/classes/node-gtk/index.js +19 -0
- package/lib/injection/classes/node-gtk/index.js.map +1 -0
- package/lib/injection/index.d.ts +3 -0
- package/lib/injection/index.js +4 -0
- package/lib/injection/index.js.map +1 -0
- package/lib/injection/injector.d.ts +17 -0
- package/lib/injection/injector.js +139 -0
- package/lib/injection/injector.js.map +1 -0
- package/lib/logger.d.ts +36 -0
- package/lib/logger.js +137 -0
- package/lib/logger.js.map +1 -0
- package/lib/messages.d.ts +31 -0
- package/lib/messages.js +46 -0
- package/lib/messages.js.map +1 -0
- package/lib/module-loader.d.ts +134 -0
- package/lib/module-loader.js +475 -0
- package/lib/module-loader.js.map +1 -0
- package/lib/start.d.ts +2 -0
- package/lib/start.js +15 -0
- package/lib/start.js.map +1 -0
- package/lib/symtable.d.ts +24 -0
- package/lib/symtable.js +63 -0
- package/lib/symtable.js.map +1 -0
- package/lib/template-processor.d.ts +74 -0
- package/lib/template-processor.js +165 -0
- package/lib/template-processor.js.map +1 -0
- package/lib/transformation.d.ts +156 -0
- package/lib/transformation.js +524 -0
- package/lib/transformation.js.map +1 -0
- package/lib/type-definition-generator.d.ts +116 -0
- package/lib/type-definition-generator.js +996 -0
- package/lib/type-definition-generator.js.map +1 -0
- package/lib/types/answer-version.d.ts +4 -0
- package/lib/types/answer-version.js +2 -0
- package/lib/types/answer-version.js.map +1 -0
- package/lib/types/build-type.d.ts +1 -0
- package/lib/types/build-type.js +2 -0
- package/lib/types/build-type.js.map +1 -0
- package/lib/types/class-parent.d.ts +13 -0
- package/lib/types/class-parent.js +2 -0
- package/lib/types/class-parent.js.map +1 -0
- package/lib/types/config-flags.d.ts +4 -0
- package/lib/types/config-flags.js +2 -0
- package/lib/types/config-flags.js.map +1 -0
- package/lib/types/conflict-child-element.d.ts +10 -0
- package/lib/types/conflict-child-element.js +2 -0
- package/lib/types/conflict-child-element.js.map +1 -0
- package/lib/types/conflict-grouped-element.d.ts +6 -0
- package/lib/types/conflict-grouped-element.js +2 -0
- package/lib/types/conflict-grouped-element.js.map +1 -0
- package/lib/types/conflict-grouped-elements.d.ts +4 -0
- package/lib/types/conflict-grouped-elements.js +2 -0
- package/lib/types/conflict-grouped-elements.js.map +1 -0
- package/lib/types/construct-name.d.ts +1 -0
- package/lib/types/construct-name.js +2 -0
- package/lib/types/construct-name.js.map +1 -0
- package/lib/types/dependency-map.d.ts +4 -0
- package/lib/types/dependency-map.js +2 -0
- package/lib/types/dependency-map.js.map +1 -0
- package/lib/types/dependency.d.ts +15 -0
- package/lib/types/dependency.js +2 -0
- package/lib/types/dependency.js.map +1 -0
- package/lib/types/environment.d.ts +1 -0
- package/lib/types/environment.js +2 -0
- package/lib/types/environment.js.map +1 -0
- package/lib/types/file-info.d.ts +14 -0
- package/lib/types/file-info.js +2 -0
- package/lib/types/file-info.js.map +1 -0
- package/lib/types/generate-config.d.ts +34 -0
- package/lib/types/generate-config.js +2 -0
- package/lib/types/generate-config.js.map +1 -0
- package/lib/types/generator-type.d.ts +4 -0
- package/lib/types/generator-type.js +6 -0
- package/lib/types/generator-type.js.map +1 -0
- package/lib/types/gir-alias-element.d.ts +13 -0
- package/lib/types/gir-alias-element.js +2 -0
- package/lib/types/gir-alias-element.js.map +1 -0
- package/lib/types/gir-annotation.d.ts +9 -0
- package/lib/types/gir-annotation.js +2 -0
- package/lib/types/gir-annotation.js.map +1 -0
- package/lib/types/gir-any-element.d.ts +2 -0
- package/lib/types/gir-any-element.js +2 -0
- package/lib/types/gir-any-element.js.map +1 -0
- package/lib/types/gir-any-type.d.ts +5 -0
- package/lib/types/gir-any-type.js +2 -0
- package/lib/types/gir-any-type.js.map +1 -0
- package/lib/types/gir-array-type.d.ts +20 -0
- package/lib/types/gir-array-type.js +3 -0
- package/lib/types/gir-array-type.js.map +1 -0
- package/lib/types/gir-bitfield-element.d.ts +17 -0
- package/lib/types/gir-bitfield-element.js +2 -0
- package/lib/types/gir-bitfield-element.js.map +1 -0
- package/lib/types/gir-boolean.d.ts +1 -0
- package/lib/types/gir-boolean.js +2 -0
- package/lib/types/gir-boolean.js.map +1 -0
- package/lib/types/gir-boxed-element.d.ts +15 -0
- package/lib/types/gir-boxed-element.js +2 -0
- package/lib/types/gir-boxed-element.js.map +1 -0
- package/lib/types/gir-c-include.d.ts +7 -0
- package/lib/types/gir-c-include.js +2 -0
- package/lib/types/gir-c-include.js.map +1 -0
- package/lib/types/gir-callable-attrs.d.ts +15 -0
- package/lib/types/gir-callable-attrs.js +3 -0
- package/lib/types/gir-callable-attrs.js.map +1 -0
- package/lib/types/gir-callable-param-element.d.ts +30 -0
- package/lib/types/gir-callable-param-element.js +2 -0
- package/lib/types/gir-callable-param-element.js.map +1 -0
- package/lib/types/gir-callable-param.d.ts +7 -0
- package/lib/types/gir-callable-param.js +2 -0
- package/lib/types/gir-callable-param.js.map +1 -0
- package/lib/types/gir-callable-return.d.ts +22 -0
- package/lib/types/gir-callable-return.js +2 -0
- package/lib/types/gir-callable-return.js.map +1 -0
- package/lib/types/gir-callback-element.d.ts +15 -0
- package/lib/types/gir-callback-element.js +2 -0
- package/lib/types/gir-callback-element.js.map +1 -0
- package/lib/types/gir-class-element.d.ts +48 -0
- package/lib/types/gir-class-element.js +2 -0
- package/lib/types/gir-class-element.js.map +1 -0
- package/lib/types/gir-constant-element.d.ts +15 -0
- package/lib/types/gir-constant-element.js +2 -0
- package/lib/types/gir-constant-element.js.map +1 -0
- package/lib/types/gir-constructor-element.d.ts +8 -0
- package/lib/types/gir-constructor-element.js +2 -0
- package/lib/types/gir-constructor-element.js.map +1 -0
- package/lib/types/gir-direction.d.ts +5 -0
- package/lib/types/gir-direction.js +7 -0
- package/lib/types/gir-direction.js.map +1 -0
- package/lib/types/gir-doc-element.d.ts +68 -0
- package/lib/types/gir-doc-element.js +2 -0
- package/lib/types/gir-doc-element.js.map +1 -0
- package/lib/types/gir-enum-element.d.ts +19 -0
- package/lib/types/gir-enum-element.js +2 -0
- package/lib/types/gir-enum-element.js.map +1 -0
- package/lib/types/gir-field-element.d.ts +18 -0
- package/lib/types/gir-field-element.js +2 -0
- package/lib/types/gir-field-element.js.map +1 -0
- package/lib/types/gir-function-element.d.ts +8 -0
- package/lib/types/gir-function-element.js +2 -0
- package/lib/types/gir-function-element.js.map +1 -0
- package/lib/types/gir-implements.d.ts +8 -0
- package/lib/types/gir-implements.js +2 -0
- package/lib/types/gir-implements.js.map +1 -0
- package/lib/types/gir-include.d.ts +9 -0
- package/lib/types/gir-include.js +2 -0
- package/lib/types/gir-include.js.map +1 -0
- package/lib/types/gir-info-attrs.d.ts +13 -0
- package/lib/types/gir-info-attrs.js +2 -0
- package/lib/types/gir-info-attrs.js.map +1 -0
- package/lib/types/gir-info-elements.d.ts +5 -0
- package/lib/types/gir-info-elements.js +2 -0
- package/lib/types/gir-info-elements.js.map +1 -0
- package/lib/types/gir-instance-parameter.d.ts +21 -0
- package/lib/types/gir-instance-parameter.js +2 -0
- package/lib/types/gir-instance-parameter.js.map +1 -0
- package/lib/types/gir-interface-element.d.ts +31 -0
- package/lib/types/gir-interface-element.js +2 -0
- package/lib/types/gir-interface-element.js.map +1 -0
- package/lib/types/gir-member-element.d.ts +17 -0
- package/lib/types/gir-member-element.js +2 -0
- package/lib/types/gir-member-element.js.map +1 -0
- package/lib/types/gir-method-element.d.ts +13 -0
- package/lib/types/gir-method-element.js +2 -0
- package/lib/types/gir-method-element.js.map +1 -0
- package/lib/types/gir-module-resolved-by.d.ts +10 -0
- package/lib/types/gir-module-resolved-by.js +2 -0
- package/lib/types/gir-module-resolved-by.js.map +1 -0
- package/lib/types/gir-modules-grouped-map.d.ts +4 -0
- package/lib/types/gir-modules-grouped-map.js +2 -0
- package/lib/types/gir-modules-grouped-map.js.map +1 -0
- package/lib/types/gir-modules-grouped.d.ts +12 -0
- package/lib/types/gir-modules-grouped.js +2 -0
- package/lib/types/gir-modules-grouped.js.map +1 -0
- package/lib/types/gir-namespace.d.ts +30 -0
- package/lib/types/gir-namespace.js +2 -0
- package/lib/types/gir-namespace.js.map +1 -0
- package/lib/types/gir-package.d.ts +7 -0
- package/lib/types/gir-package.js +2 -0
- package/lib/types/gir-package.js.map +1 -0
- package/lib/types/gir-prerequisite.d.ts +5 -0
- package/lib/types/gir-prerequisite.js +2 -0
- package/lib/types/gir-prerequisite.js.map +1 -0
- package/lib/types/gir-property-element.d.ts +21 -0
- package/lib/types/gir-property-element.js +2 -0
- package/lib/types/gir-property-element.js.map +1 -0
- package/lib/types/gir-record-element.d.ts +30 -0
- package/lib/types/gir-record-element.js +2 -0
- package/lib/types/gir-record-element.js.map +1 -0
- package/lib/types/gir-repository.d.ts +16 -0
- package/lib/types/gir-repository.js +2 -0
- package/lib/types/gir-repository.js.map +1 -0
- package/lib/types/gir-signal.d.ts +25 -0
- package/lib/types/gir-signal.js +2 -0
- package/lib/types/gir-signal.js.map +1 -0
- package/lib/types/gir-transfer-ownership-type.d.ts +5 -0
- package/lib/types/gir-transfer-ownership-type.js +7 -0
- package/lib/types/gir-transfer-ownership-type.js.map +1 -0
- package/lib/types/gir-transfer-ownership.d.ts +5 -0
- package/lib/types/gir-transfer-ownership.js +2 -0
- package/lib/types/gir-transfer-ownership.js.map +1 -0
- package/lib/types/gir-type.d.ts +14 -0
- package/lib/types/gir-type.js +2 -0
- package/lib/types/gir-type.js.map +1 -0
- package/lib/types/gir-union-element.d.ts +22 -0
- package/lib/types/gir-union-element.js +2 -0
- package/lib/types/gir-union-element.js.map +1 -0
- package/lib/types/gir-unparsed-number.d.ts +2 -0
- package/lib/types/gir-unparsed-number.js +2 -0
- package/lib/types/gir-unparsed-number.js.map +1 -0
- package/lib/types/gir-var-args.d.ts +5 -0
- package/lib/types/gir-var-args.js +2 -0
- package/lib/types/gir-var-args.js.map +1 -0
- package/lib/types/gir-virtual-method.d.ts +10 -0
- package/lib/types/gir-virtual-method.js +2 -0
- package/lib/types/gir-virtual-method.js.map +1 -0
- package/lib/types/index.d.ts +120 -0
- package/lib/types/index.js +121 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/inheritance-table.d.ts +3 -0
- package/lib/types/inheritance-table.js +2 -0
- package/lib/types/inheritance-table.js.map +1 -0
- package/lib/types/injection-callback.d.ts +16 -0
- package/lib/types/injection-callback.js +2 -0
- package/lib/types/injection-callback.js.map +1 -0
- package/lib/types/injection-class.d.ts +25 -0
- package/lib/types/injection-class.js +2 -0
- package/lib/types/injection-class.js.map +1 -0
- package/lib/types/injection-function.d.ts +7 -0
- package/lib/types/injection-function.js +2 -0
- package/lib/types/injection-function.js.map +1 -0
- package/lib/types/injection-generic-parameter.d.ts +2 -0
- package/lib/types/injection-generic-parameter.js +2 -0
- package/lib/types/injection-generic-parameter.js.map +1 -0
- package/lib/types/injection-instance-parameter.d.ts +2 -0
- package/lib/types/injection-instance-parameter.js +2 -0
- package/lib/types/injection-instance-parameter.js.map +1 -0
- package/lib/types/injection-parameter.d.ts +8 -0
- package/lib/types/injection-parameter.js +2 -0
- package/lib/types/injection-parameter.js.map +1 -0
- package/lib/types/injection-property.d.ts +4 -0
- package/lib/types/injection-property.js +2 -0
- package/lib/types/injection-property.js.map +1 -0
- package/lib/types/injection-type.d.ts +2 -0
- package/lib/types/injection-type.js +2 -0
- package/lib/types/injection-type.js.map +1 -0
- package/lib/types/injection.d.ts +5 -0
- package/lib/types/injection.js +2 -0
- package/lib/types/injection.js.map +1 -0
- package/lib/types/local-name-check.d.ts +4 -0
- package/lib/types/local-name-check.js +2 -0
- package/lib/types/local-name-check.js.map +1 -0
- package/lib/types/local-name-type.d.ts +1 -0
- package/lib/types/local-name-type.js +2 -0
- package/lib/types/local-name-type.js.map +1 -0
- package/lib/types/local-name.d.ts +7 -0
- package/lib/types/local-name.js +2 -0
- package/lib/types/local-name.js.map +1 -0
- package/lib/types/local-names.d.ts +4 -0
- package/lib/types/local-names.js +2 -0
- package/lib/types/local-names.js.map +1 -0
- package/lib/types/module-type.d.ts +1 -0
- package/lib/types/module-type.js +2 -0
- package/lib/types/module-type.js.map +1 -0
- package/lib/types/parsed-gir.d.ts +4 -0
- package/lib/types/parsed-gir.js +2 -0
- package/lib/types/parsed-gir.js.map +1 -0
- package/lib/types/part-of-class.d.ts +7 -0
- package/lib/types/part-of-class.js +2 -0
- package/lib/types/part-of-class.js.map +1 -0
- package/lib/types/part-of-module.d.ts +6 -0
- package/lib/types/part-of-module.js +2 -0
- package/lib/types/part-of-module.js.map +1 -0
- package/lib/types/promisify-func.d.ts +7 -0
- package/lib/types/promisify-func.js +2 -0
- package/lib/types/promisify-func.js.map +1 -0
- package/lib/types/resolve-type.d.ts +4 -0
- package/lib/types/resolve-type.js +6 -0
- package/lib/types/resolve-type.js.map +1 -0
- package/lib/types/sym-table-items.d.ts +4 -0
- package/lib/types/sym-table-items.js +2 -0
- package/lib/types/sym-table-items.js.map +1 -0
- package/lib/types/transformation-case.d.ts +1 -0
- package/lib/types/transformation-case.js +2 -0
- package/lib/types/transformation-case.js.map +1 -0
- package/lib/types/transformations.d.ts +11 -0
- package/lib/types/transformations.js +2 -0
- package/lib/types/transformations.js.map +1 -0
- package/lib/types/ts-alias.d.ts +10 -0
- package/lib/types/ts-alias.js +2 -0
- package/lib/types/ts-alias.js.map +1 -0
- package/lib/types/ts-callback-interface.d.ts +10 -0
- package/lib/types/ts-callback-interface.js +2 -0
- package/lib/types/ts-callback-interface.js.map +1 -0
- package/lib/types/ts-callback.d.ts +17 -0
- package/lib/types/ts-callback.js +2 -0
- package/lib/types/ts-callback.js.map +1 -0
- package/lib/types/ts-class.d.ts +85 -0
- package/lib/types/ts-class.js +2 -0
- package/lib/types/ts-class.js.map +1 -0
- package/lib/types/ts-doc-tag.d.ts +21 -0
- package/lib/types/ts-doc-tag.js +2 -0
- package/lib/types/ts-doc-tag.js.map +1 -0
- package/lib/types/ts-doc.d.ts +16 -0
- package/lib/types/ts-doc.js +2 -0
- package/lib/types/ts-doc.js.map +1 -0
- package/lib/types/ts-enum.d.ts +12 -0
- package/lib/types/ts-enum.js +2 -0
- package/lib/types/ts-enum.js.map +1 -0
- package/lib/types/ts-function.d.ts +55 -0
- package/lib/types/ts-function.js +2 -0
- package/lib/types/ts-function.js.map +1 -0
- package/lib/types/ts-generic-parameter.d.ts +8 -0
- package/lib/types/ts-generic-parameter.js +2 -0
- package/lib/types/ts-generic-parameter.js.map +1 -0
- package/lib/types/ts-instance-parameter.d.ts +4 -0
- package/lib/types/ts-instance-parameter.js +2 -0
- package/lib/types/ts-instance-parameter.js.map +1 -0
- package/lib/types/ts-member.d.ts +10 -0
- package/lib/types/ts-member.js +2 -0
- package/lib/types/ts-member.js.map +1 -0
- package/lib/types/ts-method.d.ts +5 -0
- package/lib/types/ts-method.js +2 -0
- package/lib/types/ts-method.js.map +1 -0
- package/lib/types/ts-parameter.d.ts +15 -0
- package/lib/types/ts-parameter.js +2 -0
- package/lib/types/ts-parameter.js.map +1 -0
- package/lib/types/ts-property.d.ts +17 -0
- package/lib/types/ts-property.js +2 -0
- package/lib/types/ts-property.js.map +1 -0
- package/lib/types/ts-signal.d.ts +17 -0
- package/lib/types/ts-signal.js +2 -0
- package/lib/types/ts-signal.js.map +1 -0
- package/lib/types/ts-type-name.d.ts +1 -0
- package/lib/types/ts-type-name.js +2 -0
- package/lib/types/ts-type-name.js.map +1 -0
- package/lib/types/ts-type-separator.d.ts +1 -0
- package/lib/types/ts-type-separator.js +2 -0
- package/lib/types/ts-type-separator.js.map +1 -0
- package/lib/types/ts-type.d.ts +26 -0
- package/lib/types/ts-type.js +2 -0
- package/lib/types/ts-type.js.map +1 -0
- package/lib/types/ts-var.d.ts +17 -0
- package/lib/types/ts-var.js +2 -0
- package/lib/types/ts-var.js.map +1 -0
- package/lib/types/type-gir-alias.d.ts +2 -0
- package/lib/types/type-gir-alias.js +2 -0
- package/lib/types/type-gir-alias.js.map +1 -0
- package/lib/types/type-gir-class.d.ts +2 -0
- package/lib/types/type-gir-class.js +2 -0
- package/lib/types/type-gir-class.js.map +1 -0
- package/lib/types/type-gir-element.d.ts +3 -0
- package/lib/types/type-gir-element.js +2 -0
- package/lib/types/type-gir-element.js.map +1 -0
- package/lib/types/type-gir-enumeration-member.d.ts +2 -0
- package/lib/types/type-gir-enumeration-member.js +2 -0
- package/lib/types/type-gir-enumeration-member.js.map +1 -0
- package/lib/types/type-gir-enumeration.d.ts +2 -0
- package/lib/types/type-gir-enumeration.js +2 -0
- package/lib/types/type-gir-enumeration.js.map +1 -0
- package/lib/types/type-gir-function.d.ts +1 -0
- package/lib/types/type-gir-function.js +2 -0
- package/lib/types/type-gir-function.js.map +1 -0
- package/lib/types/type-gir-interface.d.ts +2 -0
- package/lib/types/type-gir-interface.js +2 -0
- package/lib/types/type-gir-interface.js.map +1 -0
- package/lib/types/type-gir-method.d.ts +2 -0
- package/lib/types/type-gir-method.js +2 -0
- package/lib/types/type-gir-method.js.map +1 -0
- package/lib/types/type-gir-parameter.d.ts +1 -0
- package/lib/types/type-gir-parameter.js +2 -0
- package/lib/types/type-gir-parameter.js.map +1 -0
- package/lib/types/type-gir-property.d.ts +2 -0
- package/lib/types/type-gir-property.js +2 -0
- package/lib/types/type-gir-property.js.map +1 -0
- package/lib/types/type-gir-variable.d.ts +1 -0
- package/lib/types/type-gir-variable.js +2 -0
- package/lib/types/type-gir-variable.js.map +1 -0
- package/lib/types/type-ts-element.d.ts +3 -0
- package/lib/types/type-ts-element.js +2 -0
- package/lib/types/type-ts-element.js.map +1 -0
- package/lib/types/type-ts-enumeration-member.d.ts +2 -0
- package/lib/types/type-ts-enumeration-member.js +2 -0
- package/lib/types/type-ts-enumeration-member.js.map +1 -0
- package/lib/types/type-ts-function.d.ts +1 -0
- package/lib/types/type-ts-function.js +2 -0
- package/lib/types/type-ts-function.js.map +1 -0
- package/lib/types/type-ts-property.d.ts +1 -0
- package/lib/types/type-ts-property.js +2 -0
- package/lib/types/type-ts-property.js.map +1 -0
- package/lib/types/user-config-load-result.d.ts +6 -0
- package/lib/types/user-config-load-result.js +2 -0
- package/lib/types/user-config-load-result.js.map +1 -0
- package/lib/types/user-config.d.ts +42 -0
- package/lib/types/user-config.js +2 -0
- package/lib/types/user-config.js.map +1 -0
- package/lib/utils.d.ts +292 -0
- package/lib/utils.js +403 -0
- package/lib/utils.js.map +1 -0
- package/package.json +89 -0
- package/src/commands/doc.ts +65 -0
- package/src/commands/generate.ts +88 -0
- package/src/commands/index.ts +3 -0
- package/src/commands/list.ts +96 -0
- package/src/config.ts +528 -0
- package/src/conflict-resolver.ts +1358 -0
- package/src/constants.ts +29 -0
- package/src/dependency-manager.ts +91 -0
- package/src/generation-handler.ts +79 -0
- package/src/generator.ts +10 -0
- package/src/gir-factory.ts +526 -0
- package/src/gir-module.ts +2953 -0
- package/src/html-doc-generator.ts +23 -0
- package/src/index.ts +17 -0
- package/src/injection/callbacks/gjs/Gio-2.0.ts +37 -0
- package/src/injection/callbacks/gjs/index.ts +5 -0
- package/src/injection/callbacks/index.ts +6 -0
- package/src/injection/callbacks/node-gtk/index.ts +3 -0
- package/src/injection/classes/GLib-2-0.ts +36 -0
- package/src/injection/classes/gjs/GLib-2.0.ts +206 -0
- package/src/injection/classes/gjs/GObject-2.0.ts +635 -0
- package/src/injection/classes/gjs/Gio-2.0.ts +219 -0
- package/src/injection/classes/gjs/index.ts +7 -0
- package/src/injection/classes/index.ts +7 -0
- package/src/injection/classes/node-gtk/GLib-2.0.ts +20 -0
- package/src/injection/classes/node-gtk/GObject-2.0.ts +67 -0
- package/src/injection/classes/node-gtk/Gdk-4.0.ts +33 -0
- package/src/injection/classes/node-gtk/Gio-2.0.ts +15 -0
- package/src/injection/classes/node-gtk/Graphene-1.0.ts +134 -0
- package/src/injection/classes/node-gtk/Gtk-3.0.ts +32 -0
- package/src/injection/classes/node-gtk/Gtk-4.0.ts +53 -0
- package/src/injection/classes/node-gtk/Pango-1.0.ts +32 -0
- package/src/injection/classes/node-gtk/index.ts +21 -0
- package/src/injection/index.ts +3 -0
- package/src/injection/injector.ts +184 -0
- package/src/logger.ts +134 -0
- package/src/messages.ts +69 -0
- package/src/module-loader.ts +576 -0
- package/src/start.ts +16 -0
- package/src/symtable.ts +72 -0
- package/src/template-processor.ts +199 -0
- package/src/transformation.ts +584 -0
- package/src/type-definition-generator.ts +1467 -0
- package/src/types/answer-version.ts +4 -0
- package/src/types/build-type.ts +1 -0
- package/src/types/class-parent.ts +14 -0
- package/src/types/config-flags.ts +5 -0
- package/src/types/conflict-child-element.ts +11 -0
- package/src/types/conflict-grouped-element.ts +7 -0
- package/src/types/conflict-grouped-elements.ts +5 -0
- package/src/types/construct-name.ts +11 -0
- package/src/types/dependency-map.ts +4 -0
- package/src/types/dependency.ts +16 -0
- package/src/types/environment.ts +1 -0
- package/src/types/file-info.ts +14 -0
- package/src/types/generate-config.ts +35 -0
- package/src/types/generator-type.ts +4 -0
- package/src/types/gir-alias-element.ts +15 -0
- package/src/types/gir-annotation.ts +10 -0
- package/src/types/gir-any-element.ts +35 -0
- package/src/types/gir-any-type.ts +7 -0
- package/src/types/gir-array-type.ts +23 -0
- package/src/types/gir-bitfield-element.ts +20 -0
- package/src/types/gir-boolean.ts +1 -0
- package/src/types/gir-boxed-element.ts +19 -0
- package/src/types/gir-c-include.ts +7 -0
- package/src/types/gir-callable-attrs.ts +19 -0
- package/src/types/gir-callable-param-element.ts +45 -0
- package/src/types/gir-callable-param.ts +9 -0
- package/src/types/gir-callable-return.ts +25 -0
- package/src/types/gir-callback-element.ts +28 -0
- package/src/types/gir-class-element.ts +71 -0
- package/src/types/gir-constant-element.ts +17 -0
- package/src/types/gir-constructor-element.ts +18 -0
- package/src/types/gir-direction.ts +5 -0
- package/src/types/gir-doc-element.ts +73 -0
- package/src/types/gir-enum-element.ts +28 -0
- package/src/types/gir-field-element.ts +31 -0
- package/src/types/gir-function-element.ts +19 -0
- package/src/types/gir-implements.ts +9 -0
- package/src/types/gir-include.ts +9 -0
- package/src/types/gir-info-attrs.ts +16 -0
- package/src/types/gir-info-elements.ts +8 -0
- package/src/types/gir-instance-parameter.ts +25 -0
- package/src/types/gir-interface-element.ts +53 -0
- package/src/types/gir-member-element.ts +19 -0
- package/src/types/gir-method-element.ts +25 -0
- package/src/types/gir-module-resolved-by.ts +11 -0
- package/src/types/gir-modules-grouped-map.ts +5 -0
- package/src/types/gir-modules-grouped.ts +13 -0
- package/src/types/gir-namespace.ts +47 -0
- package/src/types/gir-package.ts +7 -0
- package/src/types/gir-prerequisite.ts +5 -0
- package/src/types/gir-property-element.ts +31 -0
- package/src/types/gir-record-element.ts +47 -0
- package/src/types/gir-repository.ts +20 -0
- package/src/types/gir-signal.ts +43 -0
- package/src/types/gir-transfer-ownership-type.ts +5 -0
- package/src/types/gir-transfer-ownership.ts +6 -0
- package/src/types/gir-type.ts +16 -0
- package/src/types/gir-union-element.ts +35 -0
- package/src/types/gir-unparsed-number.ts +2 -0
- package/src/types/gir-var-args.ts +6 -0
- package/src/types/gir-virtual-method.ts +22 -0
- package/src/types/index.ts +120 -0
- package/src/types/inheritance-table.ts +3 -0
- package/src/types/injection-callback.ts +20 -0
- package/src/types/injection-class.ts +30 -0
- package/src/types/injection-function.ts +31 -0
- package/src/types/injection-generic-parameter.ts +3 -0
- package/src/types/injection-instance-parameter.ts +3 -0
- package/src/types/injection-parameter.ts +9 -0
- package/src/types/injection-property.ts +7 -0
- package/src/types/injection-type.ts +3 -0
- package/src/types/injection.ts +6 -0
- package/src/types/local-name-check.ts +5 -0
- package/src/types/local-name-type.ts +1 -0
- package/src/types/local-name.ts +8 -0
- package/src/types/local-names.ts +5 -0
- package/src/types/module-type.ts +1 -0
- package/src/types/parsed-gir.ts +5 -0
- package/src/types/part-of-class.ts +9 -0
- package/src/types/part-of-module.ts +8 -0
- package/src/types/promisify-func.ts +9 -0
- package/src/types/resolve-type.ts +4 -0
- package/src/types/sym-table-items.ts +5 -0
- package/src/types/transformation-case.ts +7 -0
- package/src/types/transformations.ts +12 -0
- package/src/types/ts-alias.ts +11 -0
- package/src/types/ts-callback-interface.ts +11 -0
- package/src/types/ts-callback.ts +21 -0
- package/src/types/ts-class.ts +109 -0
- package/src/types/ts-doc-tag.ts +23 -0
- package/src/types/ts-doc.ts +18 -0
- package/src/types/ts-enum.ts +15 -0
- package/src/types/ts-function.ts +70 -0
- package/src/types/ts-generic-parameter.ts +8 -0
- package/src/types/ts-instance-parameter.ts +4 -0
- package/src/types/ts-member.ts +11 -0
- package/src/types/ts-method.ts +6 -0
- package/src/types/ts-parameter.ts +20 -0
- package/src/types/ts-property.ts +22 -0
- package/src/types/ts-signal.ts +21 -0
- package/src/types/ts-type-name.ts +1 -0
- package/src/types/ts-type-separator.ts +1 -0
- package/src/types/ts-type.ts +28 -0
- package/src/types/ts-var.ts +21 -0
- package/src/types/type-gir-alias.ts +2 -0
- package/src/types/type-gir-class.ts +2 -0
- package/src/types/type-gir-element.ts +25 -0
- package/src/types/type-gir-enumeration-member.ts +2 -0
- package/src/types/type-gir-enumeration.ts +2 -0
- package/src/types/type-gir-function.ts +8 -0
- package/src/types/type-gir-interface.ts +2 -0
- package/src/types/type-gir-method.ts +2 -0
- package/src/types/type-gir-parameter.ts +1 -0
- package/src/types/type-gir-property.ts +2 -0
- package/src/types/type-gir-variable.ts +1 -0
- package/src/types/type-ts-element.ts +13 -0
- package/src/types/type-ts-enumeration-member.ts +2 -0
- package/src/types/type-ts-function.ts +1 -0
- package/src/types/type-ts-property.ts +1 -0
- package/src/types/user-config-load-result.ts +6 -0
- package/src/types/user-config.ts +43 -0
- package/src/utils.ts +433 -0
- package/templates/Cogl-2.0.d.ts +0 -0
- package/templates/Gjs/GObject-2.0.d.ts +238 -0
- package/templates/Gjs/Gio-2.0.d.ts +101 -0
- package/templates/Gjs/Gjs.d.ts +204 -0
- package/templates/Gjs/Gjs.js +21 -0
- package/templates/Gjs/GnomeShell.d.ts +154 -0
- package/templates/Gjs/GnomeShell.js +10 -0
- package/templates/Gjs/index.d.ts +594 -0
- package/templates/Gjs/index.js +4 -0
- package/templates/Gjs/misc/dbusUtils.d.ts +15 -0
- package/templates/Gjs/misc/dbusUtils.js +6 -0
- package/templates/Gjs/misc/extensionUtils.d.ts +99 -0
- package/templates/Gjs/misc/extensionUtils.js +6 -0
- package/templates/Gjs/misc/fileUtils.d.ts +51 -0
- package/templates/Gjs/misc/fileUtils.js +6 -0
- package/templates/Gjs/misc/gnomeSession.d.ts +74 -0
- package/templates/Gjs/misc/gnomeSession.js +6 -0
- package/templates/Gjs/misc/parentalControlsManager.d.ts +42 -0
- package/templates/Gjs/misc/parentalControlsManager.js +6 -0
- package/templates/Gjs/misc/signals.d.ts +15 -0
- package/templates/Gjs/misc/signals.js +6 -0
- package/templates/Gjs/module.d.ts +6 -0
- package/templates/Gjs/module.js +16 -0
- package/templates/Gjs/tsconfig.alias.json +10 -0
- package/templates/Gjs/ui/accessDialog.d.ts +19 -0
- package/templates/Gjs/ui/accessDialog.js +6 -0
- package/templates/Gjs/ui/altTab.d.ts +124 -0
- package/templates/Gjs/ui/altTab.js +6 -0
- package/templates/Gjs/ui/animation.d.ts +58 -0
- package/templates/Gjs/ui/animation.js +6 -0
- package/templates/Gjs/ui/appDisplay.d.ts +204 -0
- package/templates/Gjs/ui/appDisplay.js +6 -0
- package/templates/Gjs/ui/appFavorites.d.ts +34 -0
- package/templates/Gjs/ui/appFavorites.js +6 -0
- package/templates/Gjs/ui/appMenu.d.ts +74 -0
- package/templates/Gjs/ui/appMenu.js +6 -0
- package/templates/Gjs/ui/audioDeviceSelection.d.ts +51 -0
- package/templates/Gjs/ui/audioDeviceSelection.js +6 -0
- package/templates/Gjs/ui/background.d.ts +255 -0
- package/templates/Gjs/ui/background.js +5 -0
- package/templates/Gjs/ui/backgroundMenu.d.ts +19 -0
- package/templates/Gjs/ui/backgroundMenu.js +5 -0
- package/templates/Gjs/ui/barLevel.d.ts +42 -0
- package/templates/Gjs/ui/barLevel.js +5 -0
- package/templates/Gjs/ui/boxpointer.d.ts +103 -0
- package/templates/Gjs/ui/boxpointer.js +5 -0
- package/templates/Gjs/ui/calendar.d.ts +261 -0
- package/templates/Gjs/ui/calendar.js +5 -0
- package/templates/Gjs/ui/checkBox.d.ts +22 -0
- package/templates/Gjs/ui/checkBox.js +5 -0
- package/templates/Gjs/ui/closeDialog.d.ts +40 -0
- package/templates/Gjs/ui/closeDialog.js +5 -0
- package/templates/Gjs/ui/components/__init__.d.ts +9 -0
- package/templates/Gjs/ui/components/__init__.js +6 -0
- package/templates/Gjs/ui/components/automountManager.d.ts +8 -0
- package/templates/Gjs/ui/components/automountManager.js +6 -0
- package/templates/Gjs/ui/components/autorunManager.d.ts +8 -0
- package/templates/Gjs/ui/components/autorunManager.js +6 -0
- package/templates/Gjs/ui/components/index.d.ts +6 -0
- package/templates/Gjs/ui/components/index.js +6 -0
- package/templates/Gjs/ui/components/keyring.d.ts +19 -0
- package/templates/Gjs/ui/components/keyring.js +6 -0
- package/templates/Gjs/ui/components/networkAgent.d.ts +10 -0
- package/templates/Gjs/ui/components/networkAgent.js +6 -0
- package/templates/Gjs/ui/components/polkitAgent.d.ts +19 -0
- package/templates/Gjs/ui/components/polkitAgent.js +6 -0
- package/templates/Gjs/ui/components/telepathyClient.d.ts +10 -0
- package/templates/Gjs/ui/components/telepathyClient.js +6 -0
- package/templates/Gjs/ui/dialog.d.ts +78 -0
- package/templates/Gjs/ui/dialog.js +6 -0
- package/templates/Gjs/ui/dnd.d.ts +127 -0
- package/templates/Gjs/ui/dnd.js +6 -0
- package/templates/Gjs/ui/iconGrid.d.ts +172 -0
- package/templates/Gjs/ui/iconGrid.js +6 -0
- package/templates/Gjs/ui/layout.d.ts +311 -0
- package/templates/Gjs/ui/layout.js +6 -0
- package/templates/Gjs/ui/main.d.ts +215 -0
- package/templates/Gjs/ui/main.js +6 -0
- package/templates/Gjs/ui/messageList.d.ts +113 -0
- package/templates/Gjs/ui/messageList.js +6 -0
- package/templates/Gjs/ui/messageTray.d.ts +423 -0
- package/templates/Gjs/ui/messageTray.js +6 -0
- package/templates/Gjs/ui/modalDialog.d.ts +96 -0
- package/templates/Gjs/ui/modalDialog.js +6 -0
- package/templates/Gjs/ui/mpris.d.ts +78 -0
- package/templates/Gjs/ui/mpris.js +6 -0
- package/templates/Gjs/ui/notificationDaemon.d.ts +5 -0
- package/templates/Gjs/ui/notificationDaemon.js +6 -0
- package/templates/Gjs/ui/panel.d.ts +65 -0
- package/templates/Gjs/ui/panel.js +6 -0
- package/templates/Gjs/ui/panelMenu.d.ts +51 -0
- package/templates/Gjs/ui/panelMenu.js +6 -0
- package/templates/Gjs/ui/popupMenu.d.ts +228 -0
- package/templates/Gjs/ui/popupMenu.js +6 -0
- package/templates/Gjs/ui/ripples.d.ts +44 -0
- package/templates/Gjs/ui/ripples.js +6 -0
- package/templates/Gjs/ui/search.d.ts +158 -0
- package/templates/Gjs/ui/search.js +6 -0
- package/templates/Gjs/ui/switcherPopup.d.ts +107 -0
- package/templates/Gjs/ui/switcherPopup.js +6 -0
- package/templates/Gjs/ui/userWidget.d.ts +13 -0
- package/templates/Gjs/ui/userWidget.js +6 -0
- package/templates/Granite-1.0.d.ts +7 -0
- package/templates/Granite-7.0.d.ts +7 -0
- package/templates/GstBase-0.10.d.ts +5 -0
- package/templates/RygelServer-2.6.d.ts +3 -0
- package/templates/node-gtk/GObject-2.0.d.ts +57 -0
- package/templates/node-gtk/index.d.ts +40 -0
- package/templates/node-gtk/index.js +9 -0
- package/templates/node-gtk/module.d.ts +6 -0
- package/templates/node-gtk/module.js +17 -0
package/src/config.ts
ADDED
|
@@ -0,0 +1,528 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
2
|
+
/**
|
|
3
|
+
* Default values, parse the config file and handle CLI flags
|
|
4
|
+
*/
|
|
5
|
+
import inquirer from 'inquirer'
|
|
6
|
+
import { Options } from 'yargs'
|
|
7
|
+
import { cosmiconfig, Options as ConfigSearchOptions } from 'cosmiconfig'
|
|
8
|
+
import { join, extname, dirname, resolve } from 'path'
|
|
9
|
+
import OS from 'os'
|
|
10
|
+
import { merge, isEqual, readTsJsConfig } from './utils.js'
|
|
11
|
+
import type { Environment, UserConfig, ConfigFlags, UserConfigLoadResult, GenerateConfig } from './types/index.js'
|
|
12
|
+
import { writeFile } from 'fs/promises'
|
|
13
|
+
import { Logger } from './logger.js'
|
|
14
|
+
import { APP_NAME, APP_USAGE } from './constants.js'
|
|
15
|
+
import {
|
|
16
|
+
WARN_NO_NAMESPACE_ON_TYPES,
|
|
17
|
+
WARN_NO_NAMESPACE_ON_ESM,
|
|
18
|
+
ERROR_CONFIG_EXTENSION_UNSUPPORTED,
|
|
19
|
+
WARN_USE_ESM_FOR_ALIAS,
|
|
20
|
+
WARN_USE_GJS_FOR_ALIAS,
|
|
21
|
+
} from './messages.js'
|
|
22
|
+
|
|
23
|
+
export class Config {
|
|
24
|
+
static appName = APP_NAME
|
|
25
|
+
|
|
26
|
+
static usage = APP_USAGE
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Default cli flag and argument values
|
|
30
|
+
*/
|
|
31
|
+
static defaults = {
|
|
32
|
+
environments: ['gjs'],
|
|
33
|
+
print: false,
|
|
34
|
+
configName: '.ts-for-girrc.js',
|
|
35
|
+
outdir: './@types',
|
|
36
|
+
girDirectories: OS.platform() === 'darwin' ? ['/usr/local/share/gir-1.0'] : ['/usr/share/gir-1.0'],
|
|
37
|
+
modules: ['*'],
|
|
38
|
+
ignore: [],
|
|
39
|
+
verbose: false,
|
|
40
|
+
ignoreVersionConflicts: false,
|
|
41
|
+
noNamespace: false,
|
|
42
|
+
buildType: 'lib',
|
|
43
|
+
moduleType: 'esm',
|
|
44
|
+
noComments: false,
|
|
45
|
+
noDebugComments: false,
|
|
46
|
+
fixConflicts: true,
|
|
47
|
+
noDOMLib: false,
|
|
48
|
+
gnomeShellTypes: false,
|
|
49
|
+
generateAlias: false,
|
|
50
|
+
promisify: false,
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
static configFilePath = join(process.cwd(), Config.defaults.configName)
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* CLI options used in commands/generate.ts and commands/list.ts
|
|
57
|
+
*/
|
|
58
|
+
static options: { [name: string]: Options } = {
|
|
59
|
+
modules: {
|
|
60
|
+
description: "GIR modules to load, e.g. 'Gio-2.0'. Accepts multiple modules",
|
|
61
|
+
array: true,
|
|
62
|
+
default: Config.defaults.modules,
|
|
63
|
+
normalize: true,
|
|
64
|
+
},
|
|
65
|
+
girDirectories: {
|
|
66
|
+
type: 'string',
|
|
67
|
+
alias: 'g',
|
|
68
|
+
description: 'GIR directories',
|
|
69
|
+
array: true,
|
|
70
|
+
default: Config.defaults.girDirectories,
|
|
71
|
+
normalize: true,
|
|
72
|
+
},
|
|
73
|
+
outdir: {
|
|
74
|
+
type: 'string',
|
|
75
|
+
alias: 'o',
|
|
76
|
+
description: 'Directory to output to',
|
|
77
|
+
default: Config.defaults.outdir,
|
|
78
|
+
normalize: true,
|
|
79
|
+
},
|
|
80
|
+
environments: {
|
|
81
|
+
type: 'string',
|
|
82
|
+
alias: 'e',
|
|
83
|
+
description: 'Javascript environment',
|
|
84
|
+
array: true,
|
|
85
|
+
choices: ['gjs', 'node'],
|
|
86
|
+
default: Config.defaults.environments,
|
|
87
|
+
normalize: true,
|
|
88
|
+
},
|
|
89
|
+
ignore: {
|
|
90
|
+
type: 'string',
|
|
91
|
+
alias: 'i',
|
|
92
|
+
description: 'Modules that should be ignored',
|
|
93
|
+
array: true,
|
|
94
|
+
default: Config.defaults.ignore,
|
|
95
|
+
normalize: true,
|
|
96
|
+
},
|
|
97
|
+
buildType: {
|
|
98
|
+
type: 'string',
|
|
99
|
+
alias: 'b',
|
|
100
|
+
description: 'Definitions generation type',
|
|
101
|
+
array: false,
|
|
102
|
+
choices: ['lib', 'types'],
|
|
103
|
+
default: Config.defaults.buildType,
|
|
104
|
+
normalize: true,
|
|
105
|
+
},
|
|
106
|
+
moduleType: {
|
|
107
|
+
type: 'string',
|
|
108
|
+
alias: 't',
|
|
109
|
+
description: 'Specify what module code is generated.',
|
|
110
|
+
choices: ['esm', 'commonjs'],
|
|
111
|
+
default: Config.defaults.moduleType,
|
|
112
|
+
normalize: true,
|
|
113
|
+
},
|
|
114
|
+
verbose: {
|
|
115
|
+
type: 'boolean',
|
|
116
|
+
alias: 'v',
|
|
117
|
+
description: 'Switch on/off the verbose mode',
|
|
118
|
+
default: Config.defaults.verbose,
|
|
119
|
+
normalize: true,
|
|
120
|
+
},
|
|
121
|
+
ignoreVersionConflicts: {
|
|
122
|
+
type: 'boolean',
|
|
123
|
+
description: 'Do not ask for package versions if multiple versions are found',
|
|
124
|
+
default: Config.defaults.ignoreVersionConflicts,
|
|
125
|
+
normalize: true,
|
|
126
|
+
},
|
|
127
|
+
print: {
|
|
128
|
+
type: 'boolean',
|
|
129
|
+
alias: 'p',
|
|
130
|
+
description: 'Print the output to console and create no files',
|
|
131
|
+
default: Config.defaults.print,
|
|
132
|
+
normalize: true,
|
|
133
|
+
},
|
|
134
|
+
configName: {
|
|
135
|
+
type: 'string',
|
|
136
|
+
description: 'Name of the config if you want to use a different name',
|
|
137
|
+
default: Config.defaults.configName,
|
|
138
|
+
normalize: true,
|
|
139
|
+
},
|
|
140
|
+
noNamespace: {
|
|
141
|
+
type: 'boolean',
|
|
142
|
+
alias: 'd',
|
|
143
|
+
description: 'Do not export all symbols for each module as a namespace',
|
|
144
|
+
default: Config.defaults.noNamespace,
|
|
145
|
+
normalize: true,
|
|
146
|
+
},
|
|
147
|
+
noComments: {
|
|
148
|
+
type: 'boolean',
|
|
149
|
+
alias: 'n',
|
|
150
|
+
description: 'Do not generate documentation comments',
|
|
151
|
+
default: Config.defaults.noComments,
|
|
152
|
+
normalize: true,
|
|
153
|
+
},
|
|
154
|
+
noDebugComments: {
|
|
155
|
+
type: 'boolean',
|
|
156
|
+
description: 'Do not generate debugging inline comments',
|
|
157
|
+
default: Config.defaults.noDebugComments,
|
|
158
|
+
normalize: true,
|
|
159
|
+
},
|
|
160
|
+
fixConflicts: {
|
|
161
|
+
type: 'boolean',
|
|
162
|
+
description: 'Fix Inheritance and implementation type conflicts',
|
|
163
|
+
default: Config.defaults.fixConflicts,
|
|
164
|
+
normalize: true,
|
|
165
|
+
},
|
|
166
|
+
noDOMLib: {
|
|
167
|
+
type: 'boolean',
|
|
168
|
+
description: 'Disables the generation of types that are in conflict with the DOM types',
|
|
169
|
+
default: Config.defaults.noDOMLib,
|
|
170
|
+
normalize: true,
|
|
171
|
+
},
|
|
172
|
+
gnomeShellTypes: {
|
|
173
|
+
type: 'boolean',
|
|
174
|
+
description: 'Generate types for GNOME Shell (Experimental)',
|
|
175
|
+
default: Config.defaults.gnomeShellTypes,
|
|
176
|
+
normalize: true,
|
|
177
|
+
},
|
|
178
|
+
generateAlias: {
|
|
179
|
+
type: 'boolean',
|
|
180
|
+
alias: 'a',
|
|
181
|
+
description: 'Generate an alias tsconfig file to support GJS ESM module imports',
|
|
182
|
+
default: Config.defaults.generateAlias,
|
|
183
|
+
normalize: true,
|
|
184
|
+
},
|
|
185
|
+
promisify: {
|
|
186
|
+
type: 'boolean',
|
|
187
|
+
description: 'Generate promisified functions for async/finish calls',
|
|
188
|
+
default: Config.defaults.promisify,
|
|
189
|
+
normalize: true,
|
|
190
|
+
},
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* CLI flags used in commands/generate.ts
|
|
195
|
+
*/
|
|
196
|
+
static generateOptions = {
|
|
197
|
+
modules: this.options.modules,
|
|
198
|
+
girDirectories: this.options.girDirectories,
|
|
199
|
+
outdir: this.options.outdir,
|
|
200
|
+
environments: this.options.environments,
|
|
201
|
+
ignore: this.options.ignore,
|
|
202
|
+
buildType: this.options.buildType,
|
|
203
|
+
moduleType: this.options.moduleType,
|
|
204
|
+
verbose: this.options.verbose,
|
|
205
|
+
ignoreVersionConflicts: this.options.ignoreVersionConflicts,
|
|
206
|
+
print: this.options.print,
|
|
207
|
+
configName: this.options.configName,
|
|
208
|
+
noNamespace: this.options.noNamespace,
|
|
209
|
+
noComments: this.options.noComments,
|
|
210
|
+
noDebugComments: this.options.noDebugComments,
|
|
211
|
+
noDOMLib: this.options.noDOMLib,
|
|
212
|
+
fixConflicts: this.options.fixConflicts,
|
|
213
|
+
gnomeShellTypes: this.options.gnomeShellTypes,
|
|
214
|
+
generateAlias: this.options.generateAlias,
|
|
215
|
+
promisify: this.options.promisify,
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
static listOptions = {
|
|
219
|
+
modules: this.options.modules,
|
|
220
|
+
girDirectories: Config.options.girDirectories,
|
|
221
|
+
ignore: Config.options.ignore,
|
|
222
|
+
configName: Config.options.configName,
|
|
223
|
+
verbose: Config.options.verbose,
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Overwrites values in the user config
|
|
228
|
+
* @param configsToAdd
|
|
229
|
+
*/
|
|
230
|
+
public static async addToConfig(configsToAdd: Partial<UserConfig>): Promise<void> {
|
|
231
|
+
const userConfig = await this.loadConfigFile()
|
|
232
|
+
const path = userConfig?.filepath || this.configFilePath
|
|
233
|
+
const configToStore = {}
|
|
234
|
+
merge(configToStore, userConfig?.config || {}, configsToAdd)
|
|
235
|
+
const fileExtension = extname(path)
|
|
236
|
+
let writeConfigString = ''
|
|
237
|
+
switch (fileExtension) {
|
|
238
|
+
case '.js':
|
|
239
|
+
writeConfigString = `export default ${JSON.stringify(configToStore, null, 4)}`
|
|
240
|
+
break
|
|
241
|
+
case '.json':
|
|
242
|
+
writeConfigString = `${JSON.stringify(configToStore, null, 4)}`
|
|
243
|
+
break
|
|
244
|
+
default:
|
|
245
|
+
Logger.error(ERROR_CONFIG_EXTENSION_UNSUPPORTED)
|
|
246
|
+
break
|
|
247
|
+
}
|
|
248
|
+
if (writeConfigString && path) {
|
|
249
|
+
return writeFile(path, writeConfigString)
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* The user can create a `.ts-for-girrc` file for his default configs,
|
|
255
|
+
* this method load this config file an returns the user configuration
|
|
256
|
+
* @param configName If the user uses a custom config file name
|
|
257
|
+
*/
|
|
258
|
+
private static async loadConfigFile(configName?: string): Promise<UserConfigLoadResult | null> {
|
|
259
|
+
const configSearchOptions: ConfigSearchOptions = {
|
|
260
|
+
loaders: {
|
|
261
|
+
// ESM loader
|
|
262
|
+
'.js': async (filepath) => {
|
|
263
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
264
|
+
const file = await import(filepath)
|
|
265
|
+
|
|
266
|
+
// Files with `exports.default = { ... }`
|
|
267
|
+
if (file?.default?.default) {
|
|
268
|
+
return file.default.default as Partial<UserConfig>
|
|
269
|
+
}
|
|
270
|
+
// Files with `export default { ... }`
|
|
271
|
+
if (file?.default) {
|
|
272
|
+
return file.default as Partial<UserConfig>
|
|
273
|
+
}
|
|
274
|
+
// Files with `export { ... }`
|
|
275
|
+
return file as Partial<UserConfig>
|
|
276
|
+
},
|
|
277
|
+
},
|
|
278
|
+
}
|
|
279
|
+
if (configName) {
|
|
280
|
+
configSearchOptions.searchPlaces = [configName]
|
|
281
|
+
}
|
|
282
|
+
const configFile: UserConfigLoadResult | null = await cosmiconfig(Config.appName, configSearchOptions).search()
|
|
283
|
+
if (configFile?.filepath) {
|
|
284
|
+
Config.configFilePath = configFile.filepath
|
|
285
|
+
const configDir = dirname(configFile.filepath)
|
|
286
|
+
|
|
287
|
+
// If outdir is not absolute, make it relative to the config file
|
|
288
|
+
if (configFile.config.outdir && !configFile.config.outdir?.startsWith('/')) {
|
|
289
|
+
configFile.config.outdir = resolve(configDir, configFile.config.outdir)
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
// Same for girDirectories
|
|
293
|
+
if (configFile.config.girDirectories) {
|
|
294
|
+
configFile.config.girDirectories = configFile.config.girDirectories.map((dir) => {
|
|
295
|
+
if (!dir.startsWith('/')) {
|
|
296
|
+
return resolve(configDir, dir)
|
|
297
|
+
}
|
|
298
|
+
return dir
|
|
299
|
+
})
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
return configFile
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
public static getGenerateConfig(config: UserConfig, environment: Environment = 'gjs'): GenerateConfig {
|
|
307
|
+
const generateConfig: GenerateConfig = {
|
|
308
|
+
environment: environment,
|
|
309
|
+
girDirectories: config.girDirectories,
|
|
310
|
+
outdir: config.outdir,
|
|
311
|
+
verbose: config.verbose,
|
|
312
|
+
buildType: config.buildType,
|
|
313
|
+
moduleType: config.moduleType,
|
|
314
|
+
noNamespace: config.noNamespace,
|
|
315
|
+
noComments: config.noComments,
|
|
316
|
+
noDebugComments: config.noDebugComments,
|
|
317
|
+
fixConflicts: config.fixConflicts,
|
|
318
|
+
noDOMLib: config.noDOMLib,
|
|
319
|
+
gnomeShellTypes: config.gnomeShellTypes,
|
|
320
|
+
generateAlias: config.generateAlias,
|
|
321
|
+
promisify: config.promisify,
|
|
322
|
+
}
|
|
323
|
+
return generateConfig
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
protected static async validateTsConfig(config: UserConfig): Promise<UserConfig> {
|
|
327
|
+
const tsCompilerOptions = (config.outdir && readTsJsConfig(config.outdir)?.compilerOptions) || {}
|
|
328
|
+
const tsConfigHasDOMLib = tsCompilerOptions.noLib
|
|
329
|
+
? false // NoLib makes typescript to ignore the lib property
|
|
330
|
+
: Array.isArray(tsCompilerOptions.lib)
|
|
331
|
+
? tsCompilerOptions.lib.some((lib) => lib.toLowerCase().startsWith('dom'))
|
|
332
|
+
: true // Typescript icludes DOM lib by default
|
|
333
|
+
|
|
334
|
+
if (config.environments.includes('gjs') && tsConfigHasDOMLib && !config.noDOMLib) {
|
|
335
|
+
const answer = (
|
|
336
|
+
await inquirer.prompt([
|
|
337
|
+
{
|
|
338
|
+
type: 'list',
|
|
339
|
+
name: 'include',
|
|
340
|
+
choices: ['Yes', 'No'],
|
|
341
|
+
message:
|
|
342
|
+
'Your typescript compilerOptions includes the DOM lib, this conflicts with some Gjs global types, do you want to skip generating those types?',
|
|
343
|
+
},
|
|
344
|
+
])
|
|
345
|
+
).include as 'Yes' | 'No'
|
|
346
|
+
|
|
347
|
+
if (answer == 'No') config.noDOMLib = true
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
return config
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
public static async validate(config: UserConfig): Promise<UserConfig> {
|
|
354
|
+
if (config.buildType === 'types') {
|
|
355
|
+
if (config.noNamespace !== false) {
|
|
356
|
+
Logger.warn(WARN_NO_NAMESPACE_ON_TYPES)
|
|
357
|
+
config.noNamespace = false
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
if (config.moduleType === 'esm') {
|
|
362
|
+
if (config.noNamespace !== false) {
|
|
363
|
+
Logger.warn(WARN_NO_NAMESPACE_ON_ESM)
|
|
364
|
+
config.noNamespace = false
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
if (config.generateAlias) {
|
|
369
|
+
if (!config.environments.includes('gjs')) {
|
|
370
|
+
Logger.warn(WARN_USE_GJS_FOR_ALIAS)
|
|
371
|
+
config.environments.push('gjs')
|
|
372
|
+
}
|
|
373
|
+
if (config.moduleType !== 'esm') {
|
|
374
|
+
Logger.warn(WARN_USE_ESM_FOR_ALIAS)
|
|
375
|
+
config.moduleType = 'esm'
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
if (config.moduleType === 'esm') {
|
|
380
|
+
if (config.noNamespace !== false) {
|
|
381
|
+
Logger.warn(WARN_NO_NAMESPACE_ON_ESM)
|
|
382
|
+
config.noNamespace = false
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
config = await this.validateTsConfig(config)
|
|
387
|
+
|
|
388
|
+
return config
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* Loads the values of the config file and concatenate them with passed cli flags / arguments.
|
|
393
|
+
* The values from config file are preferred if the cli flag value is the default (and so not set / overwritten)
|
|
394
|
+
* @param options
|
|
395
|
+
*/
|
|
396
|
+
public static async load(options: ConfigFlags): Promise<UserConfig> {
|
|
397
|
+
const configFile = await this.loadConfigFile(options.configName)
|
|
398
|
+
const configFileData = configFile?.config || {}
|
|
399
|
+
|
|
400
|
+
const config: UserConfig = {
|
|
401
|
+
environments: options.environments,
|
|
402
|
+
buildType: options.buildType,
|
|
403
|
+
moduleType: options.moduleType,
|
|
404
|
+
verbose: options.verbose,
|
|
405
|
+
ignoreVersionConflicts: options.ignoreVersionConflicts,
|
|
406
|
+
print: options.print,
|
|
407
|
+
outdir: options.outdir,
|
|
408
|
+
girDirectories: options.girDirectories,
|
|
409
|
+
ignore: options.ignore,
|
|
410
|
+
modules: options.modules,
|
|
411
|
+
noNamespace: options.noNamespace,
|
|
412
|
+
noComments: options.noComments,
|
|
413
|
+
noDebugComments: options.noDebugComments,
|
|
414
|
+
fixConflicts: options.fixConflicts,
|
|
415
|
+
noDOMLib: options.noDOMLib,
|
|
416
|
+
gnomeShellTypes: options.gnomeShellTypes,
|
|
417
|
+
generateAlias: options.generateAlias,
|
|
418
|
+
promisify: options.promisify,
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
if (configFileData) {
|
|
422
|
+
// environments
|
|
423
|
+
if (isEqual(config.environments, Config.defaults.environments) && configFileData.environments) {
|
|
424
|
+
config.environments = configFileData.environments
|
|
425
|
+
}
|
|
426
|
+
// buildType
|
|
427
|
+
if (config.buildType === Config.options.buildType.default && configFileData.buildType) {
|
|
428
|
+
config.buildType = configFileData.buildType
|
|
429
|
+
}
|
|
430
|
+
// moduleType
|
|
431
|
+
if (config.moduleType === Config.options.moduleType.default && configFileData.moduleType) {
|
|
432
|
+
config.moduleType = configFileData.moduleType
|
|
433
|
+
}
|
|
434
|
+
// verbose
|
|
435
|
+
if (config.verbose === Config.options.verbose.default && typeof configFileData.verbose === 'boolean') {
|
|
436
|
+
config.verbose = configFileData.verbose
|
|
437
|
+
}
|
|
438
|
+
// ignoreVersionConflicts
|
|
439
|
+
if (
|
|
440
|
+
config.ignoreVersionConflicts === Config.options.ignoreVersionConflicts.default &&
|
|
441
|
+
typeof configFileData.ignoreVersionConflicts === 'boolean'
|
|
442
|
+
) {
|
|
443
|
+
config.ignoreVersionConflicts = configFileData.ignoreVersionConflicts
|
|
444
|
+
}
|
|
445
|
+
// print
|
|
446
|
+
if (config.print === Config.options.print.default && typeof configFileData.print === 'boolean') {
|
|
447
|
+
config.print = configFileData.print
|
|
448
|
+
}
|
|
449
|
+
// outdir
|
|
450
|
+
if (config.outdir === Config.options.outdir.default && configFileData.outdir) {
|
|
451
|
+
config.outdir = config.print ? null : configFileData.outdir
|
|
452
|
+
}
|
|
453
|
+
// girDirectories
|
|
454
|
+
if (config.girDirectories === Config.options.girDirectories.default && configFileData.girDirectories) {
|
|
455
|
+
config.girDirectories = configFileData.girDirectories
|
|
456
|
+
}
|
|
457
|
+
// ignore
|
|
458
|
+
if (
|
|
459
|
+
(!config.ignore || config.ignore.length <= 0 || isEqual(config.ignore, Config.defaults.ignore)) &&
|
|
460
|
+
configFileData.ignore
|
|
461
|
+
) {
|
|
462
|
+
config.ignore = configFileData.ignore
|
|
463
|
+
}
|
|
464
|
+
// modules
|
|
465
|
+
if (
|
|
466
|
+
(config.modules.length <= 0 || isEqual(config.modules, Config.defaults.modules)) &&
|
|
467
|
+
configFileData.modules
|
|
468
|
+
) {
|
|
469
|
+
config.modules = configFileData.modules
|
|
470
|
+
}
|
|
471
|
+
// noNamespace
|
|
472
|
+
if (
|
|
473
|
+
config.noNamespace === Config.options.noNamespace.default &&
|
|
474
|
+
typeof configFileData.noNamespace === 'boolean'
|
|
475
|
+
) {
|
|
476
|
+
config.noNamespace = configFileData.noNamespace
|
|
477
|
+
}
|
|
478
|
+
// noComments
|
|
479
|
+
if (
|
|
480
|
+
config.noComments === Config.options.noComments.default &&
|
|
481
|
+
typeof configFileData.noComments === 'boolean'
|
|
482
|
+
) {
|
|
483
|
+
config.noComments = configFileData.noComments
|
|
484
|
+
}
|
|
485
|
+
// noDebugComments
|
|
486
|
+
if (
|
|
487
|
+
config.noDebugComments === Config.options.noDebugComments.default &&
|
|
488
|
+
typeof configFileData.noDebugComments === 'boolean'
|
|
489
|
+
) {
|
|
490
|
+
config.noDebugComments = configFileData.noDebugComments
|
|
491
|
+
}
|
|
492
|
+
// fixConflicts
|
|
493
|
+
if (
|
|
494
|
+
config.fixConflicts === Config.options.fixConflicts.default &&
|
|
495
|
+
typeof configFileData.fixConflicts === 'boolean'
|
|
496
|
+
) {
|
|
497
|
+
config.fixConflicts = configFileData.fixConflicts
|
|
498
|
+
}
|
|
499
|
+
// noDOMLib
|
|
500
|
+
if (config.noDOMLib === Config.options.noDOMLib.default && typeof configFileData.noDOMLib === 'boolean') {
|
|
501
|
+
config.noDOMLib = configFileData.noDOMLib
|
|
502
|
+
}
|
|
503
|
+
// gnomeShellTypes
|
|
504
|
+
if (
|
|
505
|
+
config.gnomeShellTypes === Config.options.gnomeShellTypes.default &&
|
|
506
|
+
typeof configFileData.gnomeShellTypes === 'boolean'
|
|
507
|
+
) {
|
|
508
|
+
config.gnomeShellTypes = configFileData.gnomeShellTypes
|
|
509
|
+
}
|
|
510
|
+
// generateAlias
|
|
511
|
+
if (
|
|
512
|
+
config.generateAlias === Config.options.generateAlias.default &&
|
|
513
|
+
typeof configFileData.generateAlias === 'boolean'
|
|
514
|
+
) {
|
|
515
|
+
config.generateAlias = configFileData.generateAlias
|
|
516
|
+
}
|
|
517
|
+
// promisify
|
|
518
|
+
if (
|
|
519
|
+
config.promisify === Config.options.promisify.default &&
|
|
520
|
+
typeof configFileData.promisify === 'boolean'
|
|
521
|
+
) {
|
|
522
|
+
config.promisify = configFileData.promisify
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
return await this.validate(config)
|
|
527
|
+
}
|
|
528
|
+
}
|