@gtkx/codegen 1.0.0-rc.1 → 1.0.0-rc.2
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/dist/analysis/descriptor-render.d.ts +18 -11
- package/dist/analysis/descriptor-render.d.ts.map +1 -1
- package/dist/analysis/descriptor-render.js +275 -152
- package/dist/analysis/descriptor-render.js.map +1 -1
- package/dist/analysis/descriptor.d.ts +37 -34
- package/dist/analysis/descriptor.d.ts.map +1 -1
- package/dist/analysis/descriptor.js +34 -30
- package/dist/analysis/descriptor.js.map +1 -1
- package/dist/analysis/inheritance.d.ts +16 -16
- package/dist/analysis/inheritance.d.ts.map +1 -1
- package/dist/analysis/inheritance.js +139 -84
- package/dist/analysis/inheritance.js.map +1 -1
- package/dist/analysis/param-structure.d.ts +14 -13
- package/dist/analysis/param-structure.d.ts.map +1 -1
- package/dist/analysis/param-structure.js +104 -53
- package/dist/analysis/param-structure.js.map +1 -1
- package/dist/analysis/ts-type.d.ts +6 -5
- package/dist/analysis/ts-type.d.ts.map +1 -1
- package/dist/analysis/ts-type.js +69 -23
- package/dist/analysis/ts-type.js.map +1 -1
- package/dist/compile.d.ts +5 -5
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +70 -63
- package/dist/compile.js.map +1 -1
- package/dist/docs/api-reference.d.ts +12 -11
- package/dist/docs/api-reference.d.ts.map +1 -1
- package/dist/docs/api-reference.js +194 -121
- package/dist/docs/api-reference.js.map +1 -1
- package/dist/docs/element-page.d.ts +6 -9
- package/dist/docs/element-page.d.ts.map +1 -1
- package/dist/docs/element-page.js +68 -133
- package/dist/docs/element-page.js.map +1 -1
- package/dist/docs/pipeline.d.ts +8 -7
- package/dist/docs/pipeline.d.ts.map +1 -1
- package/dist/docs/pipeline.js +79 -53
- package/dist/docs/pipeline.js.map +1 -1
- package/dist/docs/render.d.ts +21 -19
- package/dist/docs/render.d.ts.map +1 -1
- package/dist/docs/render.js +80 -71
- package/dist/docs/render.js.map +1 -1
- package/dist/docs/symbol-page.d.ts +6 -6
- package/dist/docs/symbol-page.d.ts.map +1 -1
- package/dist/docs/symbol-page.js +126 -84
- package/dist/docs/symbol-page.js.map +1 -1
- package/dist/fingerprint.d.ts +28 -5
- package/dist/fingerprint.d.ts.map +1 -1
- package/dist/fingerprint.js +66 -13
- package/dist/fingerprint.js.map +1 -1
- package/dist/gi.d.ts +13 -0
- package/dist/gi.d.ts.map +1 -0
- package/dist/gi.js +21 -0
- package/dist/gi.js.map +1 -0
- package/dist/gir/ancestry.d.ts +4 -3
- package/dist/gir/ancestry.d.ts.map +1 -1
- package/dist/gir/ancestry.js +12 -15
- package/dist/gir/ancestry.js.map +1 -1
- package/dist/gir/callback.d.ts +6 -11
- package/dist/gir/callback.d.ts.map +1 -1
- package/dist/gir/callback.js +6 -7
- package/dist/gir/callback.js.map +1 -1
- package/dist/gir/class.d.ts +7 -5
- package/dist/gir/class.d.ts.map +1 -1
- package/dist/gir/class.js +14 -12
- package/dist/gir/class.js.map +1 -1
- package/dist/gir/enum.d.ts +3 -3
- package/dist/gir/enum.d.ts.map +1 -1
- package/dist/gir/enum.js +7 -6
- package/dist/gir/enum.js.map +1 -1
- package/dist/gir/field.d.ts +8 -3
- package/dist/gir/field.d.ts.map +1 -1
- package/dist/gir/field.js +30 -7
- package/dist/gir/field.js.map +1 -1
- package/dist/gir/function.d.ts +6 -3
- package/dist/gir/function.d.ts.map +1 -1
- package/dist/gir/function.js +23 -7
- package/dist/gir/function.js.map +1 -1
- package/dist/gir/gir-path.d.ts +2 -1
- package/dist/gir/gir-path.d.ts.map +1 -1
- package/dist/gir/gir-path.js +26 -10
- package/dist/gir/gir-path.js.map +1 -1
- package/dist/gir/libraries.d.ts +3 -2
- package/dist/gir/libraries.d.ts.map +1 -1
- package/dist/gir/libraries.js +39 -27
- package/dist/gir/libraries.js.map +1 -1
- package/dist/gir/library.d.ts +17 -11
- package/dist/gir/library.d.ts.map +1 -1
- package/dist/gir/library.js +116 -92
- package/dist/gir/library.js.map +1 -1
- package/dist/gir/namespace.d.ts +10 -10
- package/dist/gir/namespace.d.ts.map +1 -1
- package/dist/gir/namespace.js +21 -20
- package/dist/gir/namespace.js.map +1 -1
- package/dist/gir/nullable-overrides.d.ts +3 -0
- package/dist/gir/nullable-overrides.d.ts.map +1 -0
- package/dist/gir/nullable-overrides.js +5 -0
- package/dist/gir/nullable-overrides.js.map +1 -0
- package/dist/gir/parameter.d.ts +14 -12
- package/dist/gir/parameter.d.ts.map +1 -1
- package/dist/gir/parameter.js +27 -18
- package/dist/gir/parameter.js.map +1 -1
- package/dist/gir/parse.d.ts +12 -13
- package/dist/gir/parse.d.ts.map +1 -1
- package/dist/gir/parse.js +50 -40
- package/dist/gir/parse.js.map +1 -1
- package/dist/gir/primitives.d.ts +5 -4
- package/dist/gir/primitives.d.ts.map +1 -1
- package/dist/gir/primitives.js +4 -3
- package/dist/gir/primitives.js.map +1 -1
- package/dist/gir/property.d.ts +5 -4
- package/dist/gir/property.d.ts.map +1 -1
- package/dist/gir/property.js +10 -9
- package/dist/gir/property.js.map +1 -1
- package/dist/gir/record.d.ts +5 -4
- package/dist/gir/record.d.ts.map +1 -1
- package/dist/gir/record.js +13 -12
- package/dist/gir/record.js.map +1 -1
- package/dist/gir/size.d.ts +6 -5
- package/dist/gir/size.d.ts.map +1 -1
- package/dist/gir/size.js +49 -47
- package/dist/gir/size.js.map +1 -1
- package/dist/gir/type-id.d.ts +17 -15
- package/dist/gir/type-id.d.ts.map +1 -1
- package/dist/gir/type-id.js +5 -1
- package/dist/gir/type-id.js.map +1 -1
- package/dist/gir/type-ref.d.ts +3 -2
- package/dist/gir/type-ref.d.ts.map +1 -1
- package/dist/gir/type-ref.js +36 -25
- package/dist/gir/type-ref.js.map +1 -1
- package/dist/gir/type.d.ts +3 -2
- package/dist/gir/type.d.ts.map +1 -1
- package/dist/gir/type.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/jsx.d.ts +26 -0
- package/dist/jsx.d.ts.map +1 -0
- package/dist/jsx.js +40 -0
- package/dist/jsx.js.map +1 -0
- package/dist/khronos/args.d.ts +7 -7
- package/dist/khronos/args.d.ts.map +1 -1
- package/dist/khronos/args.js +88 -67
- package/dist/khronos/args.js.map +1 -1
- package/dist/khronos/jsdoc.d.ts +4 -4
- package/dist/khronos/jsdoc.d.ts.map +1 -1
- package/dist/khronos/jsdoc.js +29 -16
- package/dist/khronos/jsdoc.js.map +1 -1
- package/dist/khronos/model.d.ts +8 -7
- package/dist/khronos/model.d.ts.map +1 -1
- package/dist/khronos/model.js +94 -59
- package/dist/khronos/model.js.map +1 -1
- package/dist/khronos/modules.d.ts +4 -3
- package/dist/khronos/modules.d.ts.map +1 -1
- package/dist/khronos/modules.js +40 -25
- package/dist/khronos/modules.js.map +1 -1
- package/dist/khronos/param-pair.d.ts +11 -0
- package/dist/khronos/param-pair.d.ts.map +1 -0
- package/dist/khronos/param-pair.js +6 -0
- package/dist/khronos/param-pair.js.map +1 -0
- package/dist/khronos/parse.d.ts +7 -8
- package/dist/khronos/parse.d.ts.map +1 -1
- package/dist/khronos/parse.js +17 -16
- package/dist/khronos/parse.js.map +1 -1
- package/dist/khronos/pipeline.d.ts +4 -4
- package/dist/khronos/pipeline.d.ts.map +1 -1
- package/dist/khronos/pipeline.js +97 -56
- package/dist/khronos/pipeline.js.map +1 -1
- package/dist/khronos/plan.d.ts +11 -10
- package/dist/khronos/plan.d.ts.map +1 -1
- package/dist/khronos/plan.js +109 -45
- package/dist/khronos/plan.js.map +1 -1
- package/dist/khronos/render.d.ts +5 -4
- package/dist/khronos/render.d.ts.map +1 -1
- package/dist/khronos/render.js +106 -59
- package/dist/khronos/render.js.map +1 -1
- package/dist/khronos/select.d.ts +4 -4
- package/dist/khronos/select.d.ts.map +1 -1
- package/dist/khronos/select.js +30 -19
- package/dist/khronos/select.js.map +1 -1
- package/dist/react/element-config.d.ts +17 -0
- package/dist/react/element-config.d.ts.map +1 -0
- package/dist/react/element-config.js +61 -0
- package/dist/react/element-config.js.map +1 -0
- package/dist/runner.d.ts +17 -10
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +45 -43
- package/dist/runner.js.map +1 -1
- package/dist/store/compile-store.d.ts +5 -3
- package/dist/store/compile-store.d.ts.map +1 -1
- package/dist/store/compile-store.js +24 -22
- package/dist/store/compile-store.js.map +1 -1
- package/dist/store/gi/async.d.ts +2 -1
- package/dist/store/gi/async.d.ts.map +1 -1
- package/dist/store/gi/async.js +28 -24
- package/dist/store/gi/async.js.map +1 -1
- package/dist/store/gi/callables.d.ts +26 -20
- package/dist/store/gi/callables.d.ts.map +1 -1
- package/dist/store/gi/callables.js +162 -100
- package/dist/store/gi/callables.js.map +1 -1
- package/dist/store/gi/callback.d.ts +3 -2
- package/dist/store/gi/callback.d.ts.map +1 -1
- package/dist/store/gi/callback.js +6 -3
- package/dist/store/gi/callback.js.map +1 -1
- package/dist/store/gi/class-struct-record.d.ts +4 -3
- package/dist/store/gi/class-struct-record.d.ts.map +1 -1
- package/dist/store/gi/class-struct-record.js +33 -15
- package/dist/store/gi/class-struct-record.js.map +1 -1
- package/dist/store/gi/class.d.ts +2 -1
- package/dist/store/gi/class.d.ts.map +1 -1
- package/dist/store/gi/class.js +86 -47
- package/dist/store/gi/class.js.map +1 -1
- package/dist/store/gi/companion.d.ts +2 -1
- package/dist/store/gi/companion.d.ts.map +1 -1
- package/dist/store/gi/companion.js +8 -5
- package/dist/store/gi/companion.js.map +1 -1
- package/dist/store/gi/constant.d.ts +3 -2
- package/dist/store/gi/constant.d.ts.map +1 -1
- package/dist/store/gi/constant.js +25 -8
- package/dist/store/gi/constant.js.map +1 -1
- package/dist/store/gi/constructor-props.d.ts +3 -2
- package/dist/store/gi/constructor-props.d.ts.map +1 -1
- package/dist/store/gi/constructor-props.js +17 -10
- package/dist/store/gi/constructor-props.js.map +1 -1
- package/dist/store/gi/enum.d.ts +3 -2
- package/dist/store/gi/enum.d.ts.map +1 -1
- package/dist/store/gi/enum.js +14 -11
- package/dist/store/gi/enum.js.map +1 -1
- package/dist/store/gi/function.d.ts +5 -4
- package/dist/store/gi/function.d.ts.map +1 -1
- package/dist/store/gi/function.js +50 -23
- package/dist/store/gi/function.js.map +1 -1
- package/dist/store/gi/gtype-binding.d.ts +4 -4
- package/dist/store/gi/gtype-binding.d.ts.map +1 -1
- package/dist/store/gi/gtype-binding.js +15 -11
- package/dist/store/gi/gtype-binding.js.map +1 -1
- package/dist/store/gi/interface.d.ts +2 -1
- package/dist/store/gi/interface.d.ts.map +1 -1
- package/dist/store/gi/interface.js +36 -18
- package/dist/store/gi/interface.js.map +1 -1
- package/dist/store/gi/item-comparators.d.ts +3 -2
- package/dist/store/gi/item-comparators.d.ts.map +1 -1
- package/dist/store/gi/item-comparators.js +33 -21
- package/dist/store/gi/item-comparators.js.map +1 -1
- package/dist/store/gi/method.d.ts +13 -13
- package/dist/store/gi/method.d.ts.map +1 -1
- package/dist/store/gi/method.js +187 -130
- package/dist/store/gi/method.js.map +1 -1
- package/dist/store/gi/param-marshal.d.ts +7 -6
- package/dist/store/gi/param-marshal.d.ts.map +1 -1
- package/dist/store/gi/param-marshal.js +26 -13
- package/dist/store/gi/param-marshal.js.map +1 -1
- package/dist/store/gi/pipeline.d.ts +2 -1
- package/dist/store/gi/pipeline.d.ts.map +1 -1
- package/dist/store/gi/pipeline.js +38 -23
- package/dist/store/gi/pipeline.js.map +1 -1
- package/dist/store/gi/properties.d.ts +2 -1
- package/dist/store/gi/properties.d.ts.map +1 -1
- package/dist/store/gi/properties.js +6 -4
- package/dist/store/gi/properties.js.map +1 -1
- package/dist/store/gi/property-accessor.d.ts +11 -10
- package/dist/store/gi/property-accessor.d.ts.map +1 -1
- package/dist/store/gi/property-accessor.js +86 -60
- package/dist/store/gi/property-accessor.js.map +1 -1
- package/dist/store/gi/record-constructor.d.ts +3 -2
- package/dist/store/gi/record-constructor.d.ts.map +1 -1
- package/dist/store/gi/record-constructor.js +36 -25
- package/dist/store/gi/record-constructor.js.map +1 -1
- package/dist/store/gi/record-field-accessor.d.ts +8 -8
- package/dist/store/gi/record-field-accessor.d.ts.map +1 -1
- package/dist/store/gi/record-field-accessor.js +171 -99
- package/dist/store/gi/record-field-accessor.js.map +1 -1
- package/dist/store/gi/record-layout.d.ts +6 -5
- package/dist/store/gi/record-layout.d.ts.map +1 -1
- package/dist/store/gi/record-layout.js +75 -39
- package/dist/store/gi/record-layout.js.map +1 -1
- package/dist/store/gi/record.d.ts +2 -1
- package/dist/store/gi/record.d.ts.map +1 -1
- package/dist/store/gi/record.js +19 -13
- package/dist/store/gi/record.js.map +1 -1
- package/dist/store/gi/registration.d.ts +3 -3
- package/dist/store/gi/registration.d.ts.map +1 -1
- package/dist/store/gi/registration.js +3 -2
- package/dist/store/gi/registration.js.map +1 -1
- package/dist/store/gi/return-wrap.d.ts +2 -2
- package/dist/store/gi/return-wrap.d.ts.map +1 -1
- package/dist/store/gi/return-wrap.js +43 -22
- package/dist/store/gi/return-wrap.js.map +1 -1
- package/dist/store/gi/runtime-override.d.ts +2 -1
- package/dist/store/gi/runtime-override.d.ts.map +1 -1
- package/dist/store/gi/runtime-override.js +6 -3
- package/dist/store/gi/runtime-override.js.map +1 -1
- package/dist/store/gi/signal.d.ts +3 -2
- package/dist/store/gi/signal.d.ts.map +1 -1
- package/dist/store/gi/signal.js +113 -66
- package/dist/store/gi/signal.js.map +1 -1
- package/dist/store/gi/vtable.d.ts +2 -1
- package/dist/store/gi/vtable.d.ts.map +1 -1
- package/dist/store/gi/vtable.js +60 -30
- package/dist/store/gi/vtable.js.map +1 -1
- package/dist/store/gi-store.d.ts +5 -4
- package/dist/store/gi-store.d.ts.map +1 -1
- package/dist/store/gi-store.js +4 -2
- package/dist/store/gi-store.js.map +1 -1
- package/dist/store/jsx/element-components.d.ts +23 -0
- package/dist/store/jsx/element-components.d.ts.map +1 -0
- package/dist/store/jsx/element-components.js +86 -0
- package/dist/store/jsx/element-components.js.map +1 -0
- package/dist/store/jsx/element-prop-imports.d.ts +17 -0
- package/dist/store/jsx/element-prop-imports.d.ts.map +1 -0
- package/dist/store/jsx/element-prop-imports.js +15 -0
- package/dist/store/jsx/element-prop-imports.js.map +1 -0
- package/dist/store/jsx/element-prop-types.d.ts +10 -0
- package/dist/store/jsx/element-prop-types.d.ts.map +1 -0
- package/dist/store/jsx/element-prop-types.js +41 -0
- package/dist/store/jsx/element-prop-types.js.map +1 -0
- package/dist/store/jsx/gir-index.d.ts +16 -0
- package/dist/store/jsx/gir-index.d.ts.map +1 -0
- package/dist/store/jsx/gir-index.js +33 -0
- package/dist/store/jsx/gir-index.js.map +1 -0
- package/dist/store/jsx/intrinsic-elements.d.ts +27 -0
- package/dist/store/jsx/intrinsic-elements.d.ts.map +1 -0
- package/dist/store/jsx/intrinsic-elements.js +128 -0
- package/dist/store/jsx/intrinsic-elements.js.map +1 -0
- package/dist/store/{react → jsx}/jsx.d.ts +2 -4
- package/dist/store/jsx/jsx.d.ts.map +1 -0
- package/dist/store/{react → jsx}/jsx.js +110 -71
- package/dist/store/jsx/jsx.js.map +1 -0
- package/dist/store/jsx/metadata.d.ts +4 -0
- package/dist/store/jsx/metadata.d.ts.map +1 -0
- package/dist/store/{react → jsx}/metadata.js +148 -69
- package/dist/store/jsx/metadata.js.map +1 -0
- package/dist/store/jsx/pipeline.d.ts +21 -0
- package/dist/store/jsx/pipeline.d.ts.map +1 -0
- package/dist/store/{react → jsx}/pipeline.js +36 -15
- package/dist/store/jsx/pipeline.js.map +1 -0
- package/dist/store/{react → jsx}/props.d.ts +9 -12
- package/dist/store/jsx/props.d.ts.map +1 -0
- package/dist/store/jsx/props.js +158 -0
- package/dist/store/jsx/props.js.map +1 -0
- package/dist/store/jsx-store.d.ts +5 -3
- package/dist/store/jsx-store.d.ts.map +1 -1
- package/dist/store/jsx-store.js +4 -1
- package/dist/store/jsx-store.js.map +1 -1
- package/dist/store/store-fs.d.ts +14 -12
- package/dist/store/store-fs.d.ts.map +1 -1
- package/dist/store/store-fs.js +9 -7
- package/dist/store/store-fs.js.map +1 -1
- package/dist/writer/context.d.ts +2 -1
- package/dist/writer/context.d.ts.map +1 -1
- package/dist/writer/context.js +12 -6
- package/dist/writer/context.js.map +1 -1
- package/dist/writer/doc.d.ts +2 -1
- package/dist/writer/doc.d.ts.map +1 -1
- package/dist/writer/doc.js +13 -7
- package/dist/writer/doc.js.map +1 -1
- package/dist/writer/emit.d.ts +8 -7
- package/dist/writer/emit.d.ts.map +1 -1
- package/dist/writer/emit.js +13 -10
- package/dist/writer/emit.js.map +1 -1
- package/dist/writer/gtk-doc.d.ts +2 -1
- package/dist/writer/gtk-doc.d.ts.map +1 -1
- package/dist/writer/gtk-doc.js +29 -18
- package/dist/writer/gtk-doc.js.map +1 -1
- package/dist/writer/imports.d.ts +4 -2
- package/dist/writer/imports.d.ts.map +1 -1
- package/dist/writer/imports.js +35 -24
- package/dist/writer/imports.js.map +1 -1
- package/dist/writer/module.d.ts +3 -2
- package/dist/writer/module.d.ts.map +1 -1
- package/dist/writer/module.js +16 -9
- package/dist/writer/module.js.map +1 -1
- package/dist/xml.d.ts +4 -0
- package/dist/xml.d.ts.map +1 -0
- package/dist/xml.js +10 -0
- package/dist/xml.js.map +1 -0
- package/overrides/cairo/context.ts.ejs +7 -7
- package/overrides/cairo/matrix.ts.ejs +2 -2
- package/overrides/cairo/recording-surface.ts.ejs +2 -2
- package/overrides/cairo/region.ts.ejs +1 -1
- package/overrides/cairo/scaled-font.ts.ejs +3 -3
- package/package.json +15 -9
- package/src/analysis/descriptor-render.ts +484 -168
- package/src/analysis/descriptor.ts +162 -125
- package/src/analysis/inheritance.ts +286 -98
- package/src/analysis/param-structure.ts +188 -57
- package/src/analysis/ts-type.ts +112 -26
- package/src/compile.ts +103 -76
- package/src/docs/api-reference.ts +340 -144
- package/src/docs/element-page.ts +137 -146
- package/src/docs/pipeline.ts +132 -73
- package/src/docs/render.ts +151 -87
- package/src/docs/symbol-page.ts +268 -123
- package/src/fingerprint.ts +127 -29
- package/src/gi.ts +26 -0
- package/src/gir/ancestry.ts +26 -14
- package/src/gir/callback.ts +10 -15
- package/src/gir/class.ts +20 -16
- package/src/gir/enum.ts +9 -7
- package/src/gir/field.ts +37 -8
- package/src/gir/function.ts +33 -9
- package/src/gir/gir-path.ts +36 -12
- package/src/gir/libraries.ts +56 -31
- package/src/gir/library.ts +200 -97
- package/src/gir/namespace.ts +42 -26
- package/src/gir/nullable-overrides.ts +5 -0
- package/src/gir/parameter.ts +80 -42
- package/src/gir/parse.ts +102 -47
- package/src/gir/primitives.ts +25 -23
- package/src/gir/property.ts +13 -11
- package/src/gir/record.ts +16 -14
- package/src/gir/size.ts +91 -58
- package/src/gir/type-id.ts +33 -18
- package/src/gir/type-ref.ts +62 -26
- package/src/gir/type.ts +10 -8
- package/src/index.ts +7 -0
- package/src/jsx.ts +70 -0
- package/src/khronos/args.ts +158 -89
- package/src/khronos/jsdoc.ts +67 -29
- package/src/khronos/model.ts +154 -53
- package/src/khronos/modules.ts +67 -27
- package/src/khronos/param-pair.ts +14 -0
- package/src/khronos/parse.ts +37 -17
- package/src/khronos/pipeline.ts +193 -90
- package/src/khronos/plan.ts +235 -86
- package/src/khronos/render.ts +208 -71
- package/src/khronos/select.ts +48 -18
- package/src/react/element-config.ts +91 -0
- package/src/runner.ts +93 -57
- package/src/store/compile-store.ts +32 -26
- package/src/store/gi/async.ts +48 -21
- package/src/store/gi/callables.ts +345 -136
- package/src/store/gi/callback.ts +13 -4
- package/src/store/gi/class-struct-record.ts +49 -17
- package/src/store/gi/class.ts +186 -64
- package/src/store/gi/companion.ts +15 -6
- package/src/store/gi/constant.ts +42 -8
- package/src/store/gi/constructor-props.ts +42 -16
- package/src/store/gi/enum.ts +28 -13
- package/src/store/gi/function.ts +90 -24
- package/src/store/gi/gtype-binding.ts +31 -18
- package/src/store/gi/interface.ts +101 -36
- package/src/store/gi/item-comparators.ts +74 -26
- package/src/store/gi/method.ts +376 -159
- package/src/store/gi/param-marshal.ts +38 -15
- package/src/store/gi/pipeline.ts +72 -22
- package/src/store/gi/properties.ts +16 -5
- package/src/store/gi/property-accessor.ts +192 -84
- package/src/store/gi/record-constructor.ts +62 -30
- package/src/store/gi/record-field-accessor.ts +380 -167
- package/src/store/gi/record-layout.ts +130 -43
- package/src/store/gi/record.ts +37 -14
- package/src/store/gi/registration.ts +15 -9
- package/src/store/gi/return-wrap.ts +71 -23
- package/src/store/gi/runtime-override.ts +13 -3
- package/src/store/gi/signal.ts +244 -104
- package/src/store/gi/vtable.ts +117 -41
- package/src/store/gi-store.ts +26 -13
- package/src/store/jsx/element-components.ts +152 -0
- package/src/store/jsx/element-prop-imports.ts +24 -0
- package/src/store/jsx/element-prop-types.ts +59 -0
- package/src/store/jsx/gir-index.ts +62 -0
- package/src/store/jsx/intrinsic-elements.ts +262 -0
- package/src/store/{react → jsx}/jsx.ts +213 -99
- package/src/store/jsx/metadata.ts +385 -0
- package/src/store/jsx/pipeline.ts +145 -0
- package/src/store/jsx/props.ts +274 -0
- package/src/store/jsx-store.ts +15 -3
- package/src/store/store-fs.ts +36 -20
- package/src/writer/context.ts +25 -6
- package/src/writer/doc.ts +19 -5
- package/src/writer/emit.ts +20 -11
- package/src/writer/gtk-doc.ts +48 -21
- package/src/writer/imports.ts +63 -28
- package/src/writer/module.ts +35 -11
- package/src/xml.ts +12 -0
- package/dist/store/react/built-ins.d.ts +0 -9
- package/dist/store/react/built-ins.d.ts.map +0 -1
- package/dist/store/react/built-ins.js +0 -226
- package/dist/store/react/built-ins.js.map +0 -1
- package/dist/store/react/element-components.d.ts +0 -15
- package/dist/store/react/element-components.d.ts.map +0 -1
- package/dist/store/react/element-components.js +0 -92
- package/dist/store/react/element-components.js.map +0 -1
- package/dist/store/react/element-prop-types.d.ts +0 -19
- package/dist/store/react/element-prop-types.d.ts.map +0 -1
- package/dist/store/react/element-prop-types.js +0 -244
- package/dist/store/react/element-prop-types.js.map +0 -1
- package/dist/store/react/element-props.d.ts +0 -4
- package/dist/store/react/element-props.d.ts.map +0 -1
- package/dist/store/react/element-props.js +0 -178
- package/dist/store/react/element-props.js.map +0 -1
- package/dist/store/react/gir-index.d.ts +0 -25
- package/dist/store/react/gir-index.d.ts.map +0 -1
- package/dist/store/react/gir-index.js +0 -55
- package/dist/store/react/gir-index.js.map +0 -1
- package/dist/store/react/intrinsic-elements.d.ts +0 -26
- package/dist/store/react/intrinsic-elements.d.ts.map +0 -1
- package/dist/store/react/intrinsic-elements.js +0 -107
- package/dist/store/react/intrinsic-elements.js.map +0 -1
- package/dist/store/react/jsx.d.ts.map +0 -1
- package/dist/store/react/jsx.js.map +0 -1
- package/dist/store/react/metadata.d.ts +0 -4
- package/dist/store/react/metadata.d.ts.map +0 -1
- package/dist/store/react/metadata.js.map +0 -1
- package/dist/store/react/pipeline.d.ts +0 -14
- package/dist/store/react/pipeline.d.ts.map +0 -1
- package/dist/store/react/pipeline.js.map +0 -1
- package/dist/store/react/props.d.ts.map +0 -1
- package/dist/store/react/props.js +0 -133
- package/dist/store/react/props.js.map +0 -1
- package/overrides/gtk/constants.ts.ejs +0 -3
- package/overrides/gtk/index.ts.ejs +0 -2
- package/src/store/react/built-ins.ts +0 -260
- package/src/store/react/element-components.ts +0 -138
- package/src/store/react/element-prop-types.ts +0 -280
- package/src/store/react/element-props.ts +0 -204
- package/src/store/react/gir-index.ts +0 -85
- package/src/store/react/intrinsic-elements.ts +0 -161
- package/src/store/react/metadata.ts +0 -197
- package/src/store/react/pipeline.ts +0 -90
- package/src/store/react/props.ts +0 -197
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gir-index.js","sourceRoot":"","sources":["../../../src/store/react/gir-index.ts"],"names":[],"mappings":"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","sourcesContent":["import { toCamelIdentifier } from \"@gtkx/utils\";\nimport { inputParameters } from \"../../analysis/param-structure.js\";\nimport { ancestorChain } from \"../../gir/ancestry.js\";\nimport type { GirClass } from \"../../gir/class.js\";\nimport type { GirFunction } from \"../../gir/function.js\";\nimport type { Library } from \"../../gir/library.js\";\nimport type { GirNamespace } from \"../../gir/namespace.js\";\nimport type { GirParameter } from \"../../gir/parameter.js\";\nimport { glibNameOf, implementedInterfaces } from \"./intrinsic-elements.js\";\n\nexport type GirTypeEntry = {\n klass: GirClass;\n namespace: GirNamespace;\n isInterface: boolean;\n};\n\nexport type GirIndex = {\n library: Library;\n index: Map<string, GirTypeEntry>;\n};\n\nexport const buildGirIndex = (library: Library): GirIndex => {\n const index = new Map<string, GirTypeEntry>();\n for (const namespace of library.namespaces.values()) {\n for (const klass of namespace.classes) {\n const glibName = glibNameOf(klass);\n if (glibName !== undefined && !index.has(glibName)) {\n index.set(glibName, { klass, namespace, isInterface: false });\n }\n }\n for (const klass of namespace.interfaces) {\n const glibName = glibNameOf(klass);\n if (glibName !== undefined && !index.has(glibName)) {\n index.set(glibName, { klass, namespace, isInterface: true });\n }\n }\n }\n return { library, index };\n};\n\nexport const chainOf = (context: GirIndex, entry: GirTypeEntry): GirClass[] => {\n if (entry.isInterface) return [entry.klass];\n const chain: GirClass[] = [];\n for (const { klass } of ancestorChain(context.library, entry.klass, entry.namespace.name)) chain.push(klass);\n for (const iface of implementedInterfaces(entry.klass, entry.namespace, context.library)) chain.push(iface.klass);\n return chain;\n};\n\ntype ResolvedMethod = {\n fn: GirFunction;\n params: GirParameter[];\n};\n\nexport const findMethod = (context: GirIndex, typeName: string, camelName: string): ResolvedMethod | undefined => {\n const entry = context.index.get(typeName);\n if (entry === undefined) return undefined;\n for (const klass of chainOf(context, entry)) {\n const fn = klass.methods.find(\n (method) =>\n method.introspectable &&\n method.shadowedBy === undefined &&\n toCamelIdentifier(method.name) === camelName,\n );\n if (fn !== undefined) {\n return { fn, params: inputParameters(context.library, fn).map((input) => input.parameter) };\n }\n }\n return undefined;\n};\n\nconst chainSome = (context: GirIndex, typeName: string, predicate: (klass: GirClass) => boolean): boolean => {\n const entry = context.index.get(typeName);\n if (entry === undefined) return false;\n return chainOf(context, entry).some(predicate);\n};\n\nexport const hasMethod = (context: GirIndex, typeName: string, camelName: string): boolean =>\n chainSome(context, typeName, (klass) =>\n klass.methods.some((method) => method.introspectable && toCamelIdentifier(method.name) === camelName),\n );\n\nexport const hasProperty = (context: GirIndex, typeName: string, camelName: string): boolean =>\n chainSome(context, typeName, (klass) =>\n klass.properties.some((property) => toCamelIdentifier(property.name) === camelName),\n );\n"]}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { GirClass } from "../../gir/class.js";
|
|
2
|
-
import type { Library } from "../../gir/library.js";
|
|
3
|
-
import type { GirNamespace } from "../../gir/namespace.js";
|
|
4
|
-
export declare const signalHandlerName: (signalName: string) => string;
|
|
5
|
-
export type GlibNamedClass = {
|
|
6
|
-
glibName: string;
|
|
7
|
-
klass: GirClass;
|
|
8
|
-
namespace: GirNamespace;
|
|
9
|
-
};
|
|
10
|
-
export declare function iterateClassesWithGlibName(library: Library): IterableIterator<GlibNamedClass>;
|
|
11
|
-
export type ResolvedQualifiedInterface = {
|
|
12
|
-
klass: GirClass;
|
|
13
|
-
namespace: GirNamespace;
|
|
14
|
-
};
|
|
15
|
-
export declare const implementedInterfaces: (klass: GirClass, namespace: GirNamespace, library: Library) => ResolvedQualifiedInterface[];
|
|
16
|
-
export declare const glibNameOf: (klass: GirClass) => string | undefined;
|
|
17
|
-
export declare const giNamespaceAlias: (namespaceName: string) => string;
|
|
18
|
-
export type HasContainerProps = (glibName: string | undefined) => boolean;
|
|
19
|
-
export declare const interfaceHasPropsBody: (klass: GirClass, hasContainerProps?: HasContainerProps) => boolean;
|
|
20
|
-
export declare const newlyImplementedInterfaces: (klass: GirClass, namespace: GirNamespace, library: Library, hasContainerProps?: HasContainerProps) => ResolvedQualifiedInterface[];
|
|
21
|
-
export declare const collectInterfacePropsClasses: (library: Library, intrinsicElements: GlibNamedClass[], targetNamespaceName: string, hasContainerProps?: HasContainerProps) => ResolvedQualifiedInterface[];
|
|
22
|
-
export declare const ancestorGlibNames: (klass: GirClass, namespace: GirNamespace, library: Library) => string[];
|
|
23
|
-
export declare const classExposesMethod: (klass: GirClass, namespace: GirNamespace, library: Library, methodName: string) => boolean;
|
|
24
|
-
export declare const isIntrinsicElementClass: (klass: GirClass, namespace: GirNamespace, library: Library) => boolean;
|
|
25
|
-
export declare const collectIntrinsicElementClasses: (library: Library) => GlibNamedClass[];
|
|
26
|
-
//# sourceMappingURL=intrinsic-elements.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"intrinsic-elements.d.ts","sourceRoot":"","sources":["../../../src/store/react/intrinsic-elements.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,eAAO,MAAM,iBAAiB,eAAgB,MAAM,KAAG,MAA0D,CAAC;AAElH,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,YAAY,CAAC;CAC3B,CAAC;AAEF,wBAAiB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAQ9F;AAED,MAAM,MAAM,0BAA0B,GAAG;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,YAAY,CAAA;CAAE,CAAC;AAEtF,eAAO,MAAM,qBAAqB,UACvB,QAAQ,aACJ,YAAY,WACd,OAAO,KACjB,0BAA0B,EAgB5B,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,QAAQ,KAAG,MAAM,GAAG,SAA8C,CAAC;AAErG,eAAO,MAAM,gBAAgB,kBAAmB,MAAM,KAAG,MAA6B,CAAC;AAEvF,MAAM,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC;AAI1E,eAAO,MAAM,qBAAqB,UACvB,QAAQ,sBACI,iBAAiB,KACrC,OAA0G,CAAC;AAgB9G,eAAO,MAAM,0BAA0B,UAC5B,QAAQ,aACJ,YAAY,WACd,OAAO,sBACG,iBAAiB,KACrC,0BAA0B,EAO5B,CAAC;AAEF,eAAO,MAAM,4BAA4B,YAC5B,OAAO,qBACG,cAAc,EAAE,uBACd,MAAM,sBACR,iBAAiB,KACrC,0BAA0B,EAc5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,QAAQ,aAAa,YAAY,WAAW,OAAO,KAAG,MAAM,EAOpG,CAAC;AAsBF,eAAO,MAAM,kBAAkB,UACpB,QAAQ,aACJ,YAAY,WACd,OAAO,cACJ,MAAM,KACnB,OAAmH,CAAC;AAEvH,eAAO,MAAM,uBAAuB,UAAW,QAAQ,aAAa,YAAY,WAAW,OAAO,KAAG,OACpB,CAAC;AAElF,eAAO,MAAM,8BAA8B,YAAa,OAAO,KAAG,cAAc,EAW/E,CAAC"}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { sortStringsBy, toCamelIdentifier, upperFirst } from "@gtkx/utils";
|
|
2
|
-
import { ancestorChain } from "../../gir/ancestry.js";
|
|
3
|
-
export const signalHandlerName = (signalName) => `on${upperFirst(toCamelIdentifier(signalName))}`;
|
|
4
|
-
export function* iterateClassesWithGlibName(library) {
|
|
5
|
-
for (const namespace of library.namespaces.values()) {
|
|
6
|
-
for (const klass of namespace.classes) {
|
|
7
|
-
const glibName = glibNameOf(klass);
|
|
8
|
-
if (glibName === undefined)
|
|
9
|
-
continue;
|
|
10
|
-
yield { glibName, klass, namespace };
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
export const implementedInterfaces = (klass, namespace, library) => {
|
|
15
|
-
const result = [];
|
|
16
|
-
const visited = new Set();
|
|
17
|
-
const visit = (names, fromNamespace) => {
|
|
18
|
-
for (const name of names) {
|
|
19
|
-
const resolved = library.resolveType(fromNamespace.name, name);
|
|
20
|
-
if (resolved === undefined || resolved.kind !== "interface")
|
|
21
|
-
continue;
|
|
22
|
-
const key = `${resolved.namespace.name}.${resolved.value.name}`;
|
|
23
|
-
if (visited.has(key))
|
|
24
|
-
continue;
|
|
25
|
-
visited.add(key);
|
|
26
|
-
result.push({ klass: resolved.value, namespace: resolved.namespace });
|
|
27
|
-
visit(resolved.value.prerequisites, resolved.namespace);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
visit(klass.implements, namespace);
|
|
31
|
-
return result;
|
|
32
|
-
};
|
|
33
|
-
export const glibNameOf = (klass) => klass.glibTypeName ?? klass.cType;
|
|
34
|
-
export const giNamespaceAlias = (namespaceName) => `${namespaceName}$`;
|
|
35
|
-
const noContainerProps = () => false;
|
|
36
|
-
export const interfaceHasPropsBody = (klass, hasContainerProps = noContainerProps) => klass.properties.length > 0 || klass.signals.length > 0 || hasContainerProps(glibNameOf(klass));
|
|
37
|
-
const qualifiedInterfaceKey = (iface) => `${iface.namespace.name}.${iface.klass.name}`;
|
|
38
|
-
const parentImplementedInterfaceKeys = (klass, namespace, library) => {
|
|
39
|
-
const keys = new Set();
|
|
40
|
-
if (klass.parent === undefined)
|
|
41
|
-
return keys;
|
|
42
|
-
const resolvedParent = library.resolveType(namespace.name, klass.parent);
|
|
43
|
-
if (resolvedParent === undefined || resolvedParent.kind !== "class")
|
|
44
|
-
return keys;
|
|
45
|
-
for (const iface of implementedInterfaces(resolvedParent.value, resolvedParent.namespace, library)) {
|
|
46
|
-
keys.add(qualifiedInterfaceKey(iface));
|
|
47
|
-
}
|
|
48
|
-
return keys;
|
|
49
|
-
};
|
|
50
|
-
export const newlyImplementedInterfaces = (klass, namespace, library, hasContainerProps = noContainerProps) => {
|
|
51
|
-
const inherited = parentImplementedInterfaceKeys(klass, namespace, library);
|
|
52
|
-
const own = implementedInterfaces(klass, namespace, library).filter((iface) => interfaceHasPropsBody(iface.klass, hasContainerProps) && !inherited.has(qualifiedInterfaceKey(iface)));
|
|
53
|
-
return sortStringsBy(own, qualifiedInterfaceKey);
|
|
54
|
-
};
|
|
55
|
-
export const collectInterfacePropsClasses = (library, intrinsicElements, targetNamespaceName, hasContainerProps = noContainerProps) => {
|
|
56
|
-
const seen = new Set();
|
|
57
|
-
const result = [];
|
|
58
|
-
for (const intrinsicElement of intrinsicElements) {
|
|
59
|
-
for (const iface of implementedInterfaces(intrinsicElement.klass, intrinsicElement.namespace, library)) {
|
|
60
|
-
const key = qualifiedInterfaceKey(iface);
|
|
61
|
-
if (seen.has(key))
|
|
62
|
-
continue;
|
|
63
|
-
seen.add(key);
|
|
64
|
-
if (!interfaceHasPropsBody(iface.klass, hasContainerProps))
|
|
65
|
-
continue;
|
|
66
|
-
if (iface.namespace.name !== targetNamespaceName)
|
|
67
|
-
continue;
|
|
68
|
-
result.push(iface);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return sortStringsBy(result, qualifiedInterfaceKey);
|
|
72
|
-
};
|
|
73
|
-
export const ancestorGlibNames = (klass, namespace, library) => {
|
|
74
|
-
const names = [];
|
|
75
|
-
for (const { klass: ancestor } of ancestorChain(library, klass, namespace.name)) {
|
|
76
|
-
const glibName = glibNameOf(ancestor);
|
|
77
|
-
if (glibName !== undefined)
|
|
78
|
-
names.push(glibName);
|
|
79
|
-
}
|
|
80
|
-
return names;
|
|
81
|
-
};
|
|
82
|
-
const someAncestor = (klass, namespace, library, predicate) => {
|
|
83
|
-
for (const { klass: ancestor } of ancestorChain(library, klass, namespace.name)) {
|
|
84
|
-
const glibName = glibNameOf(ancestor) ?? "";
|
|
85
|
-
if (predicate(ancestor, glibName))
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
return false;
|
|
89
|
-
};
|
|
90
|
-
const descendsFrom = (klass, namespace, library, matches) => someAncestor(klass, namespace, library, (_klass, glibName) => matches(glibName));
|
|
91
|
-
export const classExposesMethod = (klass, namespace, library, methodName) => someAncestor(klass, namespace, library, (current) => current.methods.some((m) => m.name === methodName));
|
|
92
|
-
export const isIntrinsicElementClass = (klass, namespace, library) => descendsFrom(klass, namespace, library, (glibName) => glibName === "GObject");
|
|
93
|
-
export const collectIntrinsicElementClasses = (library) => {
|
|
94
|
-
const seen = new Set();
|
|
95
|
-
const entries = [];
|
|
96
|
-
for (const candidate of iterateClassesWithGlibName(library)) {
|
|
97
|
-
const { glibName, klass, namespace } = candidate;
|
|
98
|
-
if (!isIntrinsicElementClass(klass, namespace, library))
|
|
99
|
-
continue;
|
|
100
|
-
if (seen.has(glibName))
|
|
101
|
-
continue;
|
|
102
|
-
seen.add(glibName);
|
|
103
|
-
entries.push(candidate);
|
|
104
|
-
}
|
|
105
|
-
return sortStringsBy(entries, (entry) => entry.glibName);
|
|
106
|
-
};
|
|
107
|
-
//# sourceMappingURL=intrinsic-elements.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"intrinsic-elements.js","sourceRoot":"","sources":["../../../src/store/react/intrinsic-elements.ts"],"names":[],"mappings":"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","sourcesContent":["import { sortStringsBy, toCamelIdentifier, upperFirst } from \"@gtkx/utils\";\nimport { ancestorChain } from \"../../gir/ancestry.js\";\nimport type { GirClass } from \"../../gir/class.js\";\nimport type { Library } from \"../../gir/library.js\";\nimport type { GirNamespace } from \"../../gir/namespace.js\";\n\nexport const signalHandlerName = (signalName: string): string => `on${upperFirst(toCamelIdentifier(signalName))}`;\n\nexport type GlibNamedClass = {\n glibName: string;\n klass: GirClass;\n namespace: GirNamespace;\n};\n\nexport function* iterateClassesWithGlibName(library: Library): IterableIterator<GlibNamedClass> {\n for (const namespace of library.namespaces.values()) {\n for (const klass of namespace.classes) {\n const glibName = glibNameOf(klass);\n if (glibName === undefined) continue;\n yield { glibName, klass, namespace };\n }\n }\n}\n\nexport type ResolvedQualifiedInterface = { klass: GirClass; namespace: GirNamespace };\n\nexport const implementedInterfaces = (\n klass: GirClass,\n namespace: GirNamespace,\n library: Library,\n): ResolvedQualifiedInterface[] => {\n const result: ResolvedQualifiedInterface[] = [];\n const visited = new Set<string>();\n const visit = (names: string[], fromNamespace: GirNamespace): void => {\n for (const name of names) {\n const resolved = library.resolveType(fromNamespace.name, name);\n if (resolved === undefined || resolved.kind !== \"interface\") continue;\n const key = `${resolved.namespace.name}.${resolved.value.name}`;\n if (visited.has(key)) continue;\n visited.add(key);\n result.push({ klass: resolved.value, namespace: resolved.namespace });\n visit(resolved.value.prerequisites, resolved.namespace);\n }\n };\n visit(klass.implements, namespace);\n return result;\n};\n\nexport const glibNameOf = (klass: GirClass): string | undefined => klass.glibTypeName ?? klass.cType;\n\nexport const giNamespaceAlias = (namespaceName: string): string => `${namespaceName}$`;\n\nexport type HasContainerProps = (glibName: string | undefined) => boolean;\n\nconst noContainerProps: HasContainerProps = () => false;\n\nexport const interfaceHasPropsBody = (\n klass: GirClass,\n hasContainerProps: HasContainerProps = noContainerProps,\n): boolean => klass.properties.length > 0 || klass.signals.length > 0 || hasContainerProps(glibNameOf(klass));\n\nconst qualifiedInterfaceKey = (iface: ResolvedQualifiedInterface): string =>\n `${iface.namespace.name}.${iface.klass.name}`;\n\nconst parentImplementedInterfaceKeys = (klass: GirClass, namespace: GirNamespace, library: Library): Set<string> => {\n const keys = new Set<string>();\n if (klass.parent === undefined) return keys;\n const resolvedParent = library.resolveType(namespace.name, klass.parent);\n if (resolvedParent === undefined || resolvedParent.kind !== \"class\") return keys;\n for (const iface of implementedInterfaces(resolvedParent.value, resolvedParent.namespace, library)) {\n keys.add(qualifiedInterfaceKey(iface));\n }\n return keys;\n};\n\nexport const newlyImplementedInterfaces = (\n klass: GirClass,\n namespace: GirNamespace,\n library: Library,\n hasContainerProps: HasContainerProps = noContainerProps,\n): ResolvedQualifiedInterface[] => {\n const inherited = parentImplementedInterfaceKeys(klass, namespace, library);\n const own = implementedInterfaces(klass, namespace, library).filter(\n (iface) =>\n interfaceHasPropsBody(iface.klass, hasContainerProps) && !inherited.has(qualifiedInterfaceKey(iface)),\n );\n return sortStringsBy(own, qualifiedInterfaceKey);\n};\n\nexport const collectInterfacePropsClasses = (\n library: Library,\n intrinsicElements: GlibNamedClass[],\n targetNamespaceName: string,\n hasContainerProps: HasContainerProps = noContainerProps,\n): ResolvedQualifiedInterface[] => {\n const seen = new Set<string>();\n const result: ResolvedQualifiedInterface[] = [];\n for (const intrinsicElement of intrinsicElements) {\n for (const iface of implementedInterfaces(intrinsicElement.klass, intrinsicElement.namespace, library)) {\n const key = qualifiedInterfaceKey(iface);\n if (seen.has(key)) continue;\n seen.add(key);\n if (!interfaceHasPropsBody(iface.klass, hasContainerProps)) continue;\n if (iface.namespace.name !== targetNamespaceName) continue;\n result.push(iface);\n }\n }\n return sortStringsBy(result, qualifiedInterfaceKey);\n};\n\nexport const ancestorGlibNames = (klass: GirClass, namespace: GirNamespace, library: Library): string[] => {\n const names: string[] = [];\n for (const { klass: ancestor } of ancestorChain(library, klass, namespace.name)) {\n const glibName = glibNameOf(ancestor);\n if (glibName !== undefined) names.push(glibName);\n }\n return names;\n};\n\nconst someAncestor = (\n klass: GirClass,\n namespace: GirNamespace,\n library: Library,\n predicate: (klass: GirClass, glibName: string) => boolean,\n): boolean => {\n for (const { klass: ancestor } of ancestorChain(library, klass, namespace.name)) {\n const glibName = glibNameOf(ancestor) ?? \"\";\n if (predicate(ancestor, glibName)) return true;\n }\n return false;\n};\n\nconst descendsFrom = (\n klass: GirClass,\n namespace: GirNamespace,\n library: Library,\n matches: (glibName: string) => boolean,\n): boolean => someAncestor(klass, namespace, library, (_klass, glibName) => matches(glibName));\n\nexport const classExposesMethod = (\n klass: GirClass,\n namespace: GirNamespace,\n library: Library,\n methodName: string,\n): boolean => someAncestor(klass, namespace, library, (current) => current.methods.some((m) => m.name === methodName));\n\nexport const isIntrinsicElementClass = (klass: GirClass, namespace: GirNamespace, library: Library): boolean =>\n descendsFrom(klass, namespace, library, (glibName) => glibName === \"GObject\");\n\nexport const collectIntrinsicElementClasses = (library: Library): GlibNamedClass[] => {\n const seen = new Set<string>();\n const entries: GlibNamedClass[] = [];\n for (const candidate of iterateClassesWithGlibName(library)) {\n const { glibName, klass, namespace } = candidate;\n if (!isIntrinsicElementClass(klass, namespace, library)) continue;\n if (seen.has(glibName)) continue;\n seen.add(glibName);\n entries.push(candidate);\n }\n return sortStringsBy(entries, (entry) => entry.glibName);\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../../../src/store/react/jsx.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAEH,KAAK,cAAc,EAOtB,MAAM,yBAAyB,CAAC;AAGjC,KAAK,kBAAkB,GAAG;IACtB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,iBAAiB,EAAE,cAAc,EAAE,CAAC;IACpC,0BAA0B,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC3D,CAAC;AAgCF,eAAO,MAAM,kBAAkB,oBACV,YAAY,WACpB,OAAO,WACP,kBAAkB,KAC5B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CA0C1C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsx.js","sourceRoot":"","sources":["../../../src/store/react/jsx.ts"],"names":[],"mappings":"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","sourcesContent":["import { sourceStringLiteral } from \"@gtkx/utils\";\nimport type { GirClass } from \"../../gir/class.js\";\nimport type { Library } from \"../../gir/library.js\";\nimport type { GirNamespace } from \"../../gir/namespace.js\";\nimport { renderJsDoc } from \"../../writer/doc.js\";\nimport { renderBlock } from \"../../writer/emit.js\";\nimport type { ImportsBuilder } from \"../../writer/imports.js\";\nimport type { ElementPropTypegen } from \"./element-prop-types.js\";\nimport {\n collectInterfacePropsClasses,\n type GlibNamedClass,\n giNamespaceAlias,\n glibNameOf,\n type HasContainerProps,\n interfaceHasPropsBody,\n newlyImplementedInterfaces,\n type ResolvedQualifiedInterface,\n} from \"./intrinsic-elements.js\";\nimport { buildElementPropsEntries, buildInterfacePropsEntries } from \"./props.js\";\n\ntype GenerateJsxOptions = {\n excludeNames: Set<string>;\n imports: ImportsBuilder;\n typegen: ElementPropTypegen;\n intrinsicElements: GlibNamedClass[];\n intrinsicElementByGlibName: Map<string, GlibNamedClass>;\n};\n\nconst ACCESSIBLE_INTERFACE_GLIB_NAME = \"GtkAccessible\";\n\nconst ACCESSIBLE_PROPS_NAME = \"AccessibleProps\";\n\nconst addGiNamespace = (imports: ImportsBuilder, namespaceName: string, alias: string): void => {\n if (namespaceName === \"\") return;\n imports.addNamespace(`@gtkx/gi/${namespaceName.toLowerCase()}`, alias, true);\n};\n\nconst addReactBuiltin = (imports: ImportsBuilder, name: string): void => {\n imports.addNamed(\"react\", name, true);\n};\n\nconst propLineName = (line: string): string | undefined => {\n const declaration = line.slice(line.lastIndexOf(\"\\n\") + 1);\n return declaration.split(/[?:]/, 1)[0]?.trim() || undefined;\n};\n\nconst dedupePropLines = (lines: string[]): string[] => {\n const seen = new Set<string>();\n const result: string[] = [];\n for (const line of lines) {\n const name = propLineName(line);\n if (name !== undefined && seen.has(name)) continue;\n if (name !== undefined) seen.add(name);\n result.push(line);\n }\n return result;\n};\n\nexport const generateJsxSection = (\n targetNamespace: GirNamespace,\n library: Library,\n options: GenerateJsxOptions,\n): { source: string; intrinsicCount: number } => {\n const { excludeNames, imports, typegen, intrinsicElements, intrinsicElementByGlibName } = options;\n const namespaceElements = intrinsicElements.filter((entry) => entry.namespace.name === targetNamespace.name);\n const intrinsicElementConsts = namespaceElements.filter((entry) => !excludeNames.has(entry.glibName));\n const constLines = intrinsicElementConsts.map(\n (entry) => `export const ${entry.glibName} = ${sourceStringLiteral(entry.glibName)} as const;`,\n );\n\n const isIntrinsicElementAncestor = (candidate: GirClass): boolean => {\n const candidateGlib = glibNameOf(candidate);\n return candidateGlib !== undefined && intrinsicElementByGlibName.has(candidateGlib);\n };\n addReactBuiltin(imports, \"ReactNode\");\n addReactBuiltin(imports, \"Ref\");\n\n const interfaceResult = renderInterfacePropBlocks(library, targetNamespace.name, options);\n let needsReactElement = interfaceResult.needsReactElement;\n const propBlocks: string[] = [...interfaceResult.blocks];\n\n const blockContext: RenderPropBlockContext = {\n isIntrinsicElementAncestor,\n intrinsicElementByGlibName,\n targetNamespaceName: targetNamespace.name,\n imports,\n typegen,\n hasContainerProps: interfaceResult.hasContainerProps,\n };\n for (const entry of namespaceElements) {\n const { block, objectPropNames } = renderPropBlock(library, entry, blockContext);\n if (objectPropNames.length > 0) needsReactElement = true;\n propBlocks.push(block);\n }\n if (needsReactElement) addReactBuiltin(imports, \"ReactElement\");\n\n const source = [\n constLines.join(\"\\n\"),\n \"\",\n propBlocks.join(\"\\n\\n\"),\n \"\",\n renderJsxAugmentation(namespaceElements),\n ].join(\"\\n\");\n return { source, intrinsicCount: intrinsicElementConsts.length };\n};\n\ntype InterfaceBlockContext = {\n library: Library;\n targetNamespaceName: string;\n imports: ImportsBuilder;\n typegen: ElementPropTypegen;\n hasContainerProps: HasContainerProps;\n};\n\nconst renderInterfacePropBlocks = (\n library: Library,\n targetNamespaceName: string,\n options: GenerateJsxOptions,\n): { blocks: string[]; needsReactElement: boolean; hasContainerProps: HasContainerProps } => {\n const { imports, typegen, intrinsicElements } = options;\n const hasContainerProps: HasContainerProps = (glibName) =>\n glibName !== undefined && typegen.containerPropNamesFor(glibName).length > 0;\n const context: InterfaceBlockContext = { library, targetNamespaceName, imports, typegen, hasContainerProps };\n const blocks: string[] = [];\n let needsReactElement = false;\n for (const iface of collectInterfacePropsClasses(\n library,\n intrinsicElements,\n targetNamespaceName,\n hasContainerProps,\n )) {\n if (glibNameOf(iface.klass) === undefined) continue;\n const { block, objectPropNames } = renderInterfacePropsBlock(iface, context);\n if (objectPropNames.length > 0) needsReactElement = true;\n blocks.push(block);\n }\n return { blocks, needsReactElement, hasContainerProps };\n};\n\nconst registerCrossNsProps = (\n imports: ImportsBuilder,\n targetNamespaceName: string,\n namespaceName: string,\n propsName: string,\n): void => {\n if (namespaceName === targetNamespaceName) return;\n imports.addNamed(`@gtkx/jsx/${namespaceName.toLowerCase()}`, propsName, true);\n};\n\nconst interfacePropsRef = (\n iface: ResolvedQualifiedInterface,\n targetNamespaceName: string,\n imports: ImportsBuilder,\n): string | undefined => {\n const glib = glibNameOf(iface.klass);\n if (glib === undefined) return undefined;\n registerCrossNsProps(imports, targetNamespaceName, iface.namespace.name, `${glib}Props`);\n return `${glib}Props<Self>`;\n};\n\nconst interfacePrerequisiteExtends = (iface: ResolvedQualifiedInterface, context: InterfaceBlockContext): string[] => {\n const { library, targetNamespaceName, imports, hasContainerProps } = context;\n const refs: string[] = [];\n for (const prerequisiteName of iface.klass.prerequisites) {\n const resolved = library.resolveType(iface.namespace.name, prerequisiteName);\n if (resolved === undefined || resolved.kind !== \"interface\") continue;\n if (!interfaceHasPropsBody(resolved.value, hasContainerProps)) continue;\n const ref = interfacePropsRef(\n { klass: resolved.value, namespace: resolved.namespace },\n targetNamespaceName,\n imports,\n );\n if (ref !== undefined) refs.push(ref);\n }\n return refs;\n};\n\nconst renderInterfacePropsBlock = (\n iface: ResolvedQualifiedInterface,\n context: InterfaceBlockContext,\n): { block: string; objectPropNames: string[] } => {\n const { library, imports, typegen } = context;\n const glib = glibNameOf(iface.klass);\n const {\n propLines,\n imports: propImports,\n objectPropNames,\n } = buildInterfacePropsEntries({\n library,\n iface: iface.klass,\n namespace: iface.namespace,\n });\n for (const [namespace, alias] of propImports) addGiNamespace(imports, namespace, alias);\n const containerPropNames = glib === undefined ? [] : typegen.containerPropNamesFor(glib);\n const containerPropLines = containerPropNames.map((propName) => `${propName}?: ReactNode | null | undefined;`);\n const ownerLines = dedupePropLines([...propLines, ...containerPropLines]);\n const prerequisiteExtends = interfacePrerequisiteExtends(iface, context);\n if (glib === ACCESSIBLE_INTERFACE_GLIB_NAME) {\n imports.addNamed(\"@gtkx/react\", ACCESSIBLE_PROPS_NAME, true);\n prerequisiteExtends.push(ACCESSIBLE_PROPS_NAME);\n }\n const extendsClause = prerequisiteExtends.length === 0 ? \"\" : ` extends ${prerequisiteExtends.join(\", \")}`;\n addGiNamespace(imports, iface.namespace.name, giNamespaceAlias(iface.namespace.name));\n const selfDefault = `${giNamespaceAlias(iface.namespace.name)}.${iface.klass.name}`;\n const block = `${renderJsDoc(iface.klass.doc)}${renderBlock(\n `export interface ${glib}Props<Self = ${selfDefault}>${extendsClause}`,\n ownerLines.join(\"\\n\"),\n )}`;\n return { block, objectPropNames };\n};\n\nconst renderJsxAugmentation = (namespaceElements: GlibNamedClass[]): string => {\n const elementLines = namespaceElements.map((entry) => `${entry.glibName}: ${entry.glibName}Props;`).join(\"\\n\");\n const intrinsicInterface = renderBlock(\"interface IntrinsicElements\", elementLines);\n const reactJsxNamespace = renderBlock(\"namespace React.JSX\", intrinsicInterface);\n return renderBlock(\"declare global\", reactJsxNamespace);\n};\n\ntype RenderPropBlockContext = {\n isIntrinsicElementAncestor: (candidate: GirClass) => boolean;\n intrinsicElementByGlibName: Map<string, GlibNamedClass>;\n targetNamespaceName: string;\n imports: ImportsBuilder;\n typegen: ElementPropTypegen;\n hasContainerProps: (glibName: string | undefined) => boolean;\n};\n\nconst renderPropBlock = (\n library: Library,\n entry: GlibNamedClass,\n context: RenderPropBlockContext,\n): { block: string; objectPropNames: string[] } => {\n const containerPropNames = context.typegen.containerPropNamesFor(entry.glibName);\n const { propLines, imports, objectPropNames } = buildElementPropsEntries({\n library,\n klass: entry.klass,\n namespace: entry.namespace,\n isIntrinsicElementAncestor: context.isIntrinsicElementAncestor,\n });\n for (const [namespace, alias] of imports) addGiNamespace(context.imports, namespace, alias);\n addGiNamespace(context.imports, entry.namespace.name, giNamespaceAlias(entry.namespace.name));\n const elementPropImports = new Map<string, string>();\n const elementPropLines = context.typegen.classPropLines(\n entry.glibName,\n entry.klass,\n entry.namespace,\n elementPropImports,\n );\n for (const [namespace, alias] of elementPropImports) addGiNamespace(context.imports, namespace, alias);\n const containerPropLines = containerPropNames.map((propName) => `${propName}?: ReactNode | null | undefined;`);\n const ownerLines = dedupePropLines([\n ...(context.typegen.acceptsChildren(entry.glibName) ? [\"children?: ReactNode;\"] : []),\n \"ref?: Ref<Self | null> | undefined;\",\n ...propLines,\n ...containerPropLines,\n ...elementPropLines,\n ]);\n const extendsList = resolveElementExtends(library, entry, context);\n const extendsClause = extendsList.length === 0 ? \"\" : ` extends ${extendsList.join(\", \")}`;\n const selfDefault = `${giNamespaceAlias(entry.namespace.name)}.${entry.klass.name}`;\n const block = `${renderJsDoc(entry.klass.doc)}${renderBlock(\n `export interface ${entry.glibName}Props<Self = ${selfDefault}>${extendsClause}`,\n ownerLines.join(\"\\n\"),\n )}`;\n return { block, objectPropNames };\n};\n\nconst resolveElementExtends = (library: Library, entry: GlibNamedClass, context: RenderPropBlockContext): string[] => {\n const extendsList: string[] = [];\n const parentRef = resolveParentPropsRef(library, entry, context);\n if (parentRef !== undefined) extendsList.push(parentRef);\n for (const iface of newlyImplementedInterfaces(entry.klass, entry.namespace, library, context.hasContainerProps)) {\n const ref = interfacePropsRef(iface, context.targetNamespaceName, context.imports);\n if (ref !== undefined) extendsList.push(ref);\n }\n return extendsList;\n};\n\nconst resolveParentPropsRef = (\n library: Library,\n entry: GlibNamedClass,\n context: RenderPropBlockContext,\n): string | undefined => {\n const parent = entry.klass.parent;\n if (parent === undefined) return undefined;\n const resolved = library.resolveType(entry.namespace.name, parent);\n if (resolved === undefined) return undefined;\n if (resolved.kind !== \"class\" && resolved.kind !== \"interface\") return undefined;\n const parentGlib = glibNameOf(resolved.value);\n if (parentGlib === undefined) return undefined;\n if (!context.intrinsicElementByGlibName.has(parentGlib)) return undefined;\n registerCrossNsProps(context.imports, context.targetNamespaceName, resolved.namespace.name, `${parentGlib}Props`);\n return `${parentGlib}Props<Self>`;\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/store/react/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAKhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAWpD,eAAO,MAAM,gBAAgB,YAAa,OAAO,gBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,KAAG,MAsBhG,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/store/react/metadata.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ElementProp } from \"@gtkx/config\";\nimport { sortStringsBy, sourceStringLiteral, toCamelIdentifier } from \"@gtkx/utils\";\nimport { inputParameters } from \"../../analysis/param-structure.js\";\nimport type { GirClass } from \"../../gir/class.js\";\nimport type { GirEnum } from \"../../gir/enum.js\";\nimport type { Library } from \"../../gir/library.js\";\nimport type { PrimitiveCategory } from \"../../gir/primitives.js\";\nimport { type GirProperty, isConstructableProperty } from \"../../gir/property.js\";\nimport type { TypeId } from \"../../gir/type-id.js\";\nimport {\n implementedInterfaces,\n isIntrinsicElementClass,\n iterateClassesWithGlibName,\n signalHandlerName,\n} from \"./intrinsic-elements.js\";\n\nexport const generateMetadata = (library: Library, elementProps: Record<string, ElementProp[]>): string => {\n const intrinsicElements = collectIntrinsicElements(library);\n const signalsEntries = intrinsicElements.map(\n ({ glibName, signals }) => ` \"${glibName}\": ${renderSignalsObject(signals)},`,\n );\n const constructOnlyEntries = intrinsicElements\n .filter(({ constructOnly }) => constructOnly.length > 0)\n .map(({ glibName, constructOnly }) => ` \"${glibName}\": ${renderStringSet(constructOnly)},`);\n const constructableEntries = intrinsicElements\n .filter(({ constructable }) => constructable.length > 0)\n .map(({ glibName, constructable }) => ` \"${glibName}\": ${renderStringSet(constructable)},`);\n const defaultsEntries = intrinsicElements\n .filter(({ defaults }) => defaults.length > 0)\n .map(({ glibName, defaults }) => ` \"${glibName}\": ${renderDefaultsObject(defaults)},`);\n\n return `${[\n `export const SIGNALS: Record<string, Record<string, string>> = {\\n${signalsEntries.join(\"\\n\")}\\n};`,\n `export const CONSTRUCT_ONLY_PROPS: Record<string, Set<string>> = {\\n${constructOnlyEntries.join(\"\\n\")}\\n};`,\n `export const CONSTRUCT_PROPS: Record<string, Set<string>> = {\\n${constructableEntries.join(\"\\n\")}\\n};`,\n `export const DEFAULT_PROPS: Record<string, Record<string, unknown>> = {\\n${defaultsEntries.join(\"\\n\")}\\n};`,\n `export const ELEMENT_PROPS: Record<string, Array<import(\"@gtkx/react\").ElementProp>> = ${JSON.stringify(elementProps, null, 4)};`,\n ].join(\"\\n\\n\")}\\n`;\n};\n\ntype IntrinsicElementEntry = {\n glibName: string;\n signals: [string, string][];\n constructOnly: string[];\n constructable: string[];\n defaults: [string, string][];\n};\n\nconst collectIntrinsicElements = (library: Library): IntrinsicElementEntry[] => {\n const entries: IntrinsicElementEntry[] = [];\n for (const { glibName, klass, namespace } of iterateClassesWithGlibName(library)) {\n if (!isIntrinsicElementClass(klass, namespace, library)) continue;\n const sources: GirClass[] = [\n klass,\n ...implementedInterfaces(klass, namespace, library).map((entry) => entry.klass),\n ];\n entries.push({\n glibName,\n signals: collectSignals(sources),\n constructOnly: collectConstructOnly(sources),\n constructable: collectConstructable(sources),\n defaults: collectDefaultProps(library, sources),\n });\n }\n return sortStringsBy(entries, (entry) => entry.glibName);\n};\n\nconst collectSignals = (sources: GirClass[]): [string, string][] => {\n const seen = new Set<string>();\n const signals: [string, string][] = [];\n for (const source of sources) {\n for (const signal of source.signals) {\n const handlerName = signalHandlerName(signal.name);\n if (seen.has(handlerName)) continue;\n seen.add(handlerName);\n signals.push([handlerName, signal.name] as const);\n }\n }\n return signals;\n};\n\nconst collectPropNames = (sources: GirClass[], keep: (property: GirProperty) => boolean): string[] => {\n const seen = new Set<string>();\n const names: string[] = [];\n for (const source of sources) {\n for (const property of source.properties) {\n if (!keep(property)) continue;\n const jsName = toCamelIdentifier(property.name);\n if (seen.has(jsName)) continue;\n seen.add(jsName);\n names.push(jsName);\n }\n }\n return names;\n};\n\nconst collectConstructOnly = (sources: GirClass[]): string[] =>\n collectPropNames(sources, (property) => property.constructOnly && property.introspectable);\n\nconst collectConstructable = (sources: GirClass[]): string[] => collectPropNames(sources, isConstructableProperty);\n\nconst renderObjectLiteral = (entries: [string, string][], renderValue: (value: string) => string): string => {\n if (entries.length === 0) return \"{}\";\n const lines = entries.map(([key, value]) => ` ${sourceStringLiteral(key)}: ${renderValue(value)}`);\n return `{\\n${lines.join(\",\\n\")}\\n }`;\n};\n\nconst renderStringSet = (names: string[]): string => `new Set([${names.map(sourceStringLiteral).join(\",\")}])`;\n\nconst renderSignalsObject = (entries: [string, string][]): string => renderObjectLiteral(entries, sourceStringLiteral);\n\nconst collectDefaultProps = (library: Library, sources: GirClass[]): [string, string][] => {\n const seen = new Set<string>();\n const defaults: [string, string][] = [];\n for (const klass of sources) {\n for (const property of klass.properties) {\n const settable = (property.writable || property.construct) && !property.constructOnly;\n if (!settable || !property.introspectable) continue;\n const jsName = toCamelIdentifier(property.name);\n if (seen.has(jsName)) continue;\n seen.add(jsName);\n const literal = renderDefaultLiteral(library, klass, property);\n if (literal === undefined) continue;\n defaults.push([jsName, literal] as const);\n }\n }\n return defaults;\n};\n\nconst setterRejectsNull = (library: Library, klass: GirClass, property: GirProperty): boolean => {\n if (property.setter === undefined) return false;\n const setter = klass.methods.find((method) => method.name === property.setter);\n if (setter === undefined) return false;\n const [value] = inputParameters(library, setter);\n return value !== undefined && !value.parameter.nullable && !value.parameter.optional;\n};\n\nconst renderDefaultLiteral = (library: Library, klass: GirClass, property: GirProperty): string | undefined => {\n if (property.defaultValue === \"NULL\" && setterRejectsNull(library, klass, property)) return undefined;\n return resolveDefaultLiteral(library, property.type, property.defaultValue);\n};\n\nconst resolveDefaultLiteral = (\n library: Library,\n ref: TypeId | undefined,\n raw: string | undefined,\n): string | undefined => {\n if (raw === undefined) return undefined;\n if (raw === \"NULL\") return \"null\";\n if (ref === undefined) return undefined;\n const resolved = library.typeOf(ref);\n if (resolved === undefined) return undefined;\n if (resolved.kind === \"primitive\") return primitiveDefaultLiteral(resolved.category, raw);\n if (resolved.kind === \"enum\") return enumDefaultLiteral(resolved.value, raw);\n if (resolved.kind === \"alias\") return resolveDefaultLiteral(library, resolved.value.target, raw);\n return undefined;\n};\n\nconst INTEGER_PATTERN = /^-?\\d+$/;\n\nconst primitiveDefaultLiteral = (category: PrimitiveCategory, raw: string): string | undefined => {\n switch (category) {\n case \"boolean\":\n if (raw === \"TRUE\") return \"true\";\n if (raw === \"FALSE\") return \"false\";\n return undefined;\n case \"int8\":\n case \"int16\":\n case \"int32\":\n case \"uint8\":\n case \"uint16\":\n case \"uint32\":\n case \"int64\":\n case \"uint64\":\n case \"unichar\":\n return INTEGER_PATTERN.test(raw.trim()) ? raw.trim() : undefined;\n case \"float32\":\n case \"float64\": {\n const value = Number.parseFloat(raw);\n return Number.isFinite(value) ? String(value) : undefined;\n }\n case \"string\":\n return sourceStringLiteral(raw);\n default:\n return undefined;\n }\n};\n\nconst enumDefaultLiteral = (enumType: GirEnum, raw: string): string | undefined => {\n const trimmed = raw.trim();\n if (INTEGER_PATTERN.test(trimmed)) return trimmed;\n const member = enumType.members.find((entry) => entry.cIdentifier === trimmed || entry.name === trimmed);\n return member?.value;\n};\n\nconst renderDefaultsObject = (entries: [string, string][]): string =>\n renderObjectLiteral(entries, (literal) => literal);\n"]}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { ElementProp } from "@gtkx/config";
|
|
2
|
-
import type { Library } from "../../gir/library.js";
|
|
3
|
-
export type JsxNamespaceFile = {
|
|
4
|
-
directory: string;
|
|
5
|
-
source: string;
|
|
6
|
-
};
|
|
7
|
-
type JsxFiles = {
|
|
8
|
-
namespaces: JsxNamespaceFile[];
|
|
9
|
-
metadata: string;
|
|
10
|
-
intrinsicElementCount: number;
|
|
11
|
-
};
|
|
12
|
-
export declare const generateJsxFiles: (library: Library, userElementProps?: Record<string, ElementProp[]>) => JsxFiles;
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../src/store/react/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAWpD,MAAM,MAAM,gBAAgB,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,QAAQ,GAAG;IACZ,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,YAAa,OAAO,qBAAqB,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,KAAG,QA2BrG,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/store/react/pipeline.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ElementProp } from \"@gtkx/config\";\nimport { sortStringsBy } from \"@gtkx/utils\";\nimport type { Library } from \"../../gir/library.js\";\nimport { type GirNamespace, namespaceDirectory } from \"../../gir/namespace.js\";\nimport { ImportsBuilder } from \"../../writer/imports.js\";\nimport { generateElementComponentsSection } from \"./element-components.js\";\nimport { createElementPropTypegen, type ElementPropTypegen } from \"./element-prop-types.js\";\nimport { assembleElementProps } from \"./element-props.js\";\nimport { buildGirIndex } from \"./gir-index.js\";\nimport { collectIntrinsicElementClasses, type GlibNamedClass } from \"./intrinsic-elements.js\";\nimport { generateJsxSection } from \"./jsx.js\";\nimport { generateMetadata } from \"./metadata.js\";\n\nexport type JsxNamespaceFile = {\n directory: string;\n source: string;\n};\n\ntype JsxFiles = {\n namespaces: JsxNamespaceFile[];\n metadata: string;\n intrinsicElementCount: number;\n};\n\nexport const generateJsxFiles = (library: Library, userElementProps?: Record<string, ElementProp[]>): JsxFiles => {\n const intrinsicElements = collectIntrinsicElementClasses(library);\n const intrinsicElementByGlibName = new Map(intrinsicElements.map((entry) => [entry.glibName, entry]));\n const namespacesWithIntrinsicElements = new Map<string, GirNamespace>();\n for (const entry of intrinsicElements) {\n namespacesWithIntrinsicElements.set(entry.namespace.name, entry.namespace);\n }\n\n const girIndex = buildGirIndex(library);\n const elementProps = assembleElementProps(girIndex, userElementProps ?? {});\n const typegen = createElementPropTypegen(girIndex, elementProps);\n\n const namespaces: JsxNamespaceFile[] = [];\n let intrinsicElementCount = 0;\n for (const namespace of sortStringsBy(namespacesWithIntrinsicElements.values(), (entry) => entry.name)) {\n const { source, count } = generateJsxNamespace(namespace, library, {\n typegen,\n intrinsicElements,\n intrinsicElementByGlibName,\n });\n namespaces.push({ directory: namespaceDirectory(namespace), source });\n intrinsicElementCount += count;\n }\n\n const metadata = generateMetadata(library, elementProps);\n\n return { namespaces, metadata, intrinsicElementCount };\n};\n\ntype JsxNamespaceContext = {\n typegen: ElementPropTypegen;\n intrinsicElements: GlibNamedClass[];\n intrinsicElementByGlibName: Map<string, GlibNamedClass>;\n};\n\nconst generateJsxNamespace = (\n targetNamespace: GirNamespace,\n library: Library,\n context: JsxNamespaceContext,\n): { source: string; count: number } => {\n const { typegen, intrinsicElements, intrinsicElementByGlibName } = context;\n const targetDirectory = namespaceDirectory(targetNamespace);\n const imports = new ImportsBuilder();\n imports.addSideEffect(`@gtkx/gi/${targetDirectory}`);\n\n const elementComponents = generateElementComponentsSection(targetNamespace, library, {\n imports,\n typegen,\n intrinsicElements,\n intrinsicElementByGlibName,\n });\n const excludeNames = new Set<string>(elementComponents.exportedNames);\n const { source: jsxSection, intrinsicCount } = generateJsxSection(targetNamespace, library, {\n excludeNames,\n imports,\n typegen,\n intrinsicElements,\n intrinsicElementByGlibName,\n });\n\n const body = [imports.toSource().trimEnd(), \"\", jsxSection];\n if (elementComponents.source.length > 0) body.push(\"\", elementComponents.source);\n\n const count = elementComponents.exportedNames.size + intrinsicCount;\n return { source: `${body.join(\"\\n\")}\\n`, count };\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/store/react/props.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,uBAAuB,CAAC;AAUlF,KAAK,4BAA4B,GAAG;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,YAAY,CAAC;IACxB,0BAA0B,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,KAAK,OAAO,CAAC;CACjE,CAAC;AAEF,KAAK,qBAAqB,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAAC;AAsDF,eAAO,MAAM,wBAAwB,YAAa,4BAA4B,KAAG,4BAYhF,CAAC;AAEF,KAAK,qBAAqB,GAAG;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,YAAY,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,0BAA0B,YAAa,qBAAqB,KAAG,4BAM3E,CAAC;AA6BF,KAAK,SAAS,GAAG;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,YAAY,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,SAAS,YAAY,WAAW,UAAU,MAAM,KAAG,OAOtF,CAAC;AAkBF,eAAO,MAAM,WAAW,YAAa,qBAAqB,KAAG,YAiB3D,CAAC"}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { toCamelIdentifier, upperFirst } from "@gtkx/utils";
|
|
2
|
-
import { forEachAncestor } from "../../analysis/inheritance.js";
|
|
3
|
-
import { renderHandlerParameters, renderHandlerResultType } from "../../analysis/param-structure.js";
|
|
4
|
-
import { renderBaseTypeFor } from "../../analysis/ts-type.js";
|
|
5
|
-
import { isConstructableProperty } from "../../gir/property.js";
|
|
6
|
-
import { renderJsDoc } from "../../writer/doc.js";
|
|
7
|
-
import { classExposesMethod, giNamespaceAlias, isIntrinsicElementClass, signalHandlerName, } from "./intrinsic-elements.js";
|
|
8
|
-
const createPropEntryCollector = (owner) => {
|
|
9
|
-
const { library } = owner;
|
|
10
|
-
const imports = new Map();
|
|
11
|
-
const types = { library, imports };
|
|
12
|
-
const propLines = [];
|
|
13
|
-
const objectPropNames = [];
|
|
14
|
-
const seen = new Set();
|
|
15
|
-
const acceptProperty = (property) => {
|
|
16
|
-
if (!property.introspectable)
|
|
17
|
-
return;
|
|
18
|
-
const jsName = toCamelIdentifier(property.name);
|
|
19
|
-
if (seen.has(jsName))
|
|
20
|
-
return;
|
|
21
|
-
seen.add(jsName);
|
|
22
|
-
const tsType = renderReactPropType(types, property.type, false);
|
|
23
|
-
const doc = renderJsDoc(property.doc);
|
|
24
|
-
if (isObjectProp(owner, property, jsName)) {
|
|
25
|
-
propLines.push(`${doc}${jsName}?: ${tsType} | ReactElement | null | undefined;`);
|
|
26
|
-
objectPropNames.push(jsName);
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
const settable = isConstructableProperty(property);
|
|
30
|
-
if (settable)
|
|
31
|
-
propLines.push(`${doc}${jsName}?: ${tsType} | null | undefined;`);
|
|
32
|
-
propLines.push(`${settable ? "" : doc}onNotify${upperFirst(jsName)}?: ((value: ${tsType} | null, self: Self) => void) | null | undefined;`);
|
|
33
|
-
};
|
|
34
|
-
const acceptSignal = (signal) => {
|
|
35
|
-
const handlerName = signalHandlerName(signal.name);
|
|
36
|
-
if (seen.has(handlerName))
|
|
37
|
-
return;
|
|
38
|
-
seen.add(handlerName);
|
|
39
|
-
const signature = renderSignalHandler({ types, signal, selfType: "Self" });
|
|
40
|
-
propLines.push(`${renderJsDoc(signal.doc)}${handlerName}?: (${signature}) | undefined;`);
|
|
41
|
-
};
|
|
42
|
-
return { propLines, imports, objectPropNames, acceptProperty, acceptSignal };
|
|
43
|
-
};
|
|
44
|
-
export const buildElementPropsEntries = (options) => {
|
|
45
|
-
const { library, klass, namespace, isIntrinsicElementAncestor = () => false } = options;
|
|
46
|
-
const collector = createPropEntryCollector({ library, klass, namespace });
|
|
47
|
-
walkIntrinsicElementMembers({
|
|
48
|
-
library,
|
|
49
|
-
klass,
|
|
50
|
-
namespace,
|
|
51
|
-
isIntrinsicElementAncestor,
|
|
52
|
-
acceptProperty: collector.acceptProperty,
|
|
53
|
-
acceptSignal: collector.acceptSignal,
|
|
54
|
-
});
|
|
55
|
-
return { propLines: collector.propLines, imports: collector.imports, objectPropNames: collector.objectPropNames };
|
|
56
|
-
};
|
|
57
|
-
export const buildInterfacePropsEntries = (options) => {
|
|
58
|
-
const { library, iface, namespace } = options;
|
|
59
|
-
const collector = createPropEntryCollector({ library, klass: iface, namespace });
|
|
60
|
-
for (const property of iface.properties)
|
|
61
|
-
collector.acceptProperty(property);
|
|
62
|
-
for (const signal of iface.signals)
|
|
63
|
-
collector.acceptSignal(signal);
|
|
64
|
-
return { propLines: collector.propLines, imports: collector.imports, objectPropNames: collector.objectPropNames };
|
|
65
|
-
};
|
|
66
|
-
const walkIntrinsicElementMembers = (walk) => {
|
|
67
|
-
const { library, klass, namespace, isIntrinsicElementAncestor, acceptProperty, acceptSignal } = walk;
|
|
68
|
-
const visitMembers = (memberClass) => {
|
|
69
|
-
for (const property of memberClass.properties)
|
|
70
|
-
acceptProperty(property);
|
|
71
|
-
for (const signal of memberClass.signals)
|
|
72
|
-
acceptSignal(signal);
|
|
73
|
-
};
|
|
74
|
-
const ancestry = { library, namespace };
|
|
75
|
-
visitMembers(klass);
|
|
76
|
-
forEachAncestor(ancestry, klass, (ancestor) => visitMembers(ancestor.klass), isIntrinsicElementAncestor);
|
|
77
|
-
};
|
|
78
|
-
const resolvesToGObjectClass = (library, ref) => {
|
|
79
|
-
if (ref === undefined)
|
|
80
|
-
return false;
|
|
81
|
-
const resolved = library.typeOf(ref);
|
|
82
|
-
if (resolved?.kind !== "class")
|
|
83
|
-
return false;
|
|
84
|
-
return isIntrinsicElementClass(resolved.value, resolved.namespace, library);
|
|
85
|
-
};
|
|
86
|
-
export const isObjectProp = (owner, property, jsName) => {
|
|
87
|
-
if (!property.writable || property.constructOnly)
|
|
88
|
-
return false;
|
|
89
|
-
if (!resolvesToGObjectClass(owner.library, property.type))
|
|
90
|
-
return false;
|
|
91
|
-
if (jsName === "child" && classExposesMethod(owner.klass, owner.namespace, owner.library, "set_child")) {
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
return true;
|
|
95
|
-
};
|
|
96
|
-
const renderSignalHandler = (options) => {
|
|
97
|
-
const { types, signal, selfType } = options;
|
|
98
|
-
const params = [
|
|
99
|
-
...renderHandlerParameters(signal.parameters, (ref, nullable) => renderReactPropType(types, ref, nullable)),
|
|
100
|
-
`self: ${selfType}`,
|
|
101
|
-
];
|
|
102
|
-
const result = renderHandlerResultType({
|
|
103
|
-
library: types.library,
|
|
104
|
-
signal,
|
|
105
|
-
renderType: (ref, nullable) => renderReactPropType(types, ref, nullable),
|
|
106
|
-
includeCallerAllocated: false,
|
|
107
|
-
optOut: true,
|
|
108
|
-
});
|
|
109
|
-
return `(${params.join(", ")}) => ${result}`;
|
|
110
|
-
};
|
|
111
|
-
export const reactTarget = (context) => ({
|
|
112
|
-
containerStyle: "record",
|
|
113
|
-
callbackType: "((...args: unknown[]) => unknown)",
|
|
114
|
-
byteArrayAsNumber: false,
|
|
115
|
-
renderNamed: (resolved, name) => {
|
|
116
|
-
if (resolved?.kind === "alias") {
|
|
117
|
-
return resolved.value.target === undefined
|
|
118
|
-
? "number"
|
|
119
|
-
: renderBaseTypeFor(context.library, reactTarget(context), resolved.value.target);
|
|
120
|
-
}
|
|
121
|
-
context.imports.set(name.namespaceName, giNamespaceAlias(name.namespaceName));
|
|
122
|
-
return `${giNamespaceAlias(name.namespaceName)}.${name.typeName}`;
|
|
123
|
-
},
|
|
124
|
-
renderGtype: () => {
|
|
125
|
-
context.imports.set("GObject", giNamespaceAlias("GObject"));
|
|
126
|
-
return `${giNamespaceAlias("GObject")}.Type`;
|
|
127
|
-
},
|
|
128
|
-
});
|
|
129
|
-
const renderReactPropType = (context, ref, isNullable) => {
|
|
130
|
-
const base = renderBaseTypeFor(context.library, reactTarget(context), ref);
|
|
131
|
-
return isNullable ? `${base} | null` : base;
|
|
132
|
-
};
|
|
133
|
-
//# sourceMappingURL=props.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../../src/store/react/props.ts"],"names":[],"mappings":"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","sourcesContent":["import { toCamelIdentifier, upperFirst } from \"@gtkx/utils\";\nimport { forEachAncestor } from \"../../analysis/inheritance.js\";\nimport { renderHandlerParameters, renderHandlerResultType } from \"../../analysis/param-structure.js\";\nimport { renderBaseTypeFor, type TsTypeTarget } from \"../../analysis/ts-type.js\";\nimport type { GirClass } from \"../../gir/class.js\";\nimport type { Library } from \"../../gir/library.js\";\nimport type { GirNamespace } from \"../../gir/namespace.js\";\nimport type { GirSignal } from \"../../gir/parameter.js\";\nimport { type GirProperty, isConstructableProperty } from \"../../gir/property.js\";\nimport type { TypeId } from \"../../gir/type-id.js\";\nimport { renderJsDoc } from \"../../writer/doc.js\";\nimport {\n classExposesMethod,\n giNamespaceAlias,\n isIntrinsicElementClass,\n signalHandlerName,\n} from \"./intrinsic-elements.js\";\n\ntype IntrinsicElementPropsEntries = {\n propLines: string[];\n imports: Map<string, string>;\n objectPropNames: string[];\n};\n\ntype IntrinsicElementPropsOptions = {\n library: Library;\n klass: GirClass;\n namespace: GirNamespace;\n isIntrinsicElementAncestor?: (candidate: GirClass) => boolean;\n};\n\ntype PropTypeRenderContext = {\n library: Library;\n imports: Map<string, string>;\n};\n\ntype SignalRenderOptions = {\n types: PropTypeRenderContext;\n signal: GirSignal;\n selfType: string;\n};\n\ntype PropEntryCollector = {\n propLines: string[];\n imports: Map<string, string>;\n objectPropNames: string[];\n acceptProperty: (property: GirProperty) => void;\n acceptSignal: (signal: GirSignal) => void;\n};\n\nconst createPropEntryCollector = (owner: PropOwner): PropEntryCollector => {\n const { library } = owner;\n const imports = new Map<string, string>();\n const types: PropTypeRenderContext = { library, imports };\n const propLines: string[] = [];\n const objectPropNames: string[] = [];\n const seen = new Set<string>();\n\n const acceptProperty = (property: GirProperty): void => {\n if (!property.introspectable) return;\n const jsName = toCamelIdentifier(property.name);\n if (seen.has(jsName)) return;\n seen.add(jsName);\n const tsType = renderReactPropType(types, property.type, false);\n const doc = renderJsDoc(property.doc);\n if (isObjectProp(owner, property, jsName)) {\n propLines.push(`${doc}${jsName}?: ${tsType} | ReactElement | null | undefined;`);\n objectPropNames.push(jsName);\n return;\n }\n const settable = isConstructableProperty(property);\n if (settable) propLines.push(`${doc}${jsName}?: ${tsType} | null | undefined;`);\n propLines.push(\n `${settable ? \"\" : doc}onNotify${upperFirst(jsName)}?: ((value: ${tsType} | null, self: Self) => void) | null | undefined;`,\n );\n };\n\n const acceptSignal = (signal: GirSignal): void => {\n const handlerName = signalHandlerName(signal.name);\n if (seen.has(handlerName)) return;\n seen.add(handlerName);\n const signature = renderSignalHandler({ types, signal, selfType: \"Self\" });\n propLines.push(`${renderJsDoc(signal.doc)}${handlerName}?: (${signature}) | undefined;`);\n };\n\n return { propLines, imports, objectPropNames, acceptProperty, acceptSignal };\n};\n\nexport const buildElementPropsEntries = (options: IntrinsicElementPropsOptions): IntrinsicElementPropsEntries => {\n const { library, klass, namespace, isIntrinsicElementAncestor = () => false } = options;\n const collector = createPropEntryCollector({ library, klass, namespace });\n walkIntrinsicElementMembers({\n library,\n klass,\n namespace,\n isIntrinsicElementAncestor,\n acceptProperty: collector.acceptProperty,\n acceptSignal: collector.acceptSignal,\n });\n return { propLines: collector.propLines, imports: collector.imports, objectPropNames: collector.objectPropNames };\n};\n\ntype InterfacePropsOptions = {\n library: Library;\n iface: GirClass;\n namespace: GirNamespace;\n};\n\nexport const buildInterfacePropsEntries = (options: InterfacePropsOptions): IntrinsicElementPropsEntries => {\n const { library, iface, namespace } = options;\n const collector = createPropEntryCollector({ library, klass: iface, namespace });\n for (const property of iface.properties) collector.acceptProperty(property);\n for (const signal of iface.signals) collector.acceptSignal(signal);\n return { propLines: collector.propLines, imports: collector.imports, objectPropNames: collector.objectPropNames };\n};\n\ntype IntrinsicElementMemberWalk = {\n library: Library;\n klass: GirClass;\n namespace: GirNamespace;\n isIntrinsicElementAncestor: (candidate: GirClass) => boolean;\n acceptProperty: (property: GirProperty) => void;\n acceptSignal: (signal: GirSignal) => void;\n};\n\nconst walkIntrinsicElementMembers = (walk: IntrinsicElementMemberWalk): void => {\n const { library, klass, namespace, isIntrinsicElementAncestor, acceptProperty, acceptSignal } = walk;\n const visitMembers = (memberClass: GirClass): void => {\n for (const property of memberClass.properties) acceptProperty(property);\n for (const signal of memberClass.signals) acceptSignal(signal);\n };\n const ancestry = { library, namespace };\n visitMembers(klass);\n forEachAncestor(ancestry, klass, (ancestor) => visitMembers(ancestor.klass), isIntrinsicElementAncestor);\n};\n\nconst resolvesToGObjectClass = (library: Library, ref: TypeId | undefined): boolean => {\n if (ref === undefined) return false;\n const resolved = library.typeOf(ref);\n if (resolved?.kind !== \"class\") return false;\n return isIntrinsicElementClass(resolved.value, resolved.namespace, library);\n};\n\ntype PropOwner = {\n library: Library;\n klass: GirClass;\n namespace: GirNamespace;\n};\n\nexport const isObjectProp = (owner: PropOwner, property: GirProperty, jsName: string): boolean => {\n if (!property.writable || property.constructOnly) return false;\n if (!resolvesToGObjectClass(owner.library, property.type)) return false;\n if (jsName === \"child\" && classExposesMethod(owner.klass, owner.namespace, owner.library, \"set_child\")) {\n return false;\n }\n return true;\n};\n\nconst renderSignalHandler = (options: SignalRenderOptions): string => {\n const { types, signal, selfType } = options;\n const params = [\n ...renderHandlerParameters(signal.parameters, (ref, nullable) => renderReactPropType(types, ref, nullable)),\n `self: ${selfType}`,\n ];\n const result = renderHandlerResultType({\n library: types.library,\n signal,\n renderType: (ref, nullable) => renderReactPropType(types, ref, nullable),\n includeCallerAllocated: false,\n optOut: true,\n });\n return `(${params.join(\", \")}) => ${result}`;\n};\n\nexport const reactTarget = (context: PropTypeRenderContext): TsTypeTarget => ({\n containerStyle: \"record\",\n callbackType: \"((...args: unknown[]) => unknown)\",\n byteArrayAsNumber: false,\n renderNamed: (resolved, name) => {\n if (resolved?.kind === \"alias\") {\n return resolved.value.target === undefined\n ? \"number\"\n : renderBaseTypeFor(context.library, reactTarget(context), resolved.value.target);\n }\n context.imports.set(name.namespaceName, giNamespaceAlias(name.namespaceName));\n return `${giNamespaceAlias(name.namespaceName)}.${name.typeName}`;\n },\n renderGtype: () => {\n context.imports.set(\"GObject\", giNamespaceAlias(\"GObject\"));\n return `${giNamespaceAlias(\"GObject\")}.Type`;\n },\n});\n\nconst renderReactPropType = (context: PropTypeRenderContext, ref: TypeId | undefined, isNullable: boolean): string => {\n const base = renderBaseTypeFor(context.library, reactTarget(context), ref);\n return isNullable ? `${base} | null` : base;\n};\n"]}
|