@ts-for-gir/cli 3.0.0-beta.9 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +160 -35
- package/lib/commands/doc.d.ts +1 -17
- package/lib/commands/doc.js +7 -13
- package/lib/commands/doc.js.map +1 -1
- package/lib/commands/generate.d.ts +1 -37
- package/lib/commands/generate.js +8 -24
- package/lib/commands/generate.js.map +1 -1
- package/lib/commands/list.d.ts +1 -11
- package/lib/commands/list.js +6 -10
- package/lib/commands/list.js.map +1 -1
- package/lib/config.d.ts +21 -5
- package/lib/config.js +164 -86
- package/lib/config.js.map +1 -1
- package/lib/generation-handler.d.ts +3 -4
- package/lib/generation-handler.js +7 -11
- package/lib/generation-handler.js.map +1 -1
- package/lib/index.d.ts +0 -12
- package/lib/index.js +0 -12
- package/lib/index.js.map +1 -1
- package/lib/module-loader.d.ts +35 -24
- package/lib/module-loader.js +3 -8
- package/lib/module-loader.js.map +1 -1
- package/lib/utils.d.ts +0 -262
- package/lib/utils.js +8 -371
- package/lib/utils.js.map +1 -1
- package/package.json +32 -37
- package/src/commands/doc.ts +9 -14
- package/src/commands/generate.ts +10 -24
- package/src/commands/list.ts +8 -10
- package/src/config.ts +178 -92
- package/src/generation-handler.ts +11 -12
- package/src/index.ts +0 -12
- package/src/module-loader.ts +39 -31
- package/src/utils.ts +8 -401
- package/lib/conflict-resolver.d.ts +0 -155
- package/lib/conflict-resolver.js +0 -1103
- package/lib/conflict-resolver.js.map +0 -1
- package/lib/constants.d.ts +0 -18
- package/lib/constants.js +0 -23
- package/lib/constants.js.map +0 -1
- package/lib/dependency-manager.d.ts +0 -34
- package/lib/dependency-manager.js +0 -78
- package/lib/dependency-manager.js.map +0 -1
- package/lib/generator.d.ts +0 -5
- package/lib/generator.js +0 -2
- package/lib/generator.js.map +0 -1
- package/lib/gir-factory.d.ts +0 -51
- package/lib/gir-factory.js +0 -361
- package/lib/gir-factory.js.map +0 -1
- package/lib/gir-module.d.ts +0 -257
- package/lib/gir-module.js +0 -2086
- package/lib/gir-module.js.map +0 -1
- package/lib/html-doc-generator.d.ts +0 -13
- package/lib/html-doc-generator.js +0 -18
- package/lib/html-doc-generator.js.map +0 -1
- package/lib/injection/callbacks/gjs/Gio-2.0.d.ts +0 -2
- package/lib/injection/callbacks/gjs/Gio-2.0.js +0 -36
- package/lib/injection/callbacks/gjs/Gio-2.0.js.map +0 -1
- package/lib/injection/callbacks/gjs/index.d.ts +0 -2
- package/lib/injection/callbacks/gjs/index.js +0 -3
- package/lib/injection/callbacks/gjs/index.js.map +0 -1
- package/lib/injection/callbacks/index.d.ts +0 -4
- package/lib/injection/callbacks/index.js +0 -4
- package/lib/injection/callbacks/index.js.map +0 -1
- package/lib/injection/callbacks/node-gtk/index.d.ts +0 -2
- package/lib/injection/callbacks/node-gtk/index.js +0 -2
- package/lib/injection/callbacks/node-gtk/index.js.map +0 -1
- package/lib/injection/classes/GLib-2-0.d.ts +0 -2
- package/lib/injection/classes/GLib-2-0.js +0 -35
- package/lib/injection/classes/GLib-2-0.js.map +0 -1
- package/lib/injection/classes/gjs/GLib-2.0.d.ts +0 -2
- package/lib/injection/classes/gjs/GLib-2.0.js +0 -200
- package/lib/injection/classes/gjs/GLib-2.0.js.map +0 -1
- package/lib/injection/classes/gjs/GObject-2.0.d.ts +0 -2
- package/lib/injection/classes/gjs/GObject-2.0.js +0 -634
- package/lib/injection/classes/gjs/GObject-2.0.js.map +0 -1
- package/lib/injection/classes/gjs/Gio-2.0.d.ts +0 -5
- package/lib/injection/classes/gjs/Gio-2.0.js +0 -218
- package/lib/injection/classes/gjs/Gio-2.0.js.map +0 -1
- package/lib/injection/classes/gjs/index.d.ts +0 -2
- package/lib/injection/classes/gjs/index.js +0 -5
- package/lib/injection/classes/gjs/index.js.map +0 -1
- package/lib/injection/classes/index.d.ts +0 -4
- package/lib/injection/classes/index.js +0 -5
- package/lib/injection/classes/index.js.map +0 -1
- package/lib/injection/classes/node-gtk/GLib-2.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/GLib-2.0.js +0 -19
- package/lib/injection/classes/node-gtk/GLib-2.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/GObject-2.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/GObject-2.0.js +0 -66
- package/lib/injection/classes/node-gtk/GObject-2.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/Gdk-4.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/Gdk-4.0.js +0 -32
- package/lib/injection/classes/node-gtk/Gdk-4.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/Gio-2.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/Gio-2.0.js +0 -14
- package/lib/injection/classes/node-gtk/Gio-2.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/Graphene-1.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/Graphene-1.0.js +0 -133
- package/lib/injection/classes/node-gtk/Graphene-1.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/Gtk-3.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/Gtk-3.0.js +0 -31
- package/lib/injection/classes/node-gtk/Gtk-3.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/Gtk-4.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/Gtk-4.0.js +0 -52
- package/lib/injection/classes/node-gtk/Gtk-4.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/Pango-1.0.d.ts +0 -2
- package/lib/injection/classes/node-gtk/Pango-1.0.js +0 -31
- package/lib/injection/classes/node-gtk/Pango-1.0.js.map +0 -1
- package/lib/injection/classes/node-gtk/index.d.ts +0 -2
- package/lib/injection/classes/node-gtk/index.js +0 -19
- package/lib/injection/classes/node-gtk/index.js.map +0 -1
- package/lib/injection/index.d.ts +0 -3
- package/lib/injection/index.js +0 -4
- package/lib/injection/index.js.map +0 -1
- package/lib/injection/injector.d.ts +0 -17
- package/lib/injection/injector.js +0 -139
- package/lib/injection/injector.js.map +0 -1
- package/lib/logger.d.ts +0 -36
- package/lib/logger.js +0 -137
- package/lib/logger.js.map +0 -1
- package/lib/messages.d.ts +0 -31
- package/lib/messages.js +0 -46
- package/lib/messages.js.map +0 -1
- package/lib/symtable.d.ts +0 -24
- package/lib/symtable.js +0 -63
- package/lib/symtable.js.map +0 -1
- package/lib/template-processor.d.ts +0 -74
- package/lib/template-processor.js +0 -165
- package/lib/template-processor.js.map +0 -1
- package/lib/transformation.d.ts +0 -156
- package/lib/transformation.js +0 -523
- package/lib/transformation.js.map +0 -1
- package/lib/type-definition-generator.d.ts +0 -116
- package/lib/type-definition-generator.js +0 -991
- package/lib/type-definition-generator.js.map +0 -1
- package/lib/types/answer-version.d.ts +0 -4
- package/lib/types/answer-version.js +0 -2
- package/lib/types/answer-version.js.map +0 -1
- package/lib/types/build-type.d.ts +0 -1
- package/lib/types/build-type.js +0 -2
- package/lib/types/build-type.js.map +0 -1
- package/lib/types/class-parent.d.ts +0 -13
- package/lib/types/class-parent.js +0 -2
- package/lib/types/class-parent.js.map +0 -1
- package/lib/types/config-flags.d.ts +0 -4
- package/lib/types/config-flags.js +0 -2
- package/lib/types/config-flags.js.map +0 -1
- package/lib/types/conflict-child-element.d.ts +0 -10
- package/lib/types/conflict-child-element.js +0 -2
- package/lib/types/conflict-child-element.js.map +0 -1
- package/lib/types/conflict-grouped-element.d.ts +0 -6
- package/lib/types/conflict-grouped-element.js +0 -2
- package/lib/types/conflict-grouped-element.js.map +0 -1
- package/lib/types/conflict-grouped-elements.d.ts +0 -4
- package/lib/types/conflict-grouped-elements.js +0 -2
- package/lib/types/conflict-grouped-elements.js.map +0 -1
- package/lib/types/construct-name.d.ts +0 -1
- package/lib/types/construct-name.js +0 -2
- package/lib/types/construct-name.js.map +0 -1
- package/lib/types/dependency-map.d.ts +0 -4
- package/lib/types/dependency-map.js +0 -2
- package/lib/types/dependency-map.js.map +0 -1
- package/lib/types/dependency.d.ts +0 -15
- package/lib/types/dependency.js +0 -2
- package/lib/types/dependency.js.map +0 -1
- package/lib/types/environment.d.ts +0 -1
- package/lib/types/environment.js +0 -2
- package/lib/types/environment.js.map +0 -1
- package/lib/types/file-info.d.ts +0 -14
- package/lib/types/file-info.js +0 -2
- package/lib/types/file-info.js.map +0 -1
- package/lib/types/generate-config.d.ts +0 -32
- package/lib/types/generate-config.js +0 -2
- package/lib/types/generate-config.js.map +0 -1
- package/lib/types/generator-type.d.ts +0 -4
- package/lib/types/generator-type.js +0 -6
- package/lib/types/generator-type.js.map +0 -1
- package/lib/types/gir-alias-element.d.ts +0 -13
- package/lib/types/gir-alias-element.js +0 -2
- package/lib/types/gir-alias-element.js.map +0 -1
- package/lib/types/gir-annotation.d.ts +0 -9
- package/lib/types/gir-annotation.js +0 -2
- package/lib/types/gir-annotation.js.map +0 -1
- package/lib/types/gir-any-element.d.ts +0 -2
- package/lib/types/gir-any-element.js +0 -2
- package/lib/types/gir-any-element.js.map +0 -1
- package/lib/types/gir-any-type.d.ts +0 -5
- package/lib/types/gir-any-type.js +0 -2
- package/lib/types/gir-any-type.js.map +0 -1
- package/lib/types/gir-array-type.d.ts +0 -20
- package/lib/types/gir-array-type.js +0 -3
- package/lib/types/gir-array-type.js.map +0 -1
- package/lib/types/gir-bitfield-element.d.ts +0 -17
- package/lib/types/gir-bitfield-element.js +0 -2
- package/lib/types/gir-bitfield-element.js.map +0 -1
- package/lib/types/gir-boolean.d.ts +0 -1
- package/lib/types/gir-boolean.js +0 -2
- package/lib/types/gir-boolean.js.map +0 -1
- package/lib/types/gir-boxed-element.d.ts +0 -15
- package/lib/types/gir-boxed-element.js +0 -2
- package/lib/types/gir-boxed-element.js.map +0 -1
- package/lib/types/gir-c-include.d.ts +0 -7
- package/lib/types/gir-c-include.js +0 -2
- package/lib/types/gir-c-include.js.map +0 -1
- package/lib/types/gir-callable-attrs.d.ts +0 -15
- package/lib/types/gir-callable-attrs.js +0 -3
- package/lib/types/gir-callable-attrs.js.map +0 -1
- package/lib/types/gir-callable-param-element.d.ts +0 -30
- package/lib/types/gir-callable-param-element.js +0 -2
- package/lib/types/gir-callable-param-element.js.map +0 -1
- package/lib/types/gir-callable-param.d.ts +0 -7
- package/lib/types/gir-callable-param.js +0 -2
- package/lib/types/gir-callable-param.js.map +0 -1
- package/lib/types/gir-callable-return.d.ts +0 -22
- package/lib/types/gir-callable-return.js +0 -2
- package/lib/types/gir-callable-return.js.map +0 -1
- package/lib/types/gir-callback-element.d.ts +0 -15
- package/lib/types/gir-callback-element.js +0 -2
- package/lib/types/gir-callback-element.js.map +0 -1
- package/lib/types/gir-class-element.d.ts +0 -48
- package/lib/types/gir-class-element.js +0 -2
- package/lib/types/gir-class-element.js.map +0 -1
- package/lib/types/gir-constant-element.d.ts +0 -15
- package/lib/types/gir-constant-element.js +0 -2
- package/lib/types/gir-constant-element.js.map +0 -1
- package/lib/types/gir-constructor-element.d.ts +0 -8
- package/lib/types/gir-constructor-element.js +0 -2
- package/lib/types/gir-constructor-element.js.map +0 -1
- package/lib/types/gir-direction.d.ts +0 -5
- package/lib/types/gir-direction.js +0 -7
- package/lib/types/gir-direction.js.map +0 -1
- package/lib/types/gir-doc-element.d.ts +0 -68
- package/lib/types/gir-doc-element.js +0 -2
- package/lib/types/gir-doc-element.js.map +0 -1
- package/lib/types/gir-enum-element.d.ts +0 -19
- package/lib/types/gir-enum-element.js +0 -2
- package/lib/types/gir-enum-element.js.map +0 -1
- package/lib/types/gir-field-element.d.ts +0 -18
- package/lib/types/gir-field-element.js +0 -2
- package/lib/types/gir-field-element.js.map +0 -1
- package/lib/types/gir-function-element.d.ts +0 -8
- package/lib/types/gir-function-element.js +0 -2
- package/lib/types/gir-function-element.js.map +0 -1
- package/lib/types/gir-implements.d.ts +0 -8
- package/lib/types/gir-implements.js +0 -2
- package/lib/types/gir-implements.js.map +0 -1
- package/lib/types/gir-include.d.ts +0 -9
- package/lib/types/gir-include.js +0 -2
- package/lib/types/gir-include.js.map +0 -1
- package/lib/types/gir-info-attrs.d.ts +0 -13
- package/lib/types/gir-info-attrs.js +0 -2
- package/lib/types/gir-info-attrs.js.map +0 -1
- package/lib/types/gir-info-elements.d.ts +0 -5
- package/lib/types/gir-info-elements.js +0 -2
- package/lib/types/gir-info-elements.js.map +0 -1
- package/lib/types/gir-instance-parameter.d.ts +0 -21
- package/lib/types/gir-instance-parameter.js +0 -2
- package/lib/types/gir-instance-parameter.js.map +0 -1
- package/lib/types/gir-interface-element.d.ts +0 -31
- package/lib/types/gir-interface-element.js +0 -2
- package/lib/types/gir-interface-element.js.map +0 -1
- package/lib/types/gir-member-element.d.ts +0 -17
- package/lib/types/gir-member-element.js +0 -2
- package/lib/types/gir-member-element.js.map +0 -1
- package/lib/types/gir-method-element.d.ts +0 -13
- package/lib/types/gir-method-element.js +0 -2
- package/lib/types/gir-method-element.js.map +0 -1
- package/lib/types/gir-module-resolved-by.d.ts +0 -10
- package/lib/types/gir-module-resolved-by.js +0 -2
- package/lib/types/gir-module-resolved-by.js.map +0 -1
- package/lib/types/gir-modules-grouped-map.d.ts +0 -4
- package/lib/types/gir-modules-grouped-map.js +0 -2
- package/lib/types/gir-modules-grouped-map.js.map +0 -1
- package/lib/types/gir-modules-grouped.d.ts +0 -12
- package/lib/types/gir-modules-grouped.js +0 -2
- package/lib/types/gir-modules-grouped.js.map +0 -1
- package/lib/types/gir-namespace.d.ts +0 -30
- package/lib/types/gir-namespace.js +0 -2
- package/lib/types/gir-namespace.js.map +0 -1
- package/lib/types/gir-package.d.ts +0 -7
- package/lib/types/gir-package.js +0 -2
- package/lib/types/gir-package.js.map +0 -1
- package/lib/types/gir-prerequisite.d.ts +0 -5
- package/lib/types/gir-prerequisite.js +0 -2
- package/lib/types/gir-prerequisite.js.map +0 -1
- package/lib/types/gir-property-element.d.ts +0 -21
- package/lib/types/gir-property-element.js +0 -2
- package/lib/types/gir-property-element.js.map +0 -1
- package/lib/types/gir-record-element.d.ts +0 -30
- package/lib/types/gir-record-element.js +0 -2
- package/lib/types/gir-record-element.js.map +0 -1
- package/lib/types/gir-repository.d.ts +0 -16
- package/lib/types/gir-repository.js +0 -2
- package/lib/types/gir-repository.js.map +0 -1
- package/lib/types/gir-signal.d.ts +0 -25
- package/lib/types/gir-signal.js +0 -2
- package/lib/types/gir-signal.js.map +0 -1
- package/lib/types/gir-transfer-ownership-type.d.ts +0 -5
- package/lib/types/gir-transfer-ownership-type.js +0 -7
- package/lib/types/gir-transfer-ownership-type.js.map +0 -1
- package/lib/types/gir-transfer-ownership.d.ts +0 -5
- package/lib/types/gir-transfer-ownership.js +0 -2
- package/lib/types/gir-transfer-ownership.js.map +0 -1
- package/lib/types/gir-type.d.ts +0 -14
- package/lib/types/gir-type.js +0 -2
- package/lib/types/gir-type.js.map +0 -1
- package/lib/types/gir-union-element.d.ts +0 -22
- package/lib/types/gir-union-element.js +0 -2
- package/lib/types/gir-union-element.js.map +0 -1
- package/lib/types/gir-unparsed-number.d.ts +0 -2
- package/lib/types/gir-unparsed-number.js +0 -2
- package/lib/types/gir-unparsed-number.js.map +0 -1
- package/lib/types/gir-var-args.d.ts +0 -5
- package/lib/types/gir-var-args.js +0 -2
- package/lib/types/gir-var-args.js.map +0 -1
- package/lib/types/gir-virtual-method.d.ts +0 -10
- package/lib/types/gir-virtual-method.js +0 -2
- package/lib/types/gir-virtual-method.js.map +0 -1
- package/lib/types/index.d.ts +0 -119
- package/lib/types/index.js +0 -120
- package/lib/types/index.js.map +0 -1
- package/lib/types/inheritance-table.d.ts +0 -3
- package/lib/types/inheritance-table.js +0 -2
- package/lib/types/inheritance-table.js.map +0 -1
- package/lib/types/injection-callback.d.ts +0 -16
- package/lib/types/injection-callback.js +0 -2
- package/lib/types/injection-callback.js.map +0 -1
- package/lib/types/injection-class.d.ts +0 -25
- package/lib/types/injection-class.js +0 -2
- package/lib/types/injection-class.js.map +0 -1
- package/lib/types/injection-function.d.ts +0 -7
- package/lib/types/injection-function.js +0 -2
- package/lib/types/injection-function.js.map +0 -1
- package/lib/types/injection-generic-parameter.d.ts +0 -2
- package/lib/types/injection-generic-parameter.js +0 -2
- package/lib/types/injection-generic-parameter.js.map +0 -1
- package/lib/types/injection-instance-parameter.d.ts +0 -2
- package/lib/types/injection-instance-parameter.js +0 -2
- package/lib/types/injection-instance-parameter.js.map +0 -1
- package/lib/types/injection-parameter.d.ts +0 -8
- package/lib/types/injection-parameter.js +0 -2
- package/lib/types/injection-parameter.js.map +0 -1
- package/lib/types/injection-property.d.ts +0 -4
- package/lib/types/injection-property.js +0 -2
- package/lib/types/injection-property.js.map +0 -1
- package/lib/types/injection-type.d.ts +0 -2
- package/lib/types/injection-type.js +0 -2
- package/lib/types/injection-type.js.map +0 -1
- package/lib/types/injection.d.ts +0 -5
- package/lib/types/injection.js +0 -2
- package/lib/types/injection.js.map +0 -1
- package/lib/types/local-name-check.d.ts +0 -4
- package/lib/types/local-name-check.js +0 -2
- package/lib/types/local-name-check.js.map +0 -1
- package/lib/types/local-name-type.d.ts +0 -1
- package/lib/types/local-name-type.js +0 -2
- package/lib/types/local-name-type.js.map +0 -1
- package/lib/types/local-name.d.ts +0 -7
- package/lib/types/local-name.js +0 -2
- package/lib/types/local-name.js.map +0 -1
- package/lib/types/local-names.d.ts +0 -4
- package/lib/types/local-names.js +0 -2
- package/lib/types/local-names.js.map +0 -1
- package/lib/types/module-type.d.ts +0 -1
- package/lib/types/module-type.js +0 -2
- package/lib/types/module-type.js.map +0 -1
- package/lib/types/parsed-gir.d.ts +0 -4
- package/lib/types/parsed-gir.js +0 -2
- package/lib/types/parsed-gir.js.map +0 -1
- package/lib/types/part-of-class.d.ts +0 -7
- package/lib/types/part-of-class.js +0 -2
- package/lib/types/part-of-class.js.map +0 -1
- package/lib/types/part-of-module.d.ts +0 -6
- package/lib/types/part-of-module.js +0 -2
- package/lib/types/part-of-module.js.map +0 -1
- package/lib/types/promisify-func.d.ts +0 -5
- package/lib/types/promisify-func.js +0 -2
- package/lib/types/promisify-func.js.map +0 -1
- package/lib/types/resolve-type.d.ts +0 -4
- package/lib/types/resolve-type.js +0 -6
- package/lib/types/resolve-type.js.map +0 -1
- package/lib/types/sym-table-items.d.ts +0 -4
- package/lib/types/sym-table-items.js +0 -2
- package/lib/types/sym-table-items.js.map +0 -1
- package/lib/types/transformation-case.d.ts +0 -1
- package/lib/types/transformation-case.js +0 -2
- package/lib/types/transformation-case.js.map +0 -1
- package/lib/types/transformations.d.ts +0 -11
- package/lib/types/transformations.js +0 -2
- package/lib/types/transformations.js.map +0 -1
- package/lib/types/ts-alias.d.ts +0 -10
- package/lib/types/ts-alias.js +0 -2
- package/lib/types/ts-alias.js.map +0 -1
- package/lib/types/ts-callback-interface.d.ts +0 -10
- package/lib/types/ts-callback-interface.js +0 -2
- package/lib/types/ts-callback-interface.js.map +0 -1
- package/lib/types/ts-callback.d.ts +0 -17
- package/lib/types/ts-callback.js +0 -2
- package/lib/types/ts-callback.js.map +0 -1
- package/lib/types/ts-class.d.ts +0 -85
- package/lib/types/ts-class.js +0 -2
- package/lib/types/ts-class.js.map +0 -1
- package/lib/types/ts-doc-tag.d.ts +0 -21
- package/lib/types/ts-doc-tag.js +0 -2
- package/lib/types/ts-doc-tag.js.map +0 -1
- package/lib/types/ts-doc.d.ts +0 -20
- package/lib/types/ts-doc.js +0 -2
- package/lib/types/ts-doc.js.map +0 -1
- package/lib/types/ts-enum.d.ts +0 -12
- package/lib/types/ts-enum.js +0 -2
- package/lib/types/ts-enum.js.map +0 -1
- package/lib/types/ts-function.d.ts +0 -44
- package/lib/types/ts-function.js +0 -2
- package/lib/types/ts-function.js.map +0 -1
- package/lib/types/ts-generic-parameter.d.ts +0 -8
- package/lib/types/ts-generic-parameter.js +0 -2
- package/lib/types/ts-generic-parameter.js.map +0 -1
- package/lib/types/ts-instance-parameter.d.ts +0 -4
- package/lib/types/ts-instance-parameter.js +0 -2
- package/lib/types/ts-instance-parameter.js.map +0 -1
- package/lib/types/ts-member.d.ts +0 -10
- package/lib/types/ts-member.js +0 -2
- package/lib/types/ts-member.js.map +0 -1
- package/lib/types/ts-method.d.ts +0 -5
- package/lib/types/ts-method.js +0 -2
- package/lib/types/ts-method.js.map +0 -1
- package/lib/types/ts-parameter.d.ts +0 -15
- package/lib/types/ts-parameter.js +0 -2
- package/lib/types/ts-parameter.js.map +0 -1
- package/lib/types/ts-property.d.ts +0 -17
- package/lib/types/ts-property.js +0 -2
- package/lib/types/ts-property.js.map +0 -1
- package/lib/types/ts-signal.d.ts +0 -17
- package/lib/types/ts-signal.js +0 -2
- package/lib/types/ts-signal.js.map +0 -1
- package/lib/types/ts-type-name.d.ts +0 -1
- package/lib/types/ts-type-name.js +0 -2
- package/lib/types/ts-type-name.js.map +0 -1
- package/lib/types/ts-type-separator.d.ts +0 -1
- package/lib/types/ts-type-separator.js +0 -2
- package/lib/types/ts-type-separator.js.map +0 -1
- package/lib/types/ts-type.d.ts +0 -22
- package/lib/types/ts-type.js +0 -2
- package/lib/types/ts-type.js.map +0 -1
- package/lib/types/ts-var.d.ts +0 -17
- package/lib/types/ts-var.js +0 -2
- package/lib/types/ts-var.js.map +0 -1
- package/lib/types/type-gir-alias.d.ts +0 -2
- package/lib/types/type-gir-alias.js +0 -2
- package/lib/types/type-gir-alias.js.map +0 -1
- package/lib/types/type-gir-class.d.ts +0 -2
- package/lib/types/type-gir-class.js +0 -2
- package/lib/types/type-gir-class.js.map +0 -1
- package/lib/types/type-gir-element.d.ts +0 -3
- package/lib/types/type-gir-element.js +0 -2
- package/lib/types/type-gir-element.js.map +0 -1
- package/lib/types/type-gir-enumeration-member.d.ts +0 -2
- package/lib/types/type-gir-enumeration-member.js +0 -2
- package/lib/types/type-gir-enumeration-member.js.map +0 -1
- package/lib/types/type-gir-enumeration.d.ts +0 -2
- package/lib/types/type-gir-enumeration.js +0 -2
- package/lib/types/type-gir-enumeration.js.map +0 -1
- package/lib/types/type-gir-function.d.ts +0 -1
- package/lib/types/type-gir-function.js +0 -2
- package/lib/types/type-gir-function.js.map +0 -1
- package/lib/types/type-gir-interface.d.ts +0 -2
- package/lib/types/type-gir-interface.js +0 -2
- package/lib/types/type-gir-interface.js.map +0 -1
- package/lib/types/type-gir-method.d.ts +0 -2
- package/lib/types/type-gir-method.js +0 -2
- package/lib/types/type-gir-method.js.map +0 -1
- package/lib/types/type-gir-parameter.d.ts +0 -1
- package/lib/types/type-gir-parameter.js +0 -2
- package/lib/types/type-gir-parameter.js.map +0 -1
- package/lib/types/type-gir-property.d.ts +0 -2
- package/lib/types/type-gir-property.js +0 -2
- package/lib/types/type-gir-property.js.map +0 -1
- package/lib/types/type-gir-variable.d.ts +0 -1
- package/lib/types/type-gir-variable.js +0 -2
- package/lib/types/type-gir-variable.js.map +0 -1
- package/lib/types/type-ts-element.d.ts +0 -3
- package/lib/types/type-ts-element.js +0 -2
- package/lib/types/type-ts-element.js.map +0 -1
- package/lib/types/type-ts-enumeration-member.d.ts +0 -2
- package/lib/types/type-ts-enumeration-member.js +0 -2
- package/lib/types/type-ts-enumeration-member.js.map +0 -1
- package/lib/types/type-ts-function.d.ts +0 -1
- package/lib/types/type-ts-function.js +0 -2
- package/lib/types/type-ts-function.js.map +0 -1
- package/lib/types/type-ts-property.d.ts +0 -1
- package/lib/types/type-ts-property.js +0 -2
- package/lib/types/type-ts-property.js.map +0 -1
- package/lib/types/user-config-load-result.d.ts +0 -6
- package/lib/types/user-config-load-result.js +0 -2
- package/lib/types/user-config-load-result.js.map +0 -1
- package/lib/types/user-config.d.ts +0 -40
- package/lib/types/user-config.js +0 -2
- package/lib/types/user-config.js.map +0 -1
- package/src/conflict-resolver.ts +0 -1358
- package/src/constants.ts +0 -29
- package/src/dependency-manager.ts +0 -91
- package/src/generator.ts +0 -10
- package/src/gir-factory.ts +0 -499
- package/src/gir-module.ts +0 -2827
- package/src/html-doc-generator.ts +0 -23
- package/src/injection/callbacks/gjs/Gio-2.0.ts +0 -37
- package/src/injection/callbacks/gjs/index.ts +0 -5
- package/src/injection/callbacks/index.ts +0 -6
- package/src/injection/callbacks/node-gtk/index.ts +0 -3
- package/src/injection/classes/GLib-2-0.ts +0 -36
- package/src/injection/classes/gjs/GLib-2.0.ts +0 -201
- package/src/injection/classes/gjs/GObject-2.0.ts +0 -635
- package/src/injection/classes/gjs/Gio-2.0.ts +0 -219
- package/src/injection/classes/gjs/index.ts +0 -7
- package/src/injection/classes/index.ts +0 -7
- package/src/injection/classes/node-gtk/GLib-2.0.ts +0 -20
- package/src/injection/classes/node-gtk/GObject-2.0.ts +0 -67
- package/src/injection/classes/node-gtk/Gdk-4.0.ts +0 -33
- package/src/injection/classes/node-gtk/Gio-2.0.ts +0 -15
- package/src/injection/classes/node-gtk/Graphene-1.0.ts +0 -134
- package/src/injection/classes/node-gtk/Gtk-3.0.ts +0 -32
- package/src/injection/classes/node-gtk/Gtk-4.0.ts +0 -53
- package/src/injection/classes/node-gtk/Pango-1.0.ts +0 -32
- package/src/injection/classes/node-gtk/index.ts +0 -21
- package/src/injection/index.ts +0 -3
- package/src/injection/injector.ts +0 -184
- package/src/logger.ts +0 -134
- package/src/messages.ts +0 -69
- package/src/symtable.ts +0 -72
- package/src/template-processor.ts +0 -199
- package/src/transformation.ts +0 -583
- package/src/type-definition-generator.ts +0 -1460
- package/src/types/answer-version.ts +0 -4
- package/src/types/build-type.ts +0 -1
- package/src/types/class-parent.ts +0 -14
- package/src/types/config-flags.ts +0 -5
- package/src/types/conflict-child-element.ts +0 -11
- package/src/types/conflict-grouped-element.ts +0 -7
- package/src/types/conflict-grouped-elements.ts +0 -5
- package/src/types/construct-name.ts +0 -11
- package/src/types/dependency-map.ts +0 -4
- package/src/types/dependency.ts +0 -16
- package/src/types/environment.ts +0 -1
- package/src/types/file-info.ts +0 -14
- package/src/types/generate-config.ts +0 -33
- package/src/types/generator-type.ts +0 -4
- package/src/types/gir-alias-element.ts +0 -15
- package/src/types/gir-annotation.ts +0 -10
- package/src/types/gir-any-element.ts +0 -35
- package/src/types/gir-any-type.ts +0 -7
- package/src/types/gir-array-type.ts +0 -23
- package/src/types/gir-bitfield-element.ts +0 -20
- package/src/types/gir-boolean.ts +0 -1
- package/src/types/gir-boxed-element.ts +0 -19
- package/src/types/gir-c-include.ts +0 -7
- package/src/types/gir-callable-attrs.ts +0 -19
- package/src/types/gir-callable-param-element.ts +0 -45
- package/src/types/gir-callable-param.ts +0 -9
- package/src/types/gir-callable-return.ts +0 -25
- package/src/types/gir-callback-element.ts +0 -28
- package/src/types/gir-class-element.ts +0 -71
- package/src/types/gir-constant-element.ts +0 -17
- package/src/types/gir-constructor-element.ts +0 -18
- package/src/types/gir-direction.ts +0 -5
- package/src/types/gir-doc-element.ts +0 -73
- package/src/types/gir-enum-element.ts +0 -28
- package/src/types/gir-field-element.ts +0 -31
- package/src/types/gir-function-element.ts +0 -19
- package/src/types/gir-implements.ts +0 -9
- package/src/types/gir-include.ts +0 -9
- package/src/types/gir-info-attrs.ts +0 -16
- package/src/types/gir-info-elements.ts +0 -8
- package/src/types/gir-instance-parameter.ts +0 -25
- package/src/types/gir-interface-element.ts +0 -53
- package/src/types/gir-member-element.ts +0 -19
- package/src/types/gir-method-element.ts +0 -25
- package/src/types/gir-module-resolved-by.ts +0 -11
- package/src/types/gir-modules-grouped-map.ts +0 -5
- package/src/types/gir-modules-grouped.ts +0 -13
- package/src/types/gir-namespace.ts +0 -47
- package/src/types/gir-package.ts +0 -7
- package/src/types/gir-prerequisite.ts +0 -5
- package/src/types/gir-property-element.ts +0 -31
- package/src/types/gir-record-element.ts +0 -47
- package/src/types/gir-repository.ts +0 -20
- package/src/types/gir-signal.ts +0 -43
- package/src/types/gir-transfer-ownership-type.ts +0 -5
- package/src/types/gir-transfer-ownership.ts +0 -6
- package/src/types/gir-type.ts +0 -16
- package/src/types/gir-union-element.ts +0 -35
- package/src/types/gir-unparsed-number.ts +0 -2
- package/src/types/gir-var-args.ts +0 -6
- package/src/types/gir-virtual-method.ts +0 -22
- package/src/types/index.ts +0 -119
- package/src/types/inheritance-table.ts +0 -3
- package/src/types/injection-callback.ts +0 -20
- package/src/types/injection-class.ts +0 -30
- package/src/types/injection-function.ts +0 -23
- package/src/types/injection-generic-parameter.ts +0 -3
- package/src/types/injection-instance-parameter.ts +0 -3
- package/src/types/injection-parameter.ts +0 -9
- package/src/types/injection-property.ts +0 -7
- package/src/types/injection-type.ts +0 -3
- package/src/types/injection.ts +0 -6
- package/src/types/local-name-check.ts +0 -5
- package/src/types/local-name-type.ts +0 -1
- package/src/types/local-name.ts +0 -8
- package/src/types/local-names.ts +0 -5
- package/src/types/module-type.ts +0 -1
- package/src/types/parsed-gir.ts +0 -5
- package/src/types/part-of-class.ts +0 -9
- package/src/types/part-of-module.ts +0 -8
- package/src/types/resolve-type.ts +0 -4
- package/src/types/sym-table-items.ts +0 -5
- package/src/types/transformation-case.ts +0 -7
- package/src/types/transformations.ts +0 -12
- package/src/types/ts-alias.ts +0 -11
- package/src/types/ts-callback-interface.ts +0 -11
- package/src/types/ts-callback.ts +0 -21
- package/src/types/ts-class.ts +0 -109
- package/src/types/ts-doc-tag.ts +0 -23
- package/src/types/ts-doc.ts +0 -23
- package/src/types/ts-enum.ts +0 -15
- package/src/types/ts-function.ts +0 -59
- package/src/types/ts-generic-parameter.ts +0 -8
- package/src/types/ts-instance-parameter.ts +0 -4
- package/src/types/ts-member.ts +0 -11
- package/src/types/ts-method.ts +0 -6
- package/src/types/ts-parameter.ts +0 -20
- package/src/types/ts-property.ts +0 -22
- package/src/types/ts-signal.ts +0 -21
- package/src/types/ts-type-name.ts +0 -1
- package/src/types/ts-type-separator.ts +0 -1
- package/src/types/ts-type.ts +0 -25
- package/src/types/ts-var.ts +0 -21
- package/src/types/type-gir-alias.ts +0 -2
- package/src/types/type-gir-class.ts +0 -2
- package/src/types/type-gir-element.ts +0 -25
- package/src/types/type-gir-enumeration-member.ts +0 -2
- package/src/types/type-gir-enumeration.ts +0 -2
- package/src/types/type-gir-function.ts +0 -8
- package/src/types/type-gir-interface.ts +0 -2
- package/src/types/type-gir-method.ts +0 -2
- package/src/types/type-gir-parameter.ts +0 -1
- package/src/types/type-gir-property.ts +0 -2
- package/src/types/type-gir-variable.ts +0 -1
- package/src/types/type-ts-element.ts +0 -13
- package/src/types/type-ts-enumeration-member.ts +0 -2
- package/src/types/type-ts-function.ts +0 -1
- package/src/types/type-ts-property.ts +0 -1
- package/src/types/user-config-load-result.ts +0 -6
- package/src/types/user-config.ts +0 -41
- package/templates/Cogl-2.0.d.ts +0 -0
- package/templates/Gjs/GObject-2.0.d.ts +0 -238
- package/templates/Gjs/Gio-2.0.d.ts +0 -64
- package/templates/Gjs/Gjs.d.ts +0 -204
- package/templates/Gjs/Gjs.js +0 -21
- package/templates/Gjs/GnomeShell.d.ts +0 -152
- package/templates/Gjs/GnomeShell.js +0 -10
- package/templates/Gjs/index.d.ts +0 -594
- package/templates/Gjs/index.js +0 -4
- package/templates/Gjs/misc/dbusUtils.d.ts +0 -15
- package/templates/Gjs/misc/dbusUtils.js +0 -6
- package/templates/Gjs/misc/extensionUtils.d.ts +0 -99
- package/templates/Gjs/misc/extensionUtils.js +0 -6
- package/templates/Gjs/misc/fileUtils.d.ts +0 -51
- package/templates/Gjs/misc/fileUtils.js +0 -6
- package/templates/Gjs/misc/gnomeSession.d.ts +0 -74
- package/templates/Gjs/misc/gnomeSession.js +0 -6
- package/templates/Gjs/misc/parentalControlsManager.d.ts +0 -42
- package/templates/Gjs/misc/parentalControlsManager.js +0 -6
- package/templates/Gjs/misc/signals.d.ts +0 -15
- package/templates/Gjs/misc/signals.js +0 -6
- package/templates/Gjs/module.d.ts +0 -6
- package/templates/Gjs/module.js +0 -16
- package/templates/Gjs/tsconfig.alias.json +0 -10
- package/templates/Gjs/ui/accessDialog.d.ts +0 -19
- package/templates/Gjs/ui/accessDialog.js +0 -6
- package/templates/Gjs/ui/altTab.d.ts +0 -124
- package/templates/Gjs/ui/altTab.js +0 -6
- package/templates/Gjs/ui/animation.d.ts +0 -58
- package/templates/Gjs/ui/animation.js +0 -6
- package/templates/Gjs/ui/appDisplay.d.ts +0 -204
- package/templates/Gjs/ui/appDisplay.js +0 -6
- package/templates/Gjs/ui/appFavorites.d.ts +0 -34
- package/templates/Gjs/ui/appFavorites.js +0 -6
- package/templates/Gjs/ui/appMenu.d.ts +0 -74
- package/templates/Gjs/ui/appMenu.js +0 -6
- package/templates/Gjs/ui/audioDeviceSelection.d.ts +0 -51
- package/templates/Gjs/ui/audioDeviceSelection.js +0 -6
- package/templates/Gjs/ui/background.d.ts +0 -255
- package/templates/Gjs/ui/background.js +0 -5
- package/templates/Gjs/ui/backgroundMenu.d.ts +0 -19
- package/templates/Gjs/ui/backgroundMenu.js +0 -5
- package/templates/Gjs/ui/barLevel.d.ts +0 -42
- package/templates/Gjs/ui/barLevel.js +0 -5
- package/templates/Gjs/ui/boxpointer.d.ts +0 -103
- package/templates/Gjs/ui/boxpointer.js +0 -5
- package/templates/Gjs/ui/calendar.d.ts +0 -261
- package/templates/Gjs/ui/calendar.js +0 -5
- package/templates/Gjs/ui/components/__init__.d.ts +0 -9
- package/templates/Gjs/ui/components/__init__.js +0 -6
- package/templates/Gjs/ui/components/automountManager.d.ts +0 -8
- package/templates/Gjs/ui/components/automountManager.js +0 -6
- package/templates/Gjs/ui/components/autorunManager.d.ts +0 -8
- package/templates/Gjs/ui/components/autorunManager.js +0 -6
- package/templates/Gjs/ui/components/index.d.ts +0 -6
- package/templates/Gjs/ui/components/index.js +0 -6
- package/templates/Gjs/ui/components/keyring.d.ts +0 -19
- package/templates/Gjs/ui/components/keyring.js +0 -6
- package/templates/Gjs/ui/components/networkAgent.d.ts +0 -10
- package/templates/Gjs/ui/components/networkAgent.js +0 -6
- package/templates/Gjs/ui/components/polkitAgent.d.ts +0 -19
- package/templates/Gjs/ui/components/polkitAgent.js +0 -6
- package/templates/Gjs/ui/components/telepathyClient.d.ts +0 -10
- package/templates/Gjs/ui/components/telepathyClient.js +0 -6
- package/templates/Gjs/ui/dialog.d.ts +0 -78
- package/templates/Gjs/ui/dialog.js +0 -0
- package/templates/Gjs/ui/dnd.d.ts +0 -127
- package/templates/Gjs/ui/dnd.js +0 -6
- package/templates/Gjs/ui/iconGrid.d.ts +0 -172
- package/templates/Gjs/ui/iconGrid.js +0 -6
- package/templates/Gjs/ui/layout.d.ts +0 -311
- package/templates/Gjs/ui/layout.js +0 -6
- package/templates/Gjs/ui/main.d.ts +0 -215
- package/templates/Gjs/ui/main.js +0 -6
- package/templates/Gjs/ui/messageList.d.ts +0 -113
- package/templates/Gjs/ui/messageList.js +0 -6
- package/templates/Gjs/ui/messageTray.d.ts +0 -423
- package/templates/Gjs/ui/messageTray.js +0 -6
- package/templates/Gjs/ui/modalDialog.d.ts +0 -96
- package/templates/Gjs/ui/modalDialog.js +0 -6
- package/templates/Gjs/ui/mpris.d.ts +0 -78
- package/templates/Gjs/ui/mpris.js +0 -6
- package/templates/Gjs/ui/notificationDaemon.d.ts +0 -5
- package/templates/Gjs/ui/notificationDaemon.js +0 -6
- package/templates/Gjs/ui/panel.d.ts +0 -65
- package/templates/Gjs/ui/panel.js +0 -6
- package/templates/Gjs/ui/panelMenu.d.ts +0 -51
- package/templates/Gjs/ui/panelMenu.js +0 -6
- package/templates/Gjs/ui/popupMenu.d.ts +0 -228
- package/templates/Gjs/ui/popupMenu.js +0 -6
- package/templates/Gjs/ui/ripples.d.ts +0 -44
- package/templates/Gjs/ui/ripples.js +0 -6
- package/templates/Gjs/ui/search.d.ts +0 -158
- package/templates/Gjs/ui/search.js +0 -6
- package/templates/Gjs/ui/switcherPopup.d.ts +0 -107
- package/templates/Gjs/ui/switcherPopup.js +0 -6
- package/templates/Gjs/ui/userWidget.d.ts +0 -13
- package/templates/Gjs/ui/userWidget.js +0 -6
- package/templates/Granite-1.0.d.ts +0 -7
- package/templates/Granite-7.0.d.ts +0 -7
- package/templates/GstBase-0.10.d.ts +0 -5
- package/templates/RygelServer-2.6.d.ts +0 -3
- package/templates/node-gtk/GObject-2.0.d.ts +0 -57
- package/templates/node-gtk/index.d.ts +0 -40
- package/templates/node-gtk/index.js +0 -9
- package/templates/node-gtk/module.d.ts +0 -6
- package/templates/node-gtk/module.js +0 -17
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
GirClassElement,
|
|
3
|
-
GirRecordElement,
|
|
4
|
-
GirUnionElement,
|
|
5
|
-
GirInterfaceElement,
|
|
6
|
-
GirCallbackElement,
|
|
7
|
-
GirCallableParamElement,
|
|
8
|
-
Environment,
|
|
9
|
-
} from '../types/index.js'
|
|
10
|
-
import { Logger } from '../logger.js'
|
|
11
|
-
|
|
12
|
-
import { classesAll, classesGjs, classesNode, callbacksGjs, callbacksNode, callbacksAll } from './index.js'
|
|
13
|
-
import { GirFactory } from '../gir-factory.js'
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Inject additional methods, properties, etc
|
|
17
|
-
*/
|
|
18
|
-
export class Injector {
|
|
19
|
-
girFactory = new GirFactory()
|
|
20
|
-
log: Logger
|
|
21
|
-
|
|
22
|
-
constructor(private readonly environment: Environment) {
|
|
23
|
-
this.log = new Logger(environment, true, 'ConflictResolver')
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/** Inject additional generics, methods, properties, etc to a existing class */
|
|
27
|
-
toClass(girClass: GirClassElement | GirUnionElement | GirInterfaceElement | GirRecordElement) {
|
|
28
|
-
if (!girClass._tsData) {
|
|
29
|
-
return
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const classes = this.environment === 'gjs' ? [...classesAll, ...classesGjs] : [...classesAll, ...classesNode]
|
|
33
|
-
|
|
34
|
-
const toClass = classes.find((cls) => {
|
|
35
|
-
return (
|
|
36
|
-
girClass._tsData &&
|
|
37
|
-
cls.qualifiedName === girClass._tsData.qualifiedName &&
|
|
38
|
-
cls.versions.includes(girClass._tsData.version)
|
|
39
|
-
)
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
if (toClass) {
|
|
43
|
-
if (toClass.staticFunctions) {
|
|
44
|
-
girClass._tsData.staticFunctions.push(
|
|
45
|
-
...this.girFactory.newGirFunctions(toClass.staticFunctions, girClass._tsData, { isInjected: true }),
|
|
46
|
-
)
|
|
47
|
-
}
|
|
48
|
-
if (toClass.properties) {
|
|
49
|
-
girClass._tsData.properties.push(
|
|
50
|
-
...this.girFactory.newGirProperties(toClass.properties, { isInjected: true }),
|
|
51
|
-
)
|
|
52
|
-
}
|
|
53
|
-
if (toClass.constructors) {
|
|
54
|
-
girClass._tsData.constructors.push(
|
|
55
|
-
...this.girFactory.newGirFunctions(toClass.constructors, girClass._tsData, { isInjected: true }),
|
|
56
|
-
)
|
|
57
|
-
}
|
|
58
|
-
if (toClass.methods) {
|
|
59
|
-
girClass._tsData.methods.push(
|
|
60
|
-
...this.girFactory.newGirFunctions(toClass.methods, girClass._tsData, { isInjected: true }),
|
|
61
|
-
)
|
|
62
|
-
}
|
|
63
|
-
if (toClass.virtualMethods) {
|
|
64
|
-
girClass._tsData.virtualMethods.push(
|
|
65
|
-
...this.girFactory.newGirFunctions(toClass.virtualMethods, girClass._tsData, { isInjected: true }),
|
|
66
|
-
)
|
|
67
|
-
}
|
|
68
|
-
if (toClass.propertySignalMethods) {
|
|
69
|
-
for (const propertySignalMethod of toClass.propertySignalMethods) {
|
|
70
|
-
propertySignalMethod.isInjected = true
|
|
71
|
-
girClass._tsData.propertySignalMethods.push(propertySignalMethod)
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
if (toClass.generics) {
|
|
76
|
-
girClass._tsData.generics.push(...this.girFactory.newGenerics(toClass.generics))
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return girClass
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/** Inject additional generics to existing callback interfaces */
|
|
84
|
-
toCallback(girCallback: GirCallbackElement) {
|
|
85
|
-
const callbacks =
|
|
86
|
-
this.environment === 'gjs' ? [...callbacksAll, ...callbacksGjs] : [...callbacksAll, ...callbacksNode]
|
|
87
|
-
|
|
88
|
-
if (!girCallback._module || !girCallback._tsData) {
|
|
89
|
-
return girCallback
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const toCallback = callbacks.find((injectCallback) => {
|
|
93
|
-
return (
|
|
94
|
-
girCallback._module &&
|
|
95
|
-
girCallback._tsData &&
|
|
96
|
-
injectCallback.name === girCallback._tsData.name &&
|
|
97
|
-
girCallback._module.namespace === injectCallback.namespace &&
|
|
98
|
-
injectCallback.versions.includes(girCallback._module.version)
|
|
99
|
-
)
|
|
100
|
-
})
|
|
101
|
-
|
|
102
|
-
// if (toCallback?.generics) {
|
|
103
|
-
// girCallback._tsData.generics.push(...this.girFactory.newGenerics(toCallback.generics))
|
|
104
|
-
// }
|
|
105
|
-
|
|
106
|
-
// NOTICE: We merge the in parameters here
|
|
107
|
-
// TODO: Unify injections, merges and overrides
|
|
108
|
-
if (toCallback?.inParams) {
|
|
109
|
-
for (let i = 0; i < girCallback._tsData.inParams.length; i++) {
|
|
110
|
-
const newInParam = toCallback.inParams[i]
|
|
111
|
-
const oldInParam = girCallback._tsData.inParams[i]
|
|
112
|
-
if (newInParam && oldInParam && oldInParam._tsData?.name === newInParam.name) {
|
|
113
|
-
oldInParam._tsData.type = this.girFactory.newTsTypes(newInParam.type)
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
if (toCallback?.tsCallbackInterface) {
|
|
119
|
-
if (toCallback?.tsCallbackInterface.generics) {
|
|
120
|
-
girCallback._tsData.tsCallbackInterface?.generics.push(
|
|
121
|
-
...this.girFactory.newGenerics(toCallback.tsCallbackInterface.generics),
|
|
122
|
-
)
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return girCallback
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
toParameterType(girParam: GirCallableParamElement) {
|
|
130
|
-
const tsTypes = girParam._tsData?.type
|
|
131
|
-
|
|
132
|
-
const callbacks =
|
|
133
|
-
this.environment === 'gjs' ? [...callbacksAll, ...callbacksGjs] : [...callbacksAll, ...callbacksNode]
|
|
134
|
-
|
|
135
|
-
if (!girParam._module || !girParam._tsData) {
|
|
136
|
-
return girParam
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// Use the the callback generic injections also for the type of the callback parameters
|
|
140
|
-
if (tsTypes) {
|
|
141
|
-
for (const tsType of tsTypes) {
|
|
142
|
-
const toCallback = callbacks.find((injectCallback) => {
|
|
143
|
-
return (
|
|
144
|
-
girParam._module &&
|
|
145
|
-
girParam._tsData &&
|
|
146
|
-
// TODO: compare versions
|
|
147
|
-
`${injectCallback.namespace}.${injectCallback.name}` === tsType.type
|
|
148
|
-
)
|
|
149
|
-
})
|
|
150
|
-
|
|
151
|
-
if (toCallback?.generics) {
|
|
152
|
-
const tsFunc = girParam._tsData.parent
|
|
153
|
-
const tsClass = tsFunc.parent
|
|
154
|
-
for (const generic of toCallback.generics) {
|
|
155
|
-
// Currently only used for `Gio.AsyncReadyCallback`
|
|
156
|
-
if (generic.value === 'this') {
|
|
157
|
-
if (tsFunc.isStatic && tsClass) {
|
|
158
|
-
tsType.generics.push({
|
|
159
|
-
...generic,
|
|
160
|
-
value: `${tsClass.namespace}.${tsClass.name}`,
|
|
161
|
-
})
|
|
162
|
-
} else if (tsFunc.isGlobal) {
|
|
163
|
-
// Add generic parameter to global function
|
|
164
|
-
tsFunc.generics.push({
|
|
165
|
-
name: 'Z',
|
|
166
|
-
value: 'unknown',
|
|
167
|
-
})
|
|
168
|
-
tsType.generics.push({
|
|
169
|
-
value: 'Z',
|
|
170
|
-
})
|
|
171
|
-
} else {
|
|
172
|
-
tsType.generics.push(generic)
|
|
173
|
-
}
|
|
174
|
-
} else {
|
|
175
|
-
tsType.generics.push(generic)
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
return girParam
|
|
183
|
-
}
|
|
184
|
-
}
|
package/src/logger.ts
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A logger that displays information in different colors on the console.
|
|
3
|
-
* In addition, the environment or the module currently being processed is also included as prepended to the logging string
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { blue, yellow, yellowBright, green, red, white } from 'colorette'
|
|
7
|
-
import { Environment } from './types/index.js'
|
|
8
|
-
|
|
9
|
-
export class Logger {
|
|
10
|
-
constructor(
|
|
11
|
-
private readonly environment: Environment | '',
|
|
12
|
-
private readonly verbose: boolean,
|
|
13
|
-
private readonly moduleName: string,
|
|
14
|
-
) {}
|
|
15
|
-
private static prepend(args: unknown[], prepend: string): unknown[] {
|
|
16
|
-
if (typeof args[0] === 'string') {
|
|
17
|
-
args[0] = `${prepend}${args[0]}`
|
|
18
|
-
}
|
|
19
|
-
return args
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Returns something like '[node][Gda-5.0] Could not find type 'Gda.SqlExpr' for 'expr''
|
|
23
|
-
* @param args
|
|
24
|
-
* @param logLevel
|
|
25
|
-
*/
|
|
26
|
-
private prependInfos(args: unknown[], logLevel?: 'WARN:' | 'ERROR:' | 'INFO:' | 'DEBUG:'): unknown[] {
|
|
27
|
-
if (logLevel || this.moduleName.length > 0 || this.environment.length > 0) {
|
|
28
|
-
args = Logger.prepend(args, ' ')
|
|
29
|
-
}
|
|
30
|
-
if (logLevel) {
|
|
31
|
-
if (this.moduleName.length > 0 || this.environment.length > 0) {
|
|
32
|
-
args = Logger.prepend(args, ' ' + logLevel)
|
|
33
|
-
} else {
|
|
34
|
-
args = Logger.prepend(args, logLevel)
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
if (this.moduleName.length > 0) {
|
|
38
|
-
args = Logger.prepend(args, `[${this.moduleName}]`)
|
|
39
|
-
}
|
|
40
|
-
if (this.environment.length > 0) {
|
|
41
|
-
args = Logger.prepend(args, `[${this.environment}]`)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return args
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
public log(...args: unknown[]): void {
|
|
48
|
-
if (!this.verbose) {
|
|
49
|
-
return
|
|
50
|
-
}
|
|
51
|
-
return console.log(...args)
|
|
52
|
-
}
|
|
53
|
-
public dir(...args: unknown[]): void {
|
|
54
|
-
if (!this.verbose) {
|
|
55
|
-
return
|
|
56
|
-
}
|
|
57
|
-
args.forEach((arg) => {
|
|
58
|
-
console.dir(arg)
|
|
59
|
-
})
|
|
60
|
-
return
|
|
61
|
-
}
|
|
62
|
-
public info(txt: string | number, ...args: unknown[]): void {
|
|
63
|
-
if (!this.verbose) {
|
|
64
|
-
return
|
|
65
|
-
}
|
|
66
|
-
return console.info(blue(txt), ...args)
|
|
67
|
-
}
|
|
68
|
-
public warn(txt: string | number, ...args: unknown[]): void {
|
|
69
|
-
if (!this.verbose) {
|
|
70
|
-
return
|
|
71
|
-
}
|
|
72
|
-
args = this.prependInfos([txt], 'WARN:')
|
|
73
|
-
return console.warn(yellow(txt), ...args)
|
|
74
|
-
}
|
|
75
|
-
public debug(txt: string | number, ...args: unknown[]): void {
|
|
76
|
-
if (!this.verbose) {
|
|
77
|
-
return
|
|
78
|
-
}
|
|
79
|
-
args = this.prependInfos([txt], 'DEBUG:')
|
|
80
|
-
return console.debug(yellowBright(txt), ...args)
|
|
81
|
-
}
|
|
82
|
-
public error(txt: string | number, ...args: unknown[]): void {
|
|
83
|
-
args = this.prependInfos([txt], 'ERROR:')
|
|
84
|
-
return this.danger(txt, args)
|
|
85
|
-
}
|
|
86
|
-
public success(txt: string | number, ...args: unknown[]): void {
|
|
87
|
-
if (!this.verbose) {
|
|
88
|
-
return
|
|
89
|
-
}
|
|
90
|
-
this.log(green(txt), ...args)
|
|
91
|
-
}
|
|
92
|
-
public danger(txt: string | number, ...args: unknown[]): void {
|
|
93
|
-
this.log(red(txt), ...args)
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// Static versions (Here it must be ensured that Verbose is activated)
|
|
97
|
-
public static log(...args: unknown[]): void {
|
|
98
|
-
return console.log(...args)
|
|
99
|
-
}
|
|
100
|
-
public static dir(...args: unknown[]): void {
|
|
101
|
-
args.forEach((arg) => {
|
|
102
|
-
console.dir(arg)
|
|
103
|
-
})
|
|
104
|
-
return
|
|
105
|
-
}
|
|
106
|
-
public static info(txt: string | number, ...args: unknown[]): void {
|
|
107
|
-
;[txt, ...args] = this.prepend([txt, ...args], 'INFO: ') as [string, ...unknown[]]
|
|
108
|
-
return console.info(blue(txt), ...args)
|
|
109
|
-
}
|
|
110
|
-
public static warn(txt: string | number, ...args: unknown[]): void {
|
|
111
|
-
;[txt, ...args] = this.prepend([txt, ...args], 'WARN: ') as [string, ...unknown[]]
|
|
112
|
-
return console.warn(yellow(txt), ...args)
|
|
113
|
-
}
|
|
114
|
-
public static debug(txt: string | number, ...args: unknown[]): void {
|
|
115
|
-
;[txt, ...args] = this.prepend([txt, ...args], 'DEBUG: ') as [string, ...unknown[]]
|
|
116
|
-
return console.debug(yellowBright(txt), ...args)
|
|
117
|
-
}
|
|
118
|
-
public static error(txt: string | number, ...args: unknown[]): void {
|
|
119
|
-
;[txt, ...args] = this.prepend([txt, ...args], 'ERROR: ') as [string, ...unknown[]]
|
|
120
|
-
return this.danger(txt, args)
|
|
121
|
-
}
|
|
122
|
-
public static success(txt: string | number, ...args: unknown[]): void {
|
|
123
|
-
this.log(green(txt), ...args)
|
|
124
|
-
}
|
|
125
|
-
public static danger(txt: string | number, ...args: unknown[]): void {
|
|
126
|
-
this.log(red(txt), ...args)
|
|
127
|
-
}
|
|
128
|
-
public static white(txt: string | number, ...args: unknown[]): void {
|
|
129
|
-
this.log(white(txt), ...args)
|
|
130
|
-
}
|
|
131
|
-
public static yellow(txt: string | number, ...args: unknown[]): void {
|
|
132
|
-
this.log(yellow(txt), ...args)
|
|
133
|
-
}
|
|
134
|
-
}
|
package/src/messages.ts
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import type { Environment, BuildType } from './types/index.js'
|
|
2
|
-
|
|
3
|
-
export const NO_TSDATA = (namespace?: string) => {
|
|
4
|
-
let message = 'You need to set the tsData first!'
|
|
5
|
-
if (namespace) message = `[${namespace}] ${message}`
|
|
6
|
-
return message
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
// Error messages
|
|
10
|
-
|
|
11
|
-
export const ERROR_NO_MODULES_FOUND = (girDirectories: string[]) => `No module found in ${girDirectories.join(', ')}!
|
|
12
|
-
Please make sure that you have installed the necessary gir files.
|
|
13
|
-
For example with "sudo apt install libgtk-3-dev" for Gtk3 on Ubuntu or "sudo dnf install gtk3-devel" on Fedora.`
|
|
14
|
-
export const ERROR_CONFIG_EXTENSION_UNSUPPORTED =
|
|
15
|
-
'Only configs with the extension .js and .json are currently supported. Do nothing'
|
|
16
|
-
export const ERROR_NO_MODULE_SPECIFIED = 'Need to specify modules!'
|
|
17
|
-
|
|
18
|
-
// Warn messages
|
|
19
|
-
|
|
20
|
-
export const WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE = (packageName: string) =>
|
|
21
|
-
`No gir file found for '${packageName}', this module will be ignored`
|
|
22
|
-
export const WARN_CONSTANT_ALREADY_EXPORTED = (name: string) => `The constant '${name}' has already been exported`
|
|
23
|
-
export const WARN_NO_NAMESPACE_ON_TYPES = "noNamespace must be 'false' if buildType is 'types'"
|
|
24
|
-
export const WARN_NO_NAMESPACE_ON_ESM = "noNamespace must be 'false' on moduleType 'esm'"
|
|
25
|
-
export const WARN_USE_ESM_FOR_ALIAS = "moduleType must be 'esm' if generateAlias is true!"
|
|
26
|
-
export const WARN_USE_GJS_FOR_ALIAS = "environments must include 'gjs' if generateAlias is true!"
|
|
27
|
-
|
|
28
|
-
export const WARN_IGNORE_MULTIPLE_CALLBACKS = 'Multiple callbacks are ignored!'
|
|
29
|
-
export const WARN_IGNORE_MULTIPLE_FUNC_DESC = 'Ignore multiline function description!'
|
|
30
|
-
|
|
31
|
-
export const WARN_DUPLICATE_ENUM_IDENTIFIER = (name: string, renamed: string) =>
|
|
32
|
-
`Enum has a duplicate identifier '${name}', renamed to '${renamed}'!`
|
|
33
|
-
export const WARN_DUPLICATE_SYMBOL = (symbol: string) => `Duplicate symbol: ${symbol}`
|
|
34
|
-
export const WARN_DUPLICATE_PARAMETER = (paramName: string, namespace?: string) => {
|
|
35
|
-
let message = `Duplicate parameter name "${paramName}" found!`
|
|
36
|
-
if (namespace) message = `[${namespace}] ${message}`
|
|
37
|
-
return message
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export const WARN_NOT_FOUND_TYPE = (logName: string) => `Could not find type for "${logName}"`
|
|
41
|
-
export const WARN_NOT_FOUND_PACKAGE_NAME = (namespace: string, implementation: string) =>
|
|
42
|
-
`Package name for namespace ${namespace} not found! (${implementation})`
|
|
43
|
-
export const WARN_NOT_FOUND_DEPENDENCY_GIR_FILE = (girFilename: string) =>
|
|
44
|
-
`Dependency gir file not found: '${girFilename}'`
|
|
45
|
-
|
|
46
|
-
export const WARN_RENAMED_PROPERTY = (originalName: string, newName: string) =>
|
|
47
|
-
`Property name renamed from '${originalName}' to '${newName}'`
|
|
48
|
-
export const WARN_RENAMED_FUNCTION = (originalName: string, newName: string) =>
|
|
49
|
-
`Function name renamed from '${originalName}' to '${newName}'`
|
|
50
|
-
export const WARN_RENAMED_CLASS = (originalName: string, newName: string) =>
|
|
51
|
-
`Class name renamed from '${originalName}' to '${newName}'`
|
|
52
|
-
export const WARN_RENAMED_CONSTANT = (originalName: string, newName: string) =>
|
|
53
|
-
`Constant name renamed from '${originalName}' to '${newName}'`
|
|
54
|
-
export const WARN_RENAMED_FIELD = (originalName: string, newName: string) =>
|
|
55
|
-
`Field name renamed from '${originalName}' to '${newName}'`
|
|
56
|
-
export const WARN_RENAMED_ENUM = (originalName: string, newName: string) =>
|
|
57
|
-
`Enum name renamed from '${originalName}' to '${newName}'`
|
|
58
|
-
export const WARN_RENAMED_PARAMETER = (originalName: string, newName: string) =>
|
|
59
|
-
`Parameter name renamed from '${originalName}' to '${newName}'`
|
|
60
|
-
|
|
61
|
-
// Info messages
|
|
62
|
-
|
|
63
|
-
export const DANGER_HTML_DOC_GENERATOR_NOT_IMPLEMENTED =
|
|
64
|
-
'The HtmlDocGenerator is currently not implemented. Do nothing...'
|
|
65
|
-
export const START_MODULE = (environment: Environment, buildType?: BuildType) =>
|
|
66
|
-
`Start to generate .d.ts files for '${environment}' as '${buildType || 'unknown'}'.`
|
|
67
|
-
export const FILE_PARSING_DONE = 'Files parsed, loading types...'
|
|
68
|
-
export const TSDATA_PARSING_DONE = 'Typescript data loaded, generating .d.ts...'
|
|
69
|
-
export const GENERATING_TYPES_DONE = 'Done.'
|
package/src/symtable.ts
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import type { SymTableItems, GenerateConfig, GirAnyElement, Dependency } from './types/index.js'
|
|
2
|
-
import { Logger } from './logger.js'
|
|
3
|
-
import { WARN_NOT_FOUND_PACKAGE_NAME } from './messages.js'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* The SymTable is used to get any Type from any dependency to compare or to get information from
|
|
7
|
-
*/
|
|
8
|
-
export class SymTable {
|
|
9
|
-
/**
|
|
10
|
-
* The items are static because any GirModule has the same items to be able to access the types of dependencies as well
|
|
11
|
-
*/
|
|
12
|
-
private static items: SymTableItems = {}
|
|
13
|
-
private log: Logger
|
|
14
|
-
|
|
15
|
-
public constructor(
|
|
16
|
-
private readonly config: GenerateConfig,
|
|
17
|
-
private readonly modPackageName: string,
|
|
18
|
-
private readonly modNamespace: string,
|
|
19
|
-
) {
|
|
20
|
-
this.log = new Logger(this.config.environment, this.config.verbose, 'SymTable')
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Get symTable key, we use this method to prepend the package version to each key to prevent version conflicts e.g. in 'Gtk-3.0' and 'Gtk-4.0'
|
|
25
|
-
* @param implementation E.g. Gtk.Window
|
|
26
|
-
* @returns E.g. 'Gtk-3.0.Gtk.Window'
|
|
27
|
-
*/
|
|
28
|
-
public getKey(dependencies: Dependency[], implementation: string): string | null {
|
|
29
|
-
if (implementation.startsWith(this.modPackageName + '.')) {
|
|
30
|
-
return implementation
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (implementation.startsWith(this.modNamespace + '.')) {
|
|
34
|
-
return this.modPackageName + '.' + implementation
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (!implementation.includes('.')) {
|
|
38
|
-
return this.modPackageName + '.' + this.modNamespace + '.' + implementation
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const split = implementation.split('.')
|
|
42
|
-
const namespace = split[0]
|
|
43
|
-
const packageName = dependencies.find((dependency) =>
|
|
44
|
-
dependency.packageName.startsWith(namespace + '-'),
|
|
45
|
-
)?.packageName
|
|
46
|
-
if (!packageName) {
|
|
47
|
-
this.log.warn(WARN_NOT_FOUND_PACKAGE_NAME(namespace, implementation))
|
|
48
|
-
return null
|
|
49
|
-
}
|
|
50
|
-
return packageName + '.' + implementation
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
public get<T = object>(dependencies: Dependency[], fullTypeName: string): T | null {
|
|
54
|
-
const key = this.getKey(dependencies, fullTypeName)
|
|
55
|
-
if (!key || !SymTable.items[key]) {
|
|
56
|
-
return null
|
|
57
|
-
}
|
|
58
|
-
const result = SymTable.items[key] || null
|
|
59
|
-
return result as T | null
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
public getByHand<T = GirAnyElement>(key: string): T | null {
|
|
63
|
-
return (SymTable.items[key] || null) as unknown as T | null
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
public set(dependencies: Dependency[], fullTypeName: string, GirElement: GirAnyElement): void {
|
|
67
|
-
const key = this.getKey(dependencies, fullTypeName)
|
|
68
|
-
if (key) {
|
|
69
|
-
SymTable.items[key] = GirElement
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The TemplateProcessor is used generate strings from templates files or template strings
|
|
3
|
-
* For example, the signal methods are generated here
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { existsSync } from 'fs'
|
|
7
|
-
import { readFile, writeFile, mkdir, readdir } from 'fs/promises'
|
|
8
|
-
import Path from 'path'
|
|
9
|
-
import ejs from 'ejs'
|
|
10
|
-
import { Logger } from './logger.js'
|
|
11
|
-
import { APP_NAME, APP_USAGE, APP_SOURCE } from './constants.js'
|
|
12
|
-
import type { GenerateConfig } from './types/index.js'
|
|
13
|
-
import { __dirname, getEnvironmentDir, getDestPath } from './utils.js'
|
|
14
|
-
import { DependencyManager } from './dependency-manager.js'
|
|
15
|
-
|
|
16
|
-
const TEMPLATE_DIR = Path.join(__dirname, '../templates')
|
|
17
|
-
|
|
18
|
-
export class TemplateProcessor {
|
|
19
|
-
protected environmentTemplateDir: string
|
|
20
|
-
protected log: Logger
|
|
21
|
-
constructor(
|
|
22
|
-
protected readonly data: ejs.Data | undefined,
|
|
23
|
-
protected readonly packageName: string,
|
|
24
|
-
protected readonly config: GenerateConfig,
|
|
25
|
-
) {
|
|
26
|
-
const dep = DependencyManager.getInstance(config)
|
|
27
|
-
this.data = {
|
|
28
|
-
...this.data,
|
|
29
|
-
APP_NAME,
|
|
30
|
-
APP_USAGE,
|
|
31
|
-
APP_SOURCE,
|
|
32
|
-
dep,
|
|
33
|
-
}
|
|
34
|
-
this.environmentTemplateDir = getEnvironmentDir(config.environment, TEMPLATE_DIR)
|
|
35
|
-
this.log = new Logger(config.environment, config.verbose, this.packageName)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Loads and renders a template and gets the rendered templates back
|
|
40
|
-
* @param templateFilename
|
|
41
|
-
*/
|
|
42
|
-
public async load(templateFilename: string): Promise<string> {
|
|
43
|
-
const fileContent = await this.read(templateFilename)
|
|
44
|
-
return await this.render(fileContent)
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Loads and renders all templates in a directory and gets the rendered templates back
|
|
49
|
-
* @param templateDirname
|
|
50
|
-
*/
|
|
51
|
-
public async loadAll(templateDirname: string, fileExtension: string): Promise<{ [path: string]: string }> {
|
|
52
|
-
const fileContents = await this.readAll(templateDirname, fileExtension)
|
|
53
|
-
for (const file of Object.keys(fileContents)) {
|
|
54
|
-
fileContents[file] = await this.render(fileContents[file])
|
|
55
|
-
}
|
|
56
|
-
return fileContents
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Loads an template, render the template and write the template to the filesystem
|
|
61
|
-
* @param templateFilename
|
|
62
|
-
* @param outputDir
|
|
63
|
-
* @param outputFilename
|
|
64
|
-
* @param append
|
|
65
|
-
* @param prependEnv
|
|
66
|
-
* @return The rendered (and if possible prettified) template string
|
|
67
|
-
*/
|
|
68
|
-
public async create(
|
|
69
|
-
templateFilename: string,
|
|
70
|
-
outputDir: string,
|
|
71
|
-
outputFilename: string,
|
|
72
|
-
append = '',
|
|
73
|
-
prependEnv = true,
|
|
74
|
-
): Promise<string> {
|
|
75
|
-
const renderedTpl = await this.load(templateFilename)
|
|
76
|
-
const code = renderedTpl + append
|
|
77
|
-
await this.write(code, outputDir, outputFilename, prependEnv)
|
|
78
|
-
return code
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Loads all templates with file extension in dir, render the templates and write the template to the filesystem
|
|
83
|
-
* @param fileExtension
|
|
84
|
-
* @param templateDirname
|
|
85
|
-
* @param outputDir
|
|
86
|
-
* @param outputDirname
|
|
87
|
-
* @return The rendered (and if possible prettified) templates
|
|
88
|
-
*/
|
|
89
|
-
public async createAll(
|
|
90
|
-
fileExtension: string,
|
|
91
|
-
templateDirname: string,
|
|
92
|
-
outputDir: string,
|
|
93
|
-
outputDirname: string,
|
|
94
|
-
append = '',
|
|
95
|
-
) {
|
|
96
|
-
const renderedTpls = await this.loadAll(templateDirname, fileExtension)
|
|
97
|
-
const result: { [path: string]: string } = {}
|
|
98
|
-
for (const filename of Object.keys(renderedTpls)) {
|
|
99
|
-
const destPath = getDestPath(this.config.environment, outputDir, outputDirname, filename)
|
|
100
|
-
result[destPath] = renderedTpls[filename] + append
|
|
101
|
-
await this.write(result[destPath], outputDir, Path.join(outputDirname, filename))
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
return result
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
protected async write(
|
|
108
|
-
content: string,
|
|
109
|
-
outputDir: string,
|
|
110
|
-
outputFilename: string,
|
|
111
|
-
prependEnv = true,
|
|
112
|
-
): Promise<string> {
|
|
113
|
-
const destPath = prependEnv
|
|
114
|
-
? getDestPath(this.config.environment, outputDir, outputFilename)
|
|
115
|
-
: Path.join(outputDir, outputFilename)
|
|
116
|
-
|
|
117
|
-
// write template result file
|
|
118
|
-
await mkdir(Path.dirname(destPath), { recursive: true })
|
|
119
|
-
await writeFile(destPath, content, { encoding: 'utf8', flag: 'w' })
|
|
120
|
-
|
|
121
|
-
return Promise.resolve(destPath)
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
protected async render(templateString: string, options: Partial<ejs.Options> = {}): Promise<string> {
|
|
125
|
-
try {
|
|
126
|
-
const renderedTpl = await ejs.render(
|
|
127
|
-
templateString,
|
|
128
|
-
{
|
|
129
|
-
...this.config,
|
|
130
|
-
...this.data,
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
async: true,
|
|
134
|
-
...options,
|
|
135
|
-
},
|
|
136
|
-
)
|
|
137
|
-
return renderedTpl
|
|
138
|
-
} catch (error) {
|
|
139
|
-
this.log.error('Error on render', error)
|
|
140
|
-
return ''
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Checks if the template file or directory exists and returns the path if found
|
|
146
|
-
* Tries first to load the file / directory from the environment-specific template folder and otherwise looks for it in the general template folder
|
|
147
|
-
* @param templateFilename
|
|
148
|
-
*/
|
|
149
|
-
public exists(templateFilename: string): string | null {
|
|
150
|
-
const fullEnvironmentTemplatePath = Path.join(this.environmentTemplateDir, templateFilename)
|
|
151
|
-
const fullGeneralTemplatePath = Path.join(TEMPLATE_DIR, templateFilename)
|
|
152
|
-
if (existsSync(fullEnvironmentTemplatePath)) {
|
|
153
|
-
return fullEnvironmentTemplatePath
|
|
154
|
-
}
|
|
155
|
-
if (existsSync(fullGeneralTemplatePath)) {
|
|
156
|
-
return fullGeneralTemplatePath
|
|
157
|
-
}
|
|
158
|
-
return null
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Reads a template file from filesystem and gets the raw string back
|
|
163
|
-
* @param templateFilename
|
|
164
|
-
* @return The raw template content
|
|
165
|
-
*/
|
|
166
|
-
protected async read(templateFilename: string) {
|
|
167
|
-
const path = this.exists(templateFilename)
|
|
168
|
-
if (path) {
|
|
169
|
-
return await readFile(path, 'utf8')
|
|
170
|
-
}
|
|
171
|
-
throw new Error(`Template '${templateFilename}' not found'`)
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Reads all template files from a directory and gets the raw strings back
|
|
176
|
-
* @param templateDirname
|
|
177
|
-
* @param fileExtension
|
|
178
|
-
* @return The raw template contents
|
|
179
|
-
* @throws Error if the template directory does not exist
|
|
180
|
-
* @throws Error if the template directory is empty
|
|
181
|
-
*/
|
|
182
|
-
protected async readAll(templateDirname: string, fileExtension: string) {
|
|
183
|
-
const path = this.exists(templateDirname)
|
|
184
|
-
if (path) {
|
|
185
|
-
const files = (await readdir(path)).filter((file) => file.endsWith(fileExtension))
|
|
186
|
-
if (files.length === 0) {
|
|
187
|
-
throw new Error(`Template directory '${templateDirname}' is empty'`)
|
|
188
|
-
}
|
|
189
|
-
const results: { [path: string]: string } = {}
|
|
190
|
-
for (const file of files) {
|
|
191
|
-
results[file] = await readFile(Path.join(path, file), 'utf8')
|
|
192
|
-
}
|
|
193
|
-
return results
|
|
194
|
-
}
|
|
195
|
-
throw new Error(`Template directory '${templateDirname}' not found'`)
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
export default TemplateProcessor
|