@ts-for-gir/lib 4.0.0-beta.25 → 4.0.0-beta.26
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/package.json +12 -26
- package/src/constants.ts +154 -0
- package/src/dependency-manager.ts +427 -0
- package/src/formatters/default.ts +7 -0
- package/src/formatters/formatter.ts +3 -0
- package/src/formatters/index.ts +3 -0
- package/src/formatters/json.ts +7 -0
- package/src/generators/generator.ts +65 -0
- package/src/generators/index.ts +2 -0
- package/src/generics/clutter.ts +71 -0
- package/src/generics/generify.ts +74 -0
- package/src/generics/gio.ts +91 -0
- package/src/generics/glib.ts +31 -0
- package/src/generics/gtk.ts +99 -0
- package/src/generics/meta.ts +41 -0
- package/src/generics/st.ts +197 -0
- package/src/generics/visitor.ts +484 -0
- package/src/gir/alias.ts +73 -0
- package/src/gir/callback.ts +79 -0
- package/src/gir/const.ts +73 -0
- package/src/gir/constructor.ts +91 -0
- package/src/gir/data.ts +12 -0
- package/src/gir/dependency-resolver.ts +81 -0
- package/src/gir/direct-allocation-constructor.ts +65 -0
- package/src/gir/enum-member.ts +51 -0
- package/src/gir/enum.ts +126 -0
- package/src/gir/error.ts +82 -0
- package/src/gir/function.ts +296 -0
- package/src/gir/generics.ts +66 -0
- package/src/gir/gir-complex-record.ts +7 -0
- package/src/gir/index.ts +25 -0
- package/src/gir/introspected-base.ts +104 -0
- package/src/gir/introspected-class-member.ts +15 -0
- package/src/gir/introspected-classes.ts +1517 -0
- package/src/gir/introspected-namespace-member.ts +24 -0
- package/src/gir/namespace.ts +76 -0
- package/src/gir/parameter.ts +199 -0
- package/src/gir/promisify.ts +209 -0
- package/src/gir/property.ts +203 -0
- package/src/gir/record.ts +477 -0
- package/src/gir/registry.ts +184 -0
- package/src/gir/signal.ts +246 -0
- package/src/gir-module.ts +703 -0
- package/src/gir.ts +892 -0
- package/src/index.ts +16 -0
- package/src/injections/gee08.ts +89 -0
- package/src/injections/gee1.ts +35 -0
- package/src/injections/gio.ts +707 -0
- package/src/injections/glib.ts +275 -0
- package/src/injections/gobject.ts +901 -0
- package/src/injections/gtk4.ts +23 -0
- package/src/injections/inject.ts +43 -0
- package/src/injections/shell.ts +45 -0
- package/src/injections/tracker1.ts +42 -0
- package/src/library-version.ts +50 -0
- package/src/logger.ts +104 -0
- package/src/messages.ts +57 -0
- package/src/templates/index.ts +1 -0
- package/src/templates/template-engine.ts +178 -0
- package/src/types/answer-version.ts +4 -0
- package/src/types/any-introspected-type.ts +3 -0
- package/src/types/class-function-types.ts +49 -0
- package/src/types/class-member.ts +5 -0
- package/src/types/class-parent.ts +14 -0
- package/src/types/class.ts +45 -0
- package/src/types/config-flags.ts +5 -0
- package/src/types/construct-name.ts +13 -0
- package/src/types/dependency-map.ts +4 -0
- package/{lib/types/dependency.d.ts → src/types/dependency.ts} +17 -15
- package/{lib/types/file-info.d.ts → src/types/file-info.ts} +3 -3
- package/src/types/format.ts +1 -0
- package/src/types/generator-constructor.ts +7 -0
- package/src/types/generics-config.ts +90 -0
- package/src/types/gir-any-element.ts +35 -0
- package/src/types/gir-module-interface.ts +22 -0
- package/src/types/gir-module-resolved.ts +32 -0
- package/src/types/gir-type-name.ts +20 -0
- package/src/types/index.ts +94 -0
- package/{lib/types/inheritance-table.d.ts → src/types/inheritance-table.ts} +1 -1
- package/src/types/introspected.ts +18 -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/metadata.ts +6 -0
- package/src/types/ns-loader.ts +7 -0
- package/src/types/options-base.ts +8 -0
- package/{lib/types/options-generation.d.ts → src/types/options-generation.ts} +22 -13
- package/src/types/options-load.ts +6 -0
- package/src/types/options-transform.ts +5 -0
- package/src/types/output-format.ts +1 -0
- package/{lib/types/package-data-parsed.d.ts → src/types/package-data-parsed.ts} +13 -13
- package/{lib/types/package-data.d.ts → src/types/package-data.ts} +12 -11
- package/src/types/package-section-parsed.ts +9 -0
- package/src/types/parsed-gir.ts +5 -0
- package/src/types/parsed-package-data.ts +7 -0
- package/src/types/property-case.ts +1 -0
- package/src/types/resolve-type.ts +4 -0
- package/src/types/template-data.ts +8 -0
- package/src/types/template-options.ts +33 -0
- package/src/types/transformation-case.ts +9 -0
- package/src/types/transformations.ts +5 -0
- package/{lib/types/ts-doc-tag.d.ts → src/types/ts-doc-tag.ts} +5 -3
- package/{lib/types/ts-doc.d.ts → src/types/ts-doc.ts} +5 -3
- package/{lib/types/type-gir-alias.d.ts → src/types/type-gir-alias.ts} +1 -1
- package/{lib/types/type-gir-class.d.ts → src/types/type-gir-class.ts} +1 -1
- package/src/types/type-gir-element.ts +25 -0
- package/{lib/types/type-gir-enumeration-member.d.ts → src/types/type-gir-enumeration-member.ts} +1 -1
- package/{lib/types/type-ts-enumeration-member.d.ts → src/types/type-gir-enumeration.ts} +1 -1
- package/src/types/type-gir-function.ts +8 -0
- package/{lib/types/type-gir-interface.d.ts → src/types/type-gir-interface.ts} +1 -1
- package/{lib/types/type-gir-method.d.ts → src/types/type-gir-method.ts} +1 -1
- package/src/types/type-gir-parameter.ts +1 -0
- package/{lib/types/type-gir-property.d.ts → src/types/type-gir-property.ts} +1 -1
- package/src/types/type-gir-variable.ts +1 -0
- package/src/types/type-ts-element.ts +13 -0
- package/{lib/types/type-gir-enumeration.d.ts → src/types/type-ts-enumeration-member.ts} +1 -1
- package/{lib/types/type-ts-function.d.ts → src/types/type-ts-function.ts} +1 -1
- package/{lib/types/type-ts-property.d.ts → src/types/type-ts-property.ts} +1 -1
- package/src/types/user-config-load-result.ts +6 -0
- package/{lib/types/user-config.d.ts → src/types/user-config.ts} +25 -17
- package/src/util.ts +84 -0
- package/src/utils/conflicts/conflict-resolver.ts +122 -0
- package/src/utils/conflicts/function-conflict-detector.ts +139 -0
- package/src/utils/conflicts/index.ts +2 -0
- package/src/utils/conflicts.ts +490 -0
- package/{lib/utils/documentation.js → src/utils/documentation.ts} +25 -22
- package/src/utils/files.ts +71 -0
- package/src/utils/function-type-guards.ts +61 -0
- package/src/utils/generation.ts +69 -0
- package/src/utils/gir-parsing.ts +243 -0
- package/src/utils/girs.ts +113 -0
- package/src/utils/index.ts +14 -0
- package/src/utils/naming.ts +188 -0
- package/{lib/utils/numbers.d.ts → src/utils/numbers.ts} +3 -1
- package/{lib/utils/objects.js → src/utils/objects.ts} +15 -7
- package/src/utils/path.ts +7 -0
- package/src/utils/registry.ts +5 -0
- package/src/utils/strings.ts +134 -0
- package/src/utils/type-resolution.ts +116 -0
- package/src/utils/types.ts +247 -0
- package/src/validators/class.ts +324 -0
- package/src/validators/function-parameters.ts +52 -0
- package/src/validators/interface.ts +20 -0
- package/src/visitor.ts +58 -0
- package/lib/constants.d.ts +0 -25
- package/lib/constants.js +0 -93
- package/lib/constants.js.map +0 -1
- package/lib/dependency-manager.d.ts +0 -151
- package/lib/dependency-manager.js +0 -340
- package/lib/dependency-manager.js.map +0 -1
- package/lib/formatters/default.d.ts +0 -4
- package/lib/formatters/default.js +0 -7
- package/lib/formatters/default.js.map +0 -1
- package/lib/formatters/formatter.d.ts +0 -3
- package/lib/formatters/formatter.js +0 -3
- package/lib/formatters/formatter.js.map +0 -1
- package/lib/formatters/json.d.ts +0 -4
- package/lib/formatters/json.js +0 -7
- package/lib/formatters/json.js.map +0 -1
- package/lib/generators/dts/glib.d.ts +0 -2
- package/lib/generators/dts/glib.js +0 -514
- package/lib/generators/dts/glib.js.map +0 -1
- package/lib/generators/dts/gobject.d.ts +0 -2
- package/lib/generators/dts/gobject.js +0 -117
- package/lib/generators/dts/gobject.js.map +0 -1
- package/lib/generators/dts-inline.d.ts +0 -10
- package/lib/generators/dts-inline.js +0 -57
- package/lib/generators/dts-inline.js.map +0 -1
- package/lib/generators/dts-modules.d.ts +0 -10
- package/lib/generators/dts-modules.js +0 -98
- package/lib/generators/dts-modules.js.map +0 -1
- package/lib/generators/dts.d.ts +0 -45
- package/lib/generators/dts.js +0 -683
- package/lib/generators/dts.js.map +0 -1
- package/lib/generators/generator.d.ts +0 -45
- package/lib/generators/generator.js +0 -9
- package/lib/generators/generator.js.map +0 -1
- package/lib/generators/index.d.ts +0 -5
- package/lib/generators/index.js +0 -6
- package/lib/generators/index.js.map +0 -1
- package/lib/generators/json.d.ts +0 -257
- package/lib/generators/json.js +0 -866
- package/lib/generators/json.js.map +0 -1
- package/lib/generics/clutter.d.ts +0 -41
- package/lib/generics/clutter.js +0 -52
- package/lib/generics/clutter.js.map +0 -1
- package/lib/generics/generify.d.ts +0 -2
- package/lib/generics/generify.js +0 -47
- package/lib/generics/generify.js.map +0 -1
- package/lib/generics/gio.d.ts +0 -7
- package/lib/generics/gio.js +0 -51
- package/lib/generics/gio.js.map +0 -1
- package/lib/generics/glib.d.ts +0 -7
- package/lib/generics/glib.js +0 -18
- package/lib/generics/glib.js.map +0 -1
- package/lib/generics/gtk.d.ts +0 -7
- package/lib/generics/gtk.js +0 -56
- package/lib/generics/gtk.js.map +0 -1
- package/lib/generics/meta.d.ts +0 -36
- package/lib/generics/meta.js +0 -29
- package/lib/generics/meta.js.map +0 -1
- package/lib/generics/st.d.ts +0 -31
- package/lib/generics/st.js +0 -98
- package/lib/generics/st.js.map +0 -1
- package/lib/generics/visitor.d.ts +0 -20
- package/lib/generics/visitor.js +0 -255
- package/lib/generics/visitor.js.map +0 -1
- package/lib/gir/alias.d.ts +0 -24
- package/lib/gir/alias.js +0 -43
- package/lib/gir/alias.js.map +0 -1
- package/lib/gir/base.d.ts +0 -62
- package/lib/gir/base.js +0 -83
- package/lib/gir/base.js.map +0 -1
- package/lib/gir/class.d.ts +0 -228
- package/lib/gir/class.js +0 -1151
- package/lib/gir/class.js.map +0 -1
- package/lib/gir/const.d.ts +0 -25
- package/lib/gir/const.js +0 -43
- package/lib/gir/const.js.map +0 -1
- package/lib/gir/enum.d.ts +0 -45
- package/lib/gir/enum.js +0 -164
- package/lib/gir/enum.js.map +0 -1
- package/lib/gir/function.d.ts +0 -200
- package/lib/gir/function.js +0 -683
- package/lib/gir/function.js.map +0 -1
- package/lib/gir/generics.d.ts +0 -5
- package/lib/gir/generics.js +0 -57
- package/lib/gir/generics.js.map +0 -1
- package/lib/gir/index.d.ts +0 -14
- package/lib/gir/index.js +0 -15
- package/lib/gir/index.js.map +0 -1
- package/lib/gir/namespace.d.ts +0 -21
- package/lib/gir/namespace.js +0 -57
- package/lib/gir/namespace.js.map +0 -1
- package/lib/gir/nodes.d.ts +0 -11
- package/lib/gir/nodes.js +0 -12
- package/lib/gir/nodes.js.map +0 -1
- package/lib/gir/promisify.d.ts +0 -5
- package/lib/gir/promisify.js +0 -158
- package/lib/gir/promisify.js.map +0 -1
- package/lib/gir/property.d.ts +0 -60
- package/lib/gir/property.js +0 -128
- package/lib/gir/property.js.map +0 -1
- package/lib/gir/registry.d.ts +0 -51
- package/lib/gir/registry.js +0 -147
- package/lib/gir/registry.js.map +0 -1
- package/lib/gir/signal.d.ts +0 -36
- package/lib/gir/signal.js +0 -169
- package/lib/gir/signal.js.map +0 -1
- package/lib/gir/util.d.ts +0 -49
- package/lib/gir/util.js +0 -561
- package/lib/gir/util.js.map +0 -1
- package/lib/gir-module.d.ts +0 -104
- package/lib/gir-module.js +0 -584
- package/lib/gir-module.js.map +0 -1
- package/lib/gir.d.ts +0 -254
- package/lib/gir.js +0 -639
- package/lib/gir.js.map +0 -1
- package/lib/index.d.ts +0 -13
- package/lib/index.js +0 -16
- package/lib/index.js.map +0 -1
- package/lib/injections/gee08.d.ts +0 -7
- package/lib/injections/gee08.js +0 -68
- package/lib/injections/gee08.js.map +0 -1
- package/lib/injections/gee1.d.ts +0 -7
- package/lib/injections/gee1.js +0 -28
- package/lib/injections/gee1.js.map +0 -1
- package/lib/injections/gio.d.ts +0 -7
- package/lib/injections/gio.js +0 -563
- package/lib/injections/gio.js.map +0 -1
- package/lib/injections/glib.d.ts +0 -7
- package/lib/injections/glib.js +0 -210
- package/lib/injections/glib.js.map +0 -1
- package/lib/injections/gobject.d.ts +0 -7
- package/lib/injections/gobject.js +0 -594
- package/lib/injections/gobject.js.map +0 -1
- package/lib/injections/gtk4.d.ts +0 -7
- package/lib/injections/gtk4.js +0 -19
- package/lib/injections/gtk4.js.map +0 -1
- package/lib/injections/inject.d.ts +0 -4
- package/lib/injections/inject.js +0 -33
- package/lib/injections/inject.js.map +0 -1
- package/lib/injections/shell.d.ts +0 -20
- package/lib/injections/shell.js +0 -34
- package/lib/injections/shell.js.map +0 -1
- package/lib/injections/tracker1.d.ts +0 -7
- package/lib/injections/tracker1.js +0 -30
- package/lib/injections/tracker1.js.map +0 -1
- package/lib/library-version.d.ts +0 -10
- package/lib/library-version.js +0 -45
- package/lib/library-version.js.map +0 -1
- package/lib/logger.d.ts +0 -36
- package/lib/logger.js +0 -134
- package/lib/logger.js.map +0 -1
- package/lib/messages.d.ts +0 -23
- package/lib/messages.js +0 -39
- package/lib/messages.js.map +0 -1
- package/lib/registry.d.ts +0 -8
- package/lib/registry.js +0 -12
- package/lib/registry.js.map +0 -1
- package/lib/transformation.d.ts +0 -169
- package/lib/transformation.js +0 -393
- package/lib/transformation.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/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/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.js +0 -2
- package/lib/types/dependency.js.map +0 -1
- package/lib/types/file-info.js +0 -2
- package/lib/types/file-info.js.map +0 -1
- package/lib/types/format.d.ts +0 -1
- package/lib/types/format.js +0 -2
- package/lib/types/format.js.map +0 -1
- package/lib/types/gir-alias-element.d.ts +0 -4
- 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-bitfield-element.d.ts +0 -6
- package/lib/types/gir-bitfield-element.js +0 -2
- package/lib/types/gir-bitfield-element.js.map +0 -1
- package/lib/types/gir-callable-param-element.d.ts +0 -4
- 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-params.d.ts +0 -7
- package/lib/types/gir-callable-params.js +0 -2
- package/lib/types/gir-callable-params.js.map +0 -1
- package/lib/types/gir-callable-return.d.ts +0 -5
- 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 -6
- 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 -17
- 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 -4
- 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 -6
- package/lib/types/gir-constructor-element.js +0 -2
- package/lib/types/gir-constructor-element.js.map +0 -1
- package/lib/types/gir-enum-element.d.ts +0 -6
- 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 -5
- 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 -6
- package/lib/types/gir-function-element.js +0 -2
- package/lib/types/gir-function-element.js.map +0 -1
- package/lib/types/gir-instance-parameter.d.ts +0 -7
- 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 -16
- 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 -5
- 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 -7
- 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 -15
- 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 -27
- package/lib/types/gir-namespace.js +0 -2
- package/lib/types/gir-namespace.js.map +0 -1
- package/lib/types/gir-property-element.d.ts +0 -4
- 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 -10
- 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 -5
- 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 -10
- package/lib/types/gir-signal.js +0 -2
- package/lib/types/gir-signal.js.map +0 -1
- package/lib/types/gir-type-name.d.ts +0 -2
- package/lib/types/gir-type-name.js +0 -2
- package/lib/types/gir-type-name.js.map +0 -1
- package/lib/types/gir-union-element.d.ts +0 -9
- 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-virtual-method.d.ts +0 -6
- 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 -79
- package/lib/types/index.js +0 -80
- package/lib/types/index.js.map +0 -1
- package/lib/types/inheritance-table.js +0 -2
- package/lib/types/inheritance-table.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/metadata.d.ts +0 -8
- package/lib/types/metadata.js +0 -2
- package/lib/types/metadata.js.map +0 -1
- package/lib/types/options-base.d.ts +0 -4
- package/lib/types/options-base.js +0 -2
- package/lib/types/options-base.js.map +0 -1
- package/lib/types/options-generation.js +0 -2
- package/lib/types/options-generation.js.map +0 -1
- package/lib/types/options-load.d.ts +0 -5
- package/lib/types/options-load.js +0 -2
- package/lib/types/options-load.js.map +0 -1
- package/lib/types/options-transform.d.ts +0 -4
- package/lib/types/options-transform.js +0 -2
- package/lib/types/options-transform.js.map +0 -1
- package/lib/types/output-format.d.ts +0 -1
- package/lib/types/output-format.js +0 -2
- package/lib/types/output-format.js.map +0 -1
- package/lib/types/package-data-parsed.js +0 -2
- package/lib/types/package-data-parsed.js.map +0 -1
- package/lib/types/package-data.js +0 -2
- package/lib/types/package-data.js.map +0 -1
- package/lib/types/package-section-parsed.d.ts +0 -8
- package/lib/types/package-section-parsed.js +0 -2
- package/lib/types/package-section-parsed.js.map +0 -1
- package/lib/types/parsed-gir.d.ts +0 -5
- package/lib/types/parsed-gir.js +0 -2
- package/lib/types/parsed-gir.js.map +0 -1
- package/lib/types/parsed-package-data.d.ts +0 -6
- package/lib/types/parsed-package-data.js +0 -2
- package/lib/types/parsed-package-data.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/property-case.d.ts +0 -1
- package/lib/types/property-case.js +0 -2
- package/lib/types/property-case.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/template-data.d.ts +0 -7
- package/lib/types/template-data.js +0 -2
- package/lib/types/template-data.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 -4
- package/lib/types/transformations.js +0 -2
- package/lib/types/transformations.js.map +0 -1
- package/lib/types/ts-doc-tag.js +0 -2
- package/lib/types/ts-doc-tag.js.map +0 -1
- package/lib/types/ts-doc.js +0 -2
- package/lib/types/ts-doc.js.map +0 -1
- 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.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.js +0 -2
- package/lib/types/type-gir-enumeration-member.js.map +0 -1
- 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.js +0 -2
- package/lib/types/type-gir-interface.js.map +0 -1
- 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.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.js +0 -2
- package/lib/types/type-ts-enumeration-member.js.map +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.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.js +0 -2
- package/lib/types/user-config.js.map +0 -1
- package/lib/util.d.ts +0 -20
- package/lib/util.js +0 -67
- package/lib/util.js.map +0 -1
- package/lib/utils/documentation.d.ts +0 -13
- package/lib/utils/documentation.js.map +0 -1
- package/lib/utils/files.d.ts +0 -21
- package/lib/utils/files.js +0 -62
- package/lib/utils/files.js.map +0 -1
- package/lib/utils/girs.d.ts +0 -45
- package/lib/utils/girs.js +0 -101
- package/lib/utils/girs.js.map +0 -1
- package/lib/utils/index.d.ts +0 -8
- package/lib/utils/index.js +0 -9
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/naming.d.ts +0 -13
- package/lib/utils/naming.js +0 -40
- package/lib/utils/naming.js.map +0 -1
- package/lib/utils/numbers.js +0 -9
- package/lib/utils/numbers.js.map +0 -1
- package/lib/utils/objects.d.ts +0 -136
- package/lib/utils/objects.js.map +0 -1
- package/lib/utils/path.d.ts +0 -1
- package/lib/utils/path.js +0 -7
- package/lib/utils/path.js.map +0 -1
- package/lib/utils/strings.d.ts +0 -74
- package/lib/utils/strings.js +0 -121
- package/lib/utils/strings.js.map +0 -1
- package/lib/validators/class.d.ts +0 -7
- package/lib/validators/class.js +0 -217
- package/lib/validators/class.js.map +0 -1
- package/lib/validators/function-parameters.d.ts +0 -14
- package/lib/validators/function-parameters.js +0 -31
- package/lib/validators/function-parameters.js.map +0 -1
- package/lib/validators/interface.d.ts +0 -5
- package/lib/validators/interface.js +0 -16
- package/lib/validators/interface.js.map +0 -1
- package/lib/visitor.d.ts +0 -35
- package/lib/visitor.js +0 -29
- package/lib/visitor.js.map +0 -1
|
@@ -0,0 +1,901 @@
|
|
|
1
|
+
import { GirDirection } from "@gi.ts/parser";
|
|
2
|
+
import { IntrospectedAlias } from "../gir/alias.ts";
|
|
3
|
+
import { IntrospectedFunction } from "../gir/function.ts";
|
|
4
|
+
import {
|
|
5
|
+
IntrospectedClassFunction,
|
|
6
|
+
IntrospectedInterface,
|
|
7
|
+
IntrospectedStaticClassFunction,
|
|
8
|
+
} from "../gir/introspected-classes.ts";
|
|
9
|
+
import type { IntrospectedNamespace } from "../gir/namespace.ts";
|
|
10
|
+
import { IntrospectedFunctionParameter } from "../gir/parameter.ts";
|
|
11
|
+
import { IntrospectedField } from "../gir/property.ts";
|
|
12
|
+
import {
|
|
13
|
+
AnyFunctionType,
|
|
14
|
+
AnyType,
|
|
15
|
+
BinaryType,
|
|
16
|
+
BooleanType,
|
|
17
|
+
Generic,
|
|
18
|
+
GenericType,
|
|
19
|
+
GenerifiedTypeIdentifier,
|
|
20
|
+
NativeType,
|
|
21
|
+
NullableType,
|
|
22
|
+
NumberType,
|
|
23
|
+
ObjectType,
|
|
24
|
+
OrType,
|
|
25
|
+
StringType,
|
|
26
|
+
TupleType,
|
|
27
|
+
type TypeExpression,
|
|
28
|
+
TypeIdentifier,
|
|
29
|
+
UnknownType,
|
|
30
|
+
VoidType,
|
|
31
|
+
} from "../gir.ts";
|
|
32
|
+
|
|
33
|
+
function typeParam(name: string, type: TypeExpression, options: Record<string, unknown> = {}) {
|
|
34
|
+
return new IntrospectedFunctionParameter({
|
|
35
|
+
name,
|
|
36
|
+
direction: GirDirection.In,
|
|
37
|
+
type: type,
|
|
38
|
+
...options,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function stringParam(name: string, options: Record<string, unknown> = {}) {
|
|
43
|
+
return typeParam(name, StringType, options);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Creates an optional parameter with a nullable type.
|
|
48
|
+
* Used for optional parameters like default values in ParamSpec methods.
|
|
49
|
+
*
|
|
50
|
+
* @param name The parameter name
|
|
51
|
+
* @param type The parameter type
|
|
52
|
+
* @param options Additional options including documentation
|
|
53
|
+
* @returns An IntrospectedFunctionParameter with optional nullable type
|
|
54
|
+
*/
|
|
55
|
+
function optionalParam(name: string, type: TypeExpression, options: Record<string, unknown> = {}) {
|
|
56
|
+
return typeParam(name, type, {
|
|
57
|
+
isOptional: true,
|
|
58
|
+
doc: "An optional parameter",
|
|
59
|
+
...options,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export default {
|
|
64
|
+
namespace: "GObject",
|
|
65
|
+
version: "2.0",
|
|
66
|
+
modifier(namespace: IntrospectedNamespace) {
|
|
67
|
+
{
|
|
68
|
+
const SignalMatch = new IntrospectedInterface({
|
|
69
|
+
name: "SignalMatch",
|
|
70
|
+
namespace,
|
|
71
|
+
fields: [
|
|
72
|
+
new IntrospectedField({
|
|
73
|
+
name: "signalId",
|
|
74
|
+
type: StringType,
|
|
75
|
+
isStatic: false,
|
|
76
|
+
writable: true,
|
|
77
|
+
}),
|
|
78
|
+
new IntrospectedField({
|
|
79
|
+
name: "detail",
|
|
80
|
+
type: StringType,
|
|
81
|
+
isStatic: false,
|
|
82
|
+
writable: true,
|
|
83
|
+
}),
|
|
84
|
+
new IntrospectedField({
|
|
85
|
+
name: "func",
|
|
86
|
+
type: AnyFunctionType,
|
|
87
|
+
isStatic: false,
|
|
88
|
+
writable: true,
|
|
89
|
+
}),
|
|
90
|
+
],
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// TODO: Devise a better way to represent pure TypeScript types.
|
|
94
|
+
SignalMatch.noParent = true;
|
|
95
|
+
|
|
96
|
+
namespace.members.set("SignalMatch", SignalMatch);
|
|
97
|
+
|
|
98
|
+
const GType = new IntrospectedAlias({
|
|
99
|
+
name: "GType",
|
|
100
|
+
namespace,
|
|
101
|
+
type: new NativeType("any"),
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
namespace.members.set("GType", GType);
|
|
105
|
+
|
|
106
|
+
// We don't want to emit TypeScript-specific GType
|
|
107
|
+
// hacks, but we still need the alias so the type
|
|
108
|
+
// can resolve.
|
|
109
|
+
GType.noEmit();
|
|
110
|
+
|
|
111
|
+
const ParamSpec = namespace.assertClass("ParamSpec");
|
|
112
|
+
ParamSpec.doc = `A GObject parameter specification that defines property characteristics.
|
|
113
|
+
See https://gjs.guide/guides/gobject/basics.html#properties for more details.`;
|
|
114
|
+
const ParamFlags = namespace.getEnum("ParamFlags");
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Generates ParamSpec function definitions with proper typing matching the GJS JavaScript API.
|
|
118
|
+
* In GJS, nick and blurb are required parameters (but can be null), and flags is always required.
|
|
119
|
+
* This matches the actual implementation in gjs/modules/core/overrides/GObject.js
|
|
120
|
+
*
|
|
121
|
+
* @param name The name of the ParamSpec type (e.g., "string", "int", "boolean")
|
|
122
|
+
* @param returnType The return type of the ParamSpec
|
|
123
|
+
* @param minMax Whether the ParamSpec has min/max values
|
|
124
|
+
* @param type Optional type parameter name
|
|
125
|
+
* @param defaultValue Whether the ParamSpec has a default value
|
|
126
|
+
* @param defaultValueType The type of the default value
|
|
127
|
+
* @param addGeneric Whether to add generic type parameters
|
|
128
|
+
* @returns An IntrospectedStaticClassFunction for the ParamSpec
|
|
129
|
+
* @see https://gjs.guide/guides/gjs/style-guide.html#properties
|
|
130
|
+
*/
|
|
131
|
+
function generateParamSpec(
|
|
132
|
+
name: string,
|
|
133
|
+
returnType: TypeExpression = ParamSpec.getType(),
|
|
134
|
+
minMax = false,
|
|
135
|
+
type: string | null = null,
|
|
136
|
+
defaultValue = false,
|
|
137
|
+
defaultValueType: TypeExpression = AnyType,
|
|
138
|
+
addGeneric = false,
|
|
139
|
+
doc: string,
|
|
140
|
+
) {
|
|
141
|
+
const params = [
|
|
142
|
+
stringParam("name", {
|
|
143
|
+
doc: "The name of the property",
|
|
144
|
+
}),
|
|
145
|
+
typeParam("nick", new NullableType(StringType), {
|
|
146
|
+
doc: "A human readable name for the property (can be null)",
|
|
147
|
+
}),
|
|
148
|
+
typeParam("blurb", new NullableType(StringType), {
|
|
149
|
+
doc: "A longer description of the property (can be null)",
|
|
150
|
+
}),
|
|
151
|
+
typeParam("flags", new BinaryType(ParamFlags?.getType() ?? AnyType, NumberType), {
|
|
152
|
+
doc: "The flags for this property (e.g. READABLE, WRITABLE)",
|
|
153
|
+
}),
|
|
154
|
+
];
|
|
155
|
+
|
|
156
|
+
if (minMax) {
|
|
157
|
+
params.push(
|
|
158
|
+
typeParam("minimum", NumberType, {
|
|
159
|
+
doc: "The minimum value for this property",
|
|
160
|
+
}),
|
|
161
|
+
typeParam("maximum", NumberType, {
|
|
162
|
+
doc: "The maximum value for this property",
|
|
163
|
+
}),
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
if (type) {
|
|
168
|
+
if (!addGeneric) {
|
|
169
|
+
params.push(
|
|
170
|
+
typeParam(`${type}Type`, AnyType, {
|
|
171
|
+
doc: "The GType for this property",
|
|
172
|
+
}),
|
|
173
|
+
);
|
|
174
|
+
} else {
|
|
175
|
+
params.push(
|
|
176
|
+
typeParam(`${type}Type`, new NativeType("GType<T> | { $gtype: GType<T> }"), {
|
|
177
|
+
doc: "The GType for this property",
|
|
178
|
+
}),
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
if (defaultValue) {
|
|
184
|
+
params.push(
|
|
185
|
+
optionalParam("defaultValue", defaultValueType, {
|
|
186
|
+
doc: "The default value for this property (optional)",
|
|
187
|
+
}),
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
const fn = new IntrospectedStaticClassFunction({
|
|
192
|
+
name,
|
|
193
|
+
parameters: params,
|
|
194
|
+
parent: ParamSpec,
|
|
195
|
+
return_type: returnType,
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
if (addGeneric) {
|
|
199
|
+
fn.generics.push(new Generic(new GenericType("T")));
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
fn.doc = doc;
|
|
203
|
+
|
|
204
|
+
return fn;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// Get rid of the ParamSpec subtypes.
|
|
208
|
+
namespace.assertClass("ParamSpecBoolean").noEmit();
|
|
209
|
+
namespace.assertClass("ParamSpecBoxed").noEmit();
|
|
210
|
+
namespace.assertClass("ParamSpecChar").noEmit();
|
|
211
|
+
namespace.assertClass("ParamSpecDouble").noEmit();
|
|
212
|
+
namespace.assertClass("ParamSpecEnum").noEmit();
|
|
213
|
+
namespace.assertClass("ParamSpecFlags").noEmit();
|
|
214
|
+
namespace.assertClass("ParamSpecFloat").noEmit();
|
|
215
|
+
namespace.assertClass("ParamSpecInt").noEmit();
|
|
216
|
+
namespace.assertClass("ParamSpecInt64").noEmit();
|
|
217
|
+
namespace.assertClass("ParamSpecLong").noEmit();
|
|
218
|
+
namespace.assertClass("ParamSpecObject").noEmit();
|
|
219
|
+
namespace.assertClass("ParamSpecParam").noEmit();
|
|
220
|
+
namespace.assertClass("ParamSpecString").noEmit();
|
|
221
|
+
namespace.assertClass("ParamSpecUChar").noEmit();
|
|
222
|
+
namespace.assertClass("ParamSpecUnichar").noEmit();
|
|
223
|
+
namespace.assertClass("ParamSpecValueArray").noEmit();
|
|
224
|
+
namespace.assertClass("ParamSpecVariant").noEmit();
|
|
225
|
+
namespace.assertClass("ParamSpecUInt").noEmit();
|
|
226
|
+
namespace.assertClass("ParamSpecUInt64").noEmit();
|
|
227
|
+
namespace.assertClass("ParamSpecULong").noEmit();
|
|
228
|
+
namespace.assertClass("ParamSpecGType").noEmit();
|
|
229
|
+
namespace.assertClass("ParamSpecOverride").noEmit();
|
|
230
|
+
namespace.assertClass("ParamSpecPointer").noEmit();
|
|
231
|
+
|
|
232
|
+
// The primary "type"
|
|
233
|
+
ParamSpec.addGeneric({
|
|
234
|
+
default: UnknownType,
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
const object = new IntrospectedStaticClassFunction({
|
|
238
|
+
name: "object",
|
|
239
|
+
parameters: [
|
|
240
|
+
stringParam("name", {
|
|
241
|
+
doc: "The name of the property",
|
|
242
|
+
}),
|
|
243
|
+
typeParam("nick", new NullableType(StringType), {
|
|
244
|
+
doc: "A human readable name for the property (can be null)",
|
|
245
|
+
}),
|
|
246
|
+
typeParam("blurb", new NullableType(StringType), {
|
|
247
|
+
doc: "A longer description of the property (can be null)",
|
|
248
|
+
}),
|
|
249
|
+
typeParam("flags", new BinaryType(ParamFlags?.getType() ?? AnyType, NumberType), {
|
|
250
|
+
doc: "The flags for this property (e.g. READABLE, WRITABLE)",
|
|
251
|
+
}),
|
|
252
|
+
optionalParam("objectType", new NativeType("GType<T> | { $gtype: GType<T> }"), {
|
|
253
|
+
doc: "The GType of the object (optional)",
|
|
254
|
+
}),
|
|
255
|
+
],
|
|
256
|
+
parent: ParamSpec,
|
|
257
|
+
return_type: new NativeType("ParamSpec<T>"),
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
object.generics.push(new Generic(new GenericType("T")));
|
|
261
|
+
object.doc = "Creates a new GParamSpecObject instance specifying a property holding object references.";
|
|
262
|
+
|
|
263
|
+
// static jsobject(name: string, nick: string, blurb: string, flags: ParamFlags): ParamSpecBoxed
|
|
264
|
+
const jsobject = new IntrospectedStaticClassFunction({
|
|
265
|
+
name: "jsobject",
|
|
266
|
+
parameters: [
|
|
267
|
+
stringParam("name", {
|
|
268
|
+
doc: "The name of the property",
|
|
269
|
+
}),
|
|
270
|
+
typeParam("nick", new NullableType(StringType), {
|
|
271
|
+
doc: "A human readable name for the property (can be null)",
|
|
272
|
+
}),
|
|
273
|
+
typeParam("blurb", new NullableType(StringType), {
|
|
274
|
+
doc: "A longer description of the property (can be null)",
|
|
275
|
+
}),
|
|
276
|
+
typeParam("flags", new BinaryType(ParamFlags?.getType() ?? AnyType, NumberType), {
|
|
277
|
+
doc: "The flags for this property (e.g. READABLE, WRITABLE)",
|
|
278
|
+
}),
|
|
279
|
+
],
|
|
280
|
+
parent: ParamSpec,
|
|
281
|
+
return_type: new NativeType("ParamSpec<T>"),
|
|
282
|
+
});
|
|
283
|
+
|
|
284
|
+
jsobject.generics.push(new Generic(new GenericType("T")));
|
|
285
|
+
jsobject.doc = "Creates a new ParamSpec instance for JavaScript object properties.";
|
|
286
|
+
|
|
287
|
+
const override = new IntrospectedClassFunction({
|
|
288
|
+
parent: ParamSpec,
|
|
289
|
+
name: "override",
|
|
290
|
+
return_type: VoidType,
|
|
291
|
+
parameters: [
|
|
292
|
+
new IntrospectedFunctionParameter({
|
|
293
|
+
direction: GirDirection.In,
|
|
294
|
+
name: "name",
|
|
295
|
+
type: StringType,
|
|
296
|
+
doc: "The name of the property to override",
|
|
297
|
+
}),
|
|
298
|
+
new IntrospectedFunctionParameter({
|
|
299
|
+
direction: GirDirection.In,
|
|
300
|
+
name: "oclass",
|
|
301
|
+
type: new OrType(
|
|
302
|
+
namespace.assertClass("Object").getType(),
|
|
303
|
+
new NativeType("Function"),
|
|
304
|
+
new TypeIdentifier("GType", "GObject"),
|
|
305
|
+
),
|
|
306
|
+
doc: "The object class or type that contains the property to override",
|
|
307
|
+
}),
|
|
308
|
+
],
|
|
309
|
+
doc: "Registers a property override for a property introduced in a parent class or inherited interface.",
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
function ParamSpecWithGenerics(type: TypeExpression) {
|
|
313
|
+
return new GenerifiedTypeIdentifier("ParamSpec", "GObject", [type]);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
// Custom string ParamSpec function with optional defaultValue parameter
|
|
317
|
+
const stringParamSpec = new IntrospectedStaticClassFunction({
|
|
318
|
+
name: "string",
|
|
319
|
+
parameters: [
|
|
320
|
+
stringParam("name", {
|
|
321
|
+
doc: "The name of the property",
|
|
322
|
+
}),
|
|
323
|
+
typeParam("nick", new NullableType(StringType), {
|
|
324
|
+
doc: "A human readable name for the property (can be null)",
|
|
325
|
+
}),
|
|
326
|
+
typeParam("blurb", new NullableType(StringType), {
|
|
327
|
+
doc: "A longer description of the property (can be null)",
|
|
328
|
+
}),
|
|
329
|
+
typeParam("flags", new BinaryType(ParamFlags?.getType() ?? AnyType, NumberType), {
|
|
330
|
+
doc: "The flags for this property (e.g. READABLE, WRITABLE)",
|
|
331
|
+
}),
|
|
332
|
+
optionalParam("defaultValue", new NullableType(StringType), {
|
|
333
|
+
doc: "The default value for this property (optional, defaults to null if not provided)",
|
|
334
|
+
}),
|
|
335
|
+
],
|
|
336
|
+
parent: ParamSpec,
|
|
337
|
+
return_type: ParamSpecWithGenerics(StringType),
|
|
338
|
+
});
|
|
339
|
+
|
|
340
|
+
stringParamSpec.doc = "Creates a new GParamSpecString instance specifying a G_TYPE_STRING property.";
|
|
341
|
+
|
|
342
|
+
ParamSpec.members.push(
|
|
343
|
+
generateParamSpec(
|
|
344
|
+
"char",
|
|
345
|
+
ParamSpecWithGenerics(NumberType),
|
|
346
|
+
true,
|
|
347
|
+
null,
|
|
348
|
+
true,
|
|
349
|
+
NumberType,
|
|
350
|
+
false,
|
|
351
|
+
"Creates a new GParamSpecChar instance specifying a G_TYPE_CHAR property.",
|
|
352
|
+
),
|
|
353
|
+
generateParamSpec(
|
|
354
|
+
"uchar",
|
|
355
|
+
ParamSpecWithGenerics(NumberType),
|
|
356
|
+
true,
|
|
357
|
+
null,
|
|
358
|
+
true,
|
|
359
|
+
NumberType,
|
|
360
|
+
false,
|
|
361
|
+
"Creates a new GParamSpecUChar instance specifying a G_TYPE_UCHAR property.",
|
|
362
|
+
),
|
|
363
|
+
generateParamSpec(
|
|
364
|
+
"int",
|
|
365
|
+
ParamSpecWithGenerics(NumberType),
|
|
366
|
+
true,
|
|
367
|
+
null,
|
|
368
|
+
true,
|
|
369
|
+
NumberType,
|
|
370
|
+
false,
|
|
371
|
+
"Creates a new GParamSpecInt instance specifying a G_TYPE_INT property.",
|
|
372
|
+
),
|
|
373
|
+
generateParamSpec(
|
|
374
|
+
"uint",
|
|
375
|
+
ParamSpecWithGenerics(NumberType),
|
|
376
|
+
true,
|
|
377
|
+
null,
|
|
378
|
+
true,
|
|
379
|
+
NumberType,
|
|
380
|
+
false,
|
|
381
|
+
"Creates a new GParamSpecUInt instance specifying a G_TYPE_UINT property.",
|
|
382
|
+
),
|
|
383
|
+
generateParamSpec(
|
|
384
|
+
"long",
|
|
385
|
+
ParamSpecWithGenerics(NumberType),
|
|
386
|
+
true,
|
|
387
|
+
null,
|
|
388
|
+
true,
|
|
389
|
+
NumberType,
|
|
390
|
+
false,
|
|
391
|
+
"Creates a new GParamSpecLong instance specifying a G_TYPE_LONG property.",
|
|
392
|
+
),
|
|
393
|
+
generateParamSpec(
|
|
394
|
+
"ulong",
|
|
395
|
+
ParamSpecWithGenerics(NumberType),
|
|
396
|
+
true,
|
|
397
|
+
null,
|
|
398
|
+
true,
|
|
399
|
+
NumberType,
|
|
400
|
+
false,
|
|
401
|
+
"Creates a new GParamSpecULong instance specifying a G_TYPE_ULONG property.",
|
|
402
|
+
),
|
|
403
|
+
generateParamSpec(
|
|
404
|
+
"int64",
|
|
405
|
+
ParamSpecWithGenerics(NumberType),
|
|
406
|
+
true,
|
|
407
|
+
null,
|
|
408
|
+
true,
|
|
409
|
+
NumberType,
|
|
410
|
+
false,
|
|
411
|
+
"Creates a new GParamSpecInt64 instance specifying a G_TYPE_INT64 property.",
|
|
412
|
+
),
|
|
413
|
+
generateParamSpec(
|
|
414
|
+
"uint64",
|
|
415
|
+
ParamSpecWithGenerics(NumberType),
|
|
416
|
+
true,
|
|
417
|
+
null,
|
|
418
|
+
true,
|
|
419
|
+
NumberType,
|
|
420
|
+
false,
|
|
421
|
+
"Creates a new GParamSpecUInt64 instance specifying a G_TYPE_UINT64 property.",
|
|
422
|
+
),
|
|
423
|
+
generateParamSpec(
|
|
424
|
+
"float",
|
|
425
|
+
ParamSpecWithGenerics(NumberType),
|
|
426
|
+
true,
|
|
427
|
+
null,
|
|
428
|
+
true,
|
|
429
|
+
NumberType,
|
|
430
|
+
false,
|
|
431
|
+
"Creates a new GParamSpecFloat instance specifying a G_TYPE_FLOAT property.",
|
|
432
|
+
),
|
|
433
|
+
generateParamSpec(
|
|
434
|
+
"boolean",
|
|
435
|
+
ParamSpecWithGenerics(BooleanType),
|
|
436
|
+
false,
|
|
437
|
+
null,
|
|
438
|
+
true,
|
|
439
|
+
BooleanType,
|
|
440
|
+
false,
|
|
441
|
+
"Creates a new GParamSpecBoolean instance specifying a G_TYPE_BOOLEAN property. In many cases, it may be more appropriate to use an enum with g_param_spec_enum(), both to improve code clarity by using explicitly named values, and to allow for more values to be added in future without breaking API.",
|
|
442
|
+
),
|
|
443
|
+
generateParamSpec(
|
|
444
|
+
"flags",
|
|
445
|
+
ParamSpecWithGenerics(NumberType),
|
|
446
|
+
false,
|
|
447
|
+
"flags",
|
|
448
|
+
true,
|
|
449
|
+
undefined,
|
|
450
|
+
false,
|
|
451
|
+
"Creates a new GParamSpecFlags instance specifying a G_TYPE_FLAGS property.",
|
|
452
|
+
),
|
|
453
|
+
generateParamSpec(
|
|
454
|
+
"enum",
|
|
455
|
+
ParamSpecWithGenerics(new NativeType("T")),
|
|
456
|
+
false,
|
|
457
|
+
"enum",
|
|
458
|
+
true,
|
|
459
|
+
undefined,
|
|
460
|
+
true,
|
|
461
|
+
"Creates a new GParamSpecEnum instance specifying a G_TYPE_ENUM property.",
|
|
462
|
+
),
|
|
463
|
+
generateParamSpec(
|
|
464
|
+
"double",
|
|
465
|
+
ParamSpecWithGenerics(NumberType),
|
|
466
|
+
true,
|
|
467
|
+
null,
|
|
468
|
+
true,
|
|
469
|
+
NumberType,
|
|
470
|
+
false,
|
|
471
|
+
"Creates a new GParamSpecDouble instance specifying a G_TYPE_DOUBLE property.",
|
|
472
|
+
),
|
|
473
|
+
stringParamSpec,
|
|
474
|
+
generateParamSpec(
|
|
475
|
+
"boxed",
|
|
476
|
+
ParamSpecWithGenerics(new NativeType("T")),
|
|
477
|
+
false,
|
|
478
|
+
"boxed",
|
|
479
|
+
false,
|
|
480
|
+
undefined,
|
|
481
|
+
true,
|
|
482
|
+
"Creates a new GParamSpecBoxed instance specifying a G_TYPE_BOXED derived property.",
|
|
483
|
+
),
|
|
484
|
+
object,
|
|
485
|
+
generateParamSpec(
|
|
486
|
+
"param",
|
|
487
|
+
ParamSpec.getType(),
|
|
488
|
+
false,
|
|
489
|
+
"param",
|
|
490
|
+
false,
|
|
491
|
+
undefined,
|
|
492
|
+
false,
|
|
493
|
+
"Creates a new GParamSpecParam instance specifying a G_TYPE_PARAM property.",
|
|
494
|
+
),
|
|
495
|
+
jsobject,
|
|
496
|
+
override,
|
|
497
|
+
);
|
|
498
|
+
}
|
|
499
|
+
namespace.members.delete("Closure");
|
|
500
|
+
|
|
501
|
+
namespace.members.set(
|
|
502
|
+
"Closure",
|
|
503
|
+
new IntrospectedAlias({
|
|
504
|
+
name: "Closure",
|
|
505
|
+
namespace,
|
|
506
|
+
type: NativeType.of("(...args: P[]) => R"),
|
|
507
|
+
generics: [
|
|
508
|
+
{
|
|
509
|
+
name: "R",
|
|
510
|
+
type: AnyType,
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
name: "P",
|
|
514
|
+
type: AnyType,
|
|
515
|
+
},
|
|
516
|
+
],
|
|
517
|
+
}),
|
|
518
|
+
);
|
|
519
|
+
|
|
520
|
+
{
|
|
521
|
+
const GObject = namespace.assertClass("Object");
|
|
522
|
+
const Value = namespace.assertClass("Value");
|
|
523
|
+
|
|
524
|
+
const get_property = GObject.members.findIndex((m) => m.name === "get_property");
|
|
525
|
+
const set_property = GObject.members.findIndex((m) => m.name === "set_property");
|
|
526
|
+
|
|
527
|
+
GObject.members[get_property] = new IntrospectedClassFunction({
|
|
528
|
+
name: "get_property",
|
|
529
|
+
parent: GObject,
|
|
530
|
+
parameters: [
|
|
531
|
+
new IntrospectedFunctionParameter({
|
|
532
|
+
name: "property_name",
|
|
533
|
+
type: StringType,
|
|
534
|
+
direction: GirDirection.In,
|
|
535
|
+
doc: "The name of the property to get",
|
|
536
|
+
}),
|
|
537
|
+
new IntrospectedFunctionParameter({
|
|
538
|
+
name: "value",
|
|
539
|
+
type: Value.getType(),
|
|
540
|
+
direction: GirDirection.In,
|
|
541
|
+
doc: "Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type",
|
|
542
|
+
}),
|
|
543
|
+
],
|
|
544
|
+
return_type: AnyType,
|
|
545
|
+
doc: `Gets a property of an object.
|
|
546
|
+
|
|
547
|
+
The value can be:
|
|
548
|
+
- an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
|
|
549
|
+
- a GObject.Value initialized with the expected type of the property
|
|
550
|
+
- a GObject.Value initialized with a type to which the expected type of the property can be transformed
|
|
551
|
+
|
|
552
|
+
In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
|
|
553
|
+
|
|
554
|
+
Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.`,
|
|
555
|
+
});
|
|
556
|
+
|
|
557
|
+
GObject.members[set_property] = new IntrospectedClassFunction({
|
|
558
|
+
name: "set_property",
|
|
559
|
+
parent: GObject,
|
|
560
|
+
parameters: [
|
|
561
|
+
new IntrospectedFunctionParameter({
|
|
562
|
+
name: "property_name",
|
|
563
|
+
type: StringType,
|
|
564
|
+
direction: GirDirection.In,
|
|
565
|
+
doc: "The name of the property to set",
|
|
566
|
+
}),
|
|
567
|
+
new IntrospectedFunctionParameter({
|
|
568
|
+
name: "value",
|
|
569
|
+
type: Value.getType(),
|
|
570
|
+
direction: GirDirection.In,
|
|
571
|
+
doc: "The value to set the property to",
|
|
572
|
+
}),
|
|
573
|
+
],
|
|
574
|
+
return_type: VoidType,
|
|
575
|
+
doc: "Sets a property on an object.",
|
|
576
|
+
});
|
|
577
|
+
|
|
578
|
+
// Fix for bind_property_full - make Closure parameters nullable, see https://github.com/gjsify/ts-for-gir/issues/255
|
|
579
|
+
// The bind_property_with_closures method in GObject-2.0.gir shadows bind_property_full,
|
|
580
|
+
// but the Closure parameters are missing nullable="1" attributes even though the
|
|
581
|
+
// documentation states they can be null. This is a bug in the upstream GIR file.
|
|
582
|
+
|
|
583
|
+
// Find all bind_property_full methods
|
|
584
|
+
const allBindPropertyFull = GObject.members.filter(
|
|
585
|
+
(m) => m.name === "bind_property_full" && m instanceof IntrospectedClassFunction,
|
|
586
|
+
) as IntrospectedClassFunction[];
|
|
587
|
+
|
|
588
|
+
// Find the one with Closure parameters (the shadowed version)
|
|
589
|
+
const bindPropertyFullWithClosures = allBindPropertyFull.find((method) => {
|
|
590
|
+
const hasClosureParams = method.parameters.some((param) => {
|
|
591
|
+
if (param.name === "transform_to" || param.name === "transform_from") {
|
|
592
|
+
const type = param.type.deepUnwrap();
|
|
593
|
+
const isClosureType = type instanceof TypeIdentifier && type.name === "Closure";
|
|
594
|
+
return isClosureType;
|
|
595
|
+
}
|
|
596
|
+
return false;
|
|
597
|
+
});
|
|
598
|
+
return hasClosureParams;
|
|
599
|
+
});
|
|
600
|
+
|
|
601
|
+
if (bindPropertyFullWithClosures) {
|
|
602
|
+
// Create corrected parameters with nullable Closure types
|
|
603
|
+
const correctedParameters = bindPropertyFullWithClosures.parameters.map((param) => {
|
|
604
|
+
if (param.name === "transform_to" || param.name === "transform_from") {
|
|
605
|
+
const type = param.type.deepUnwrap();
|
|
606
|
+
if (type instanceof TypeIdentifier && type.name === "Closure") {
|
|
607
|
+
// Make the Closure parameter nullable
|
|
608
|
+
return param.copy({
|
|
609
|
+
type: new NullableType(param.type),
|
|
610
|
+
});
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
return param;
|
|
614
|
+
});
|
|
615
|
+
|
|
616
|
+
// Find the index and replace
|
|
617
|
+
const bindPropertyFullIndex = GObject.members.findIndex((m) => m === bindPropertyFullWithClosures);
|
|
618
|
+
GObject.members[bindPropertyFullIndex] = bindPropertyFullWithClosures.copy({
|
|
619
|
+
parameters: correctedParameters,
|
|
620
|
+
});
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
GObject.members.push(
|
|
624
|
+
new IntrospectedStaticClassFunction({
|
|
625
|
+
name: "_classInit",
|
|
626
|
+
parent: GObject,
|
|
627
|
+
parameters: [
|
|
628
|
+
new IntrospectedFunctionParameter({
|
|
629
|
+
name: "klass",
|
|
630
|
+
type: AnyType,
|
|
631
|
+
direction: GirDirection.In,
|
|
632
|
+
}),
|
|
633
|
+
],
|
|
634
|
+
return_type: AnyType,
|
|
635
|
+
}),
|
|
636
|
+
new IntrospectedClassFunction({
|
|
637
|
+
name: "disconnect",
|
|
638
|
+
parent: GObject,
|
|
639
|
+
parameters: [
|
|
640
|
+
new IntrospectedFunctionParameter({
|
|
641
|
+
name: "id",
|
|
642
|
+
type: NumberType,
|
|
643
|
+
direction: GirDirection.In,
|
|
644
|
+
doc: "Handler ID of the handler to be disconnected",
|
|
645
|
+
}),
|
|
646
|
+
],
|
|
647
|
+
return_type: VoidType,
|
|
648
|
+
doc: "Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.",
|
|
649
|
+
}),
|
|
650
|
+
new IntrospectedClassFunction({
|
|
651
|
+
name: "set",
|
|
652
|
+
parent: GObject,
|
|
653
|
+
parameters: [
|
|
654
|
+
new IntrospectedFunctionParameter({
|
|
655
|
+
name: "properties",
|
|
656
|
+
type: new NativeType("{ [key: string]: any }"),
|
|
657
|
+
direction: GirDirection.In,
|
|
658
|
+
doc: "Object containing the properties to set",
|
|
659
|
+
}),
|
|
660
|
+
],
|
|
661
|
+
return_type: VoidType,
|
|
662
|
+
doc: "Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.",
|
|
663
|
+
}),
|
|
664
|
+
new IntrospectedClassFunction({
|
|
665
|
+
name: "block_signal_handler",
|
|
666
|
+
parent: GObject,
|
|
667
|
+
parameters: [
|
|
668
|
+
new IntrospectedFunctionParameter({
|
|
669
|
+
name: "id",
|
|
670
|
+
type: NumberType,
|
|
671
|
+
direction: GirDirection.In,
|
|
672
|
+
doc: "Handler ID of the handler to be blocked",
|
|
673
|
+
}),
|
|
674
|
+
],
|
|
675
|
+
return_type: VoidType,
|
|
676
|
+
doc: "Blocks a handler of an instance so it will not be called during any signal emissions",
|
|
677
|
+
}),
|
|
678
|
+
new IntrospectedClassFunction({
|
|
679
|
+
name: "unblock_signal_handler",
|
|
680
|
+
parent: GObject,
|
|
681
|
+
parameters: [
|
|
682
|
+
new IntrospectedFunctionParameter({
|
|
683
|
+
name: "id",
|
|
684
|
+
type: NumberType,
|
|
685
|
+
direction: GirDirection.In,
|
|
686
|
+
doc: "Handler ID of the handler to be unblocked",
|
|
687
|
+
}),
|
|
688
|
+
],
|
|
689
|
+
return_type: VoidType,
|
|
690
|
+
doc: "Unblocks a handler so it will be called again during any signal emissions",
|
|
691
|
+
}),
|
|
692
|
+
new IntrospectedClassFunction({
|
|
693
|
+
name: "stop_emission_by_name",
|
|
694
|
+
parent: GObject,
|
|
695
|
+
parameters: [
|
|
696
|
+
new IntrospectedFunctionParameter({
|
|
697
|
+
name: "detailedName",
|
|
698
|
+
type: StringType,
|
|
699
|
+
direction: GirDirection.In,
|
|
700
|
+
doc: "Name of the signal to stop emission of",
|
|
701
|
+
}),
|
|
702
|
+
],
|
|
703
|
+
return_type: VoidType,
|
|
704
|
+
doc: "Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.",
|
|
705
|
+
}),
|
|
706
|
+
);
|
|
707
|
+
|
|
708
|
+
function replaceFunction(name: string, ...functions: IntrospectedFunction[]) {
|
|
709
|
+
namespace.members.delete(name);
|
|
710
|
+
|
|
711
|
+
namespace.members.set(name, functions);
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
// export function signal_handlers_block_by_func(instance: Object, func: Function);
|
|
715
|
+
|
|
716
|
+
replaceFunction(
|
|
717
|
+
"signal_handlers_block_by_func",
|
|
718
|
+
new IntrospectedFunction({
|
|
719
|
+
name: "signal_handlers_block_by_func",
|
|
720
|
+
namespace,
|
|
721
|
+
raw_name: "signal_handlers_block_by_func",
|
|
722
|
+
parameters: [
|
|
723
|
+
new IntrospectedFunctionParameter({
|
|
724
|
+
name: "instance",
|
|
725
|
+
type: GObject.getType(),
|
|
726
|
+
direction: GirDirection.In,
|
|
727
|
+
}),
|
|
728
|
+
new IntrospectedFunctionParameter({
|
|
729
|
+
name: "func",
|
|
730
|
+
type: AnyFunctionType,
|
|
731
|
+
direction: GirDirection.In,
|
|
732
|
+
}),
|
|
733
|
+
],
|
|
734
|
+
return_type: VoidType,
|
|
735
|
+
}),
|
|
736
|
+
);
|
|
737
|
+
|
|
738
|
+
// export function signal_handlers_unblock_by_func (instance: Object, func: Function);
|
|
739
|
+
|
|
740
|
+
replaceFunction(
|
|
741
|
+
"signal_handlers_unblock_by_func",
|
|
742
|
+
new IntrospectedFunction({
|
|
743
|
+
name: "signal_handlers_unblock_by_func",
|
|
744
|
+
namespace,
|
|
745
|
+
raw_name: "signal_handlers_unblock_by_func",
|
|
746
|
+
parameters: [
|
|
747
|
+
new IntrospectedFunctionParameter({
|
|
748
|
+
name: "instance",
|
|
749
|
+
type: GObject.getType(),
|
|
750
|
+
direction: GirDirection.In,
|
|
751
|
+
}),
|
|
752
|
+
new IntrospectedFunctionParameter({
|
|
753
|
+
name: "func",
|
|
754
|
+
type: AnyFunctionType,
|
|
755
|
+
direction: GirDirection.In,
|
|
756
|
+
}),
|
|
757
|
+
],
|
|
758
|
+
return_type: VoidType,
|
|
759
|
+
}),
|
|
760
|
+
);
|
|
761
|
+
|
|
762
|
+
// export function signal_handlers_disconnect_by_func(instance: Object, func: Function);
|
|
763
|
+
|
|
764
|
+
replaceFunction(
|
|
765
|
+
"signal_handlers_disconnect_by_func",
|
|
766
|
+
new IntrospectedFunction({
|
|
767
|
+
name: "signal_handlers_disconnect_by_func",
|
|
768
|
+
namespace,
|
|
769
|
+
raw_name: "signal_handlers_disconnect_by_func",
|
|
770
|
+
parameters: [
|
|
771
|
+
new IntrospectedFunctionParameter({
|
|
772
|
+
name: "instance",
|
|
773
|
+
type: GObject.getType(),
|
|
774
|
+
direction: GirDirection.In,
|
|
775
|
+
}),
|
|
776
|
+
new IntrospectedFunctionParameter({
|
|
777
|
+
name: "func",
|
|
778
|
+
type: AnyFunctionType,
|
|
779
|
+
direction: GirDirection.In,
|
|
780
|
+
}),
|
|
781
|
+
],
|
|
782
|
+
return_type: VoidType,
|
|
783
|
+
}),
|
|
784
|
+
);
|
|
785
|
+
|
|
786
|
+
// signal_handler_find
|
|
787
|
+
|
|
788
|
+
const args = new IntrospectedFunctionParameter({
|
|
789
|
+
name: "args",
|
|
790
|
+
direction: GirDirection.In,
|
|
791
|
+
isVarArgs: true,
|
|
792
|
+
type: new BinaryType(
|
|
793
|
+
new TupleType(GObject.getType(), NativeType.of("SignalMatch")),
|
|
794
|
+
new TupleType(
|
|
795
|
+
GObject.getType(),
|
|
796
|
+
new TypeIdentifier("SignalMatchType", "GObject"),
|
|
797
|
+
NumberType,
|
|
798
|
+
new TypeIdentifier("Quark", "GLib"),
|
|
799
|
+
new NullableType(new TypeIdentifier("Closure", "GObject")),
|
|
800
|
+
new NullableType(ObjectType),
|
|
801
|
+
new NullableType(ObjectType),
|
|
802
|
+
),
|
|
803
|
+
),
|
|
804
|
+
});
|
|
805
|
+
|
|
806
|
+
const modifiedArgs = [
|
|
807
|
+
new IntrospectedFunctionParameter({
|
|
808
|
+
name: "instance",
|
|
809
|
+
direction: GirDirection.In,
|
|
810
|
+
|
|
811
|
+
type: GObject.getType(),
|
|
812
|
+
}),
|
|
813
|
+
new IntrospectedFunctionParameter({
|
|
814
|
+
name: "match",
|
|
815
|
+
direction: GirDirection.In,
|
|
816
|
+
type: NativeType.of("SignalMatch"),
|
|
817
|
+
}),
|
|
818
|
+
];
|
|
819
|
+
|
|
820
|
+
const originalArgs = [
|
|
821
|
+
new IntrospectedFunctionParameter({
|
|
822
|
+
name: "instance",
|
|
823
|
+
direction: GirDirection.In,
|
|
824
|
+
|
|
825
|
+
type: GObject.getType(),
|
|
826
|
+
}),
|
|
827
|
+
new IntrospectedFunctionParameter({
|
|
828
|
+
name: "match",
|
|
829
|
+
direction: GirDirection.In,
|
|
830
|
+
type: new TypeIdentifier("SignalMatchType", "GObject"),
|
|
831
|
+
}),
|
|
832
|
+
new IntrospectedFunctionParameter({
|
|
833
|
+
name: "signal_id",
|
|
834
|
+
direction: GirDirection.In,
|
|
835
|
+
type: NumberType,
|
|
836
|
+
}),
|
|
837
|
+
new IntrospectedFunctionParameter({
|
|
838
|
+
name: "detail",
|
|
839
|
+
type: new TypeIdentifier("Quark", "GLib"),
|
|
840
|
+
direction: GirDirection.In,
|
|
841
|
+
}),
|
|
842
|
+
new IntrospectedFunctionParameter({
|
|
843
|
+
name: "closure",
|
|
844
|
+
type: new NullableType(new TypeIdentifier("Closure", "GObject")),
|
|
845
|
+
direction: GirDirection.In,
|
|
846
|
+
}),
|
|
847
|
+
new IntrospectedFunctionParameter({
|
|
848
|
+
name: "func",
|
|
849
|
+
type: new NullableType(ObjectType),
|
|
850
|
+
direction: GirDirection.In,
|
|
851
|
+
}),
|
|
852
|
+
new IntrospectedFunctionParameter({
|
|
853
|
+
name: "object",
|
|
854
|
+
type: new NullableType(ObjectType),
|
|
855
|
+
direction: GirDirection.In,
|
|
856
|
+
}),
|
|
857
|
+
];
|
|
858
|
+
|
|
859
|
+
function originalFunc(name: string) {
|
|
860
|
+
return new IntrospectedFunction({
|
|
861
|
+
name,
|
|
862
|
+
namespace,
|
|
863
|
+
raw_name: name,
|
|
864
|
+
return_type: NumberType,
|
|
865
|
+
parameters: originalArgs.map((a) => a.copy()),
|
|
866
|
+
});
|
|
867
|
+
}
|
|
868
|
+
|
|
869
|
+
function func(name: string) {
|
|
870
|
+
replaceFunction(
|
|
871
|
+
name,
|
|
872
|
+
// [name](...args: [Object, SignalMatch] | [Object, SignalMatchType, number, GLib.Quark, Closure | null, object | null, object | null]): number;
|
|
873
|
+
new IntrospectedFunction({
|
|
874
|
+
name,
|
|
875
|
+
namespace,
|
|
876
|
+
raw_name: name,
|
|
877
|
+
return_type: NumberType,
|
|
878
|
+
parameters: [args],
|
|
879
|
+
}),
|
|
880
|
+
// export function [name](instance: Object, match: SignalMatch): number;
|
|
881
|
+
new IntrospectedFunction({
|
|
882
|
+
name,
|
|
883
|
+
namespace,
|
|
884
|
+
raw_name: name,
|
|
885
|
+
return_type: NumberType,
|
|
886
|
+
parameters: modifiedArgs.map((a) => a.copy()),
|
|
887
|
+
}),
|
|
888
|
+
// export function [name](instance: Object, mask: SignalMatchType, signal_id: number, detail: GLib.Quark, closure: Closure | null, func: object | null, data: object | null): number
|
|
889
|
+
originalFunc(name),
|
|
890
|
+
// export function [`_real_${name}`](instance: Object, mask: SignalMatchType, signal_id: number, detail: GLib.Quark, closure: Closure | null, func: object | null, data: object | null): number
|
|
891
|
+
originalFunc(`_real_${name}`),
|
|
892
|
+
);
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
func("signal_handler_find");
|
|
896
|
+
func("signal_handler_block_matched");
|
|
897
|
+
func("signal_handler_block_disconnect_matched");
|
|
898
|
+
func("signal_handler_block_unblock_matched");
|
|
899
|
+
}
|
|
900
|
+
},
|
|
901
|
+
};
|