@gtkx/codegen 1.0.0-rc.1 → 1.0.0-rc.3
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 +20 -11
- package/dist/analysis/descriptor-render.d.ts.map +1 -1
- package/dist/analysis/descriptor-render.js +296 -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 +71 -29
- 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 +192 -123
- 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 +69 -133
- package/dist/docs/element-page.js.map +1 -1
- package/dist/docs/pipeline.d.ts +10 -7
- package/dist/docs/pipeline.d.ts.map +1 -1
- package/dist/docs/pipeline.js +81 -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 +29 -5
- package/dist/fingerprint.d.ts.map +1 -1
- package/dist/fingerprint.js +69 -13
- package/dist/fingerprint.js.map +1 -1
- package/dist/gi.d.ts +18 -0
- package/dist/gi.d.ts.map +1 -0
- package/dist/gi.js +23 -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 +5 -3
- package/dist/gir/libraries.d.ts.map +1 -1
- package/dist/gir/libraries.js +41 -28
- 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 +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/jsx.d.ts +28 -0
- package/dist/jsx.d.ts.map +1 -0
- package/dist/jsx.js +44 -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 +20 -0
- package/dist/react/element-config.d.ts.map +1 -0
- package/dist/react/element-config.js +64 -0
- package/dist/react/element-config.js.map +1 -0
- package/dist/runner.d.ts +19 -10
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +48 -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 +157 -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.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 +48 -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 +188 -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 +40 -28
- package/dist/store/gi/record-constructor.js.map +1 -1
- package/dist/store/gi/record-field-accessor.d.ts +9 -8
- package/dist/store/gi/record-field-accessor.d.ts.map +1 -1
- package/dist/store/gi/record-field-accessor.js +187 -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 +15 -16
- 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/value-marshalable.d.ts +15 -0
- package/dist/store/gi/value-marshalable.d.ts.map +1 -0
- package/dist/store/gi/value-marshalable.js +66 -0
- package/dist/store/gi/value-marshalable.js.map +1 -0
- 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 +26 -0
- package/dist/store/jsx/intrinsic-elements.d.ts.map +1 -0
- package/dist/store/jsx/intrinsic-elements.js +127 -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/omitted-props.d.ts +10 -0
- package/dist/store/jsx/omitted-props.d.ts.map +1 -0
- package/dist/store/jsx/omitted-props.js +22 -0
- package/dist/store/jsx/omitted-props.js.map +1 -0
- package/dist/store/jsx/pipeline.d.ts +23 -0
- package/dist/store/jsx/pipeline.d.ts.map +1 -0
- package/dist/store/{react → jsx}/pipeline.js +38 -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 +153 -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 +14 -9
- package/src/analysis/descriptor-render.ts +516 -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 +113 -34
- package/src/compile.ts +103 -76
- package/src/docs/api-reference.ts +337 -146
- package/src/docs/element-page.ts +137 -150
- package/src/docs/pipeline.ts +135 -73
- package/src/docs/render.ts +151 -87
- package/src/docs/symbol-page.ts +268 -123
- package/src/fingerprint.ts +138 -26
- package/src/gi.ts +35 -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 +59 -33
- 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 +8 -0
- package/src/jsx.ts +75 -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 +97 -0
- package/src/runner.ts +100 -57
- package/src/store/compile-store.ts +32 -26
- package/src/store/gi/async.ts +48 -21
- package/src/store/gi/callables.ts +339 -136
- package/src/store/gi/callback.ts +13 -4
- 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 +88 -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 +377 -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 +70 -33
- package/src/store/gi/record-field-accessor.ts +415 -167
- package/src/store/gi/record-layout.ts +130 -43
- package/src/store/gi/record.ts +29 -15
- 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/value-marshalable.ts +96 -0
- 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 +253 -0
- package/src/store/{react → jsx}/jsx.ts +213 -99
- package/src/store/jsx/metadata.ts +385 -0
- package/src/store/jsx/omitted-props.ts +32 -0
- package/src/store/jsx/pipeline.ts +148 -0
- package/src/store/jsx/props.ts +262 -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/gi/class-struct-record.d.ts +0 -9
- package/dist/store/gi/class-struct-record.d.ts.map +0 -1
- package/dist/store/gi/class-struct-record.js +0 -34
- package/dist/store/gi/class-struct-record.js.map +0 -1
- 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/gi/class-struct-record.ts +0 -40
- 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":"element-props.js","sourceRoot":"","sources":["../../../src/store/react/element-props.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Arg, Call, ContainerProp, ElementProp, ListProp, ValueProp } from \"@gtkx/config\";\nimport { toCamelIdentifier } from \"@gtkx/utils\";\nimport type { GirParameter } from \"../../gir/parameter.js\";\nimport { PRIMITIVE_TS_TYPE } from \"../../gir/primitives.js\";\nimport { BUILT_IN_ELEMENT_PROPS } from \"./built-ins.js\";\nimport { findMethod, type GirIndex, hasMethod, hasProperty } from \"./gir-index.js\";\n\nconst callMethodName = (call: Call): string => (typeof call === \"string\" ? call : call.method);\n\nconst containerTypeNames = (parent: string, prop: ContainerProp): string[] => {\n const names = [parent, prop.child];\n if (prop.autowrap !== undefined) names.push(prop.autowrap);\n return names;\n};\n\nconst containerCalls = (prop: ContainerProp): Call[] => {\n const calls = [prop.append, prop.remove, prop.insert, prop.reorder].filter(\n (call): call is Call => call !== undefined,\n );\n if (typeof prop.adopt === \"string\") calls.push(prop.adopt);\n return calls;\n};\n\nconst knownTypes = (context: GirIndex, names: string[]): boolean => names.every((name) => context.index.has(name));\n\nconst elementPropError = (path: string, message: string): Error => new Error(`gtkx.config.ts: \\`${path}\\` ${message}`);\n\nconst validateTypeNames = (context: GirIndex, path: string, names: string[]): void => {\n for (const name of names) {\n if (!context.index.has(name)) {\n throw elementPropError(path, `references \"${name}\", which is not a type in the generated libraries`);\n }\n }\n};\n\nconst validateCalls = (context: GirIndex, path: string, host: string, calls: Call[]): void => {\n for (const call of calls) {\n const method = callMethodName(call);\n if (!hasMethod(context, host, method)) {\n throw elementPropError(path, `references method \"${method}\", which does not exist on ${host}`);\n }\n }\n};\n\nconst validateMember = (context: GirIndex, path: string, host: string, name: string): void => {\n if (!hasProperty(context, host, name)) {\n throw elementPropError(path, `references \"${name}\", which is not a property of ${host}`);\n }\n};\n\nconst validateUserElementProp = (context: GirIndex, type: string, path: string, prop: ElementProp): void => {\n switch (prop.kind) {\n case \"container\":\n validateTypeNames(context, path, containerTypeNames(type, prop));\n validateCalls(context, path, type, containerCalls(prop));\n return;\n case \"value\":\n validateTypeNames(context, path, [type]);\n validateCalls(context, path, type, prop.after === undefined ? [prop.call] : [prop.call, prop.after]);\n return;\n case \"controlled-text\":\n validateTypeNames(context, path, [type]);\n validateMember(context, path, type, prop.prop);\n return;\n case \"lazy\":\n validateTypeNames(context, path, [type]);\n validateMember(context, path, type, prop.prop);\n if (prop.lookup !== undefined) validateCalls(context, path, type, [prop.lookup]);\n return;\n case \"list\":\n validateTypeNames(context, path, [type]);\n validateCalls(context, path, type, listCalls(prop));\n return;\n }\n};\n\nconst addCalls = (add: ListProp[\"add\"]): Call[] => (Array.isArray(add) ? add : [add]);\n\nconst listCalls = (prop: ListProp): Call[] => {\n const calls = addCalls(prop.add);\n if (prop.remove !== undefined) calls.push(prop.remove);\n if (prop.clear !== undefined) calls.push(prop.clear);\n return calls;\n};\n\nconst NO_DEFAULT = Symbol(\"gtkx.no-default\");\n\nconst inferredDefault = (context: GirIndex, param: GirParameter): null | number | boolean | typeof NO_DEFAULT => {\n if (param.nullable) return null;\n const type = param.type === undefined ? undefined : context.library.typeOf(param.type);\n if (type?.kind !== \"primitive\") return NO_DEFAULT;\n switch (PRIMITIVE_TS_TYPE[type.category]) {\n case \"number\":\n return 0;\n case \"boolean\":\n return false;\n default:\n return NO_DEFAULT;\n }\n};\n\nconst argForParameter = (context: GirIndex, param: GirParameter): Arg => {\n const field = toCamelIdentifier(param.name);\n const or = inferredDefault(context, param);\n return or === NO_DEFAULT ? { field } : { field, or };\n};\n\nconst callArity = (context: GirIndex, type: string, call: Call): number | undefined =>\n typeof call === \"string\" ? findMethod(context, type, call)?.params.length : undefined;\n\nconst expandCall = (context: GirIndex, type: string, call: Call, scalar: boolean): Call => {\n if (typeof call !== \"string\" || scalar) return call;\n const method = findMethod(context, type, call);\n if (method === undefined || method.params.length === 0) return call;\n return { method: call, args: method.params.map((param) => argForParameter(context, param)) };\n};\n\nconst expandListProp = (context: GirIndex, type: string, prop: ListProp): ListProp => {\n const scalar = !Array.isArray(prop.add) && callArity(context, type, prop.add) === 1;\n const add = Array.isArray(prop.add)\n ? prop.add.map((call) => expandCall(context, type, call, false))\n : expandCall(context, type, prop.add, scalar);\n return {\n ...prop,\n add,\n remove: prop.remove === undefined ? undefined : expandCall(context, type, prop.remove, scalar),\n };\n};\n\nconst expandValueProp = (context: GirIndex, type: string, prop: ValueProp): ValueProp => {\n const arity = callArity(context, type, prop.call);\n return { ...prop, call: expandCall(context, type, prop.call, arity === undefined || arity <= 1) };\n};\n\nconst expandAppliedProps = (\n context: GirIndex,\n elementProps: Record<string, ElementProp[]>,\n): Record<string, ElementProp[]> => {\n const result: Record<string, ElementProp[]> = {};\n for (const [type, props] of Object.entries(elementProps)) {\n result[type] = props.map((prop) => {\n if (prop.kind === \"list\") return expandListProp(context, type, prop);\n if (prop.kind === \"value\") return expandValueProp(context, type, prop);\n return prop;\n });\n }\n return result;\n};\n\nconst validateUserElementProps = (context: GirIndex, elementProps: Record<string, ElementProp[]>): void => {\n for (const [type, props] of Object.entries(elementProps)) {\n props.forEach((prop, index) => {\n validateUserElementProp(context, type, `elementProps.${type}[${index}]`, prop);\n });\n }\n};\n\nconst elementPropKey = (prop: ElementProp): string =>\n prop.kind === \"container\" ? `container:${prop.prop}:${prop.child}` : `applied:${prop.prop}`;\n\nconst mergeElementProps = (layers: Record<string, ElementProp[]>[]): Record<string, ElementProp[]> => {\n const byType = new Map<string, Map<string, ElementProp>>();\n for (const layer of layers) {\n for (const [type, props] of Object.entries(layer)) {\n const merged = byType.get(type) ?? new Map<string, ElementProp>();\n for (const prop of props) {\n const key = elementPropKey(prop);\n merged.delete(key);\n merged.set(key, prop);\n }\n byType.set(type, merged);\n }\n }\n const result: Record<string, ElementProp[]> = {};\n for (const [type, merged] of byType) result[type] = [...merged.values()];\n return result;\n};\n\nconst filterKnownElementProps = (\n context: GirIndex,\n map: Record<string, ElementProp[]>,\n): Record<string, ElementProp[]> => {\n const result: Record<string, ElementProp[]> = {};\n for (const [type, props] of Object.entries(map)) {\n if (!context.index.has(type)) continue;\n const kept = props.filter(\n (prop) => prop.kind !== \"container\" || knownTypes(context, containerTypeNames(type, prop)),\n );\n if (kept.length > 0) result[type] = kept;\n }\n return result;\n};\n\nexport const assembleElementProps = (\n context: GirIndex,\n userElementProps: Record<string, ElementProp[]>,\n): Record<string, ElementProp[]> => {\n validateUserElementProps(context, userElementProps);\n const merged = mergeElementProps([\n filterKnownElementProps(context, BUILT_IN_ELEMENT_PROPS),\n filterKnownElementProps(context, userElementProps),\n ]);\n return expandAppliedProps(context, merged);\n};\n"]}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { GirClass } from "../../gir/class.js";
|
|
2
|
-
import type { GirFunction } from "../../gir/function.js";
|
|
3
|
-
import type { Library } from "../../gir/library.js";
|
|
4
|
-
import type { GirNamespace } from "../../gir/namespace.js";
|
|
5
|
-
import type { GirParameter } from "../../gir/parameter.js";
|
|
6
|
-
export type GirTypeEntry = {
|
|
7
|
-
klass: GirClass;
|
|
8
|
-
namespace: GirNamespace;
|
|
9
|
-
isInterface: boolean;
|
|
10
|
-
};
|
|
11
|
-
export type GirIndex = {
|
|
12
|
-
library: Library;
|
|
13
|
-
index: Map<string, GirTypeEntry>;
|
|
14
|
-
};
|
|
15
|
-
export declare const buildGirIndex: (library: Library) => GirIndex;
|
|
16
|
-
export declare const chainOf: (context: GirIndex, entry: GirTypeEntry) => GirClass[];
|
|
17
|
-
type ResolvedMethod = {
|
|
18
|
-
fn: GirFunction;
|
|
19
|
-
params: GirParameter[];
|
|
20
|
-
};
|
|
21
|
-
export declare const findMethod: (context: GirIndex, typeName: string, camelName: string) => ResolvedMethod | undefined;
|
|
22
|
-
export declare const hasMethod: (context: GirIndex, typeName: string, camelName: string) => boolean;
|
|
23
|
-
export declare const hasProperty: (context: GirIndex, typeName: string, camelName: string) => boolean;
|
|
24
|
-
export {};
|
|
25
|
-
//# sourceMappingURL=gir-index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gir-index.d.ts","sourceRoot":"","sources":["../../../src/store/react/gir-index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,aAAa,YAAa,OAAO,KAAG,QAiBhD,CAAC;AAEF,eAAO,MAAM,OAAO,YAAa,QAAQ,SAAS,YAAY,KAAG,QAAQ,EAMxE,CAAC;AAEF,KAAK,cAAc,GAAG;IAClB,EAAE,EAAE,WAAW,CAAC;IAChB,MAAM,EAAE,YAAY,EAAE,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,UAAU,YAAa,QAAQ,YAAY,MAAM,aAAa,MAAM,KAAG,cAAc,GAAG,SAepG,CAAC;AAQF,eAAO,MAAM,SAAS,YAAa,QAAQ,YAAY,MAAM,aAAa,MAAM,KAAG,OAG9E,CAAC;AAEN,eAAO,MAAM,WAAW,YAAa,QAAQ,YAAY,MAAM,aAAa,MAAM,KAAG,OAGhF,CAAC"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { toCamelIdentifier } from "@gtkx/utils";
|
|
2
|
-
import { inputParameters } from "../../analysis/param-structure.js";
|
|
3
|
-
import { ancestorChain } from "../../gir/ancestry.js";
|
|
4
|
-
import { glibNameOf, implementedInterfaces } from "./intrinsic-elements.js";
|
|
5
|
-
export const buildGirIndex = (library) => {
|
|
6
|
-
const index = new Map();
|
|
7
|
-
for (const namespace of library.namespaces.values()) {
|
|
8
|
-
for (const klass of namespace.classes) {
|
|
9
|
-
const glibName = glibNameOf(klass);
|
|
10
|
-
if (glibName !== undefined && !index.has(glibName)) {
|
|
11
|
-
index.set(glibName, { klass, namespace, isInterface: false });
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
for (const klass of namespace.interfaces) {
|
|
15
|
-
const glibName = glibNameOf(klass);
|
|
16
|
-
if (glibName !== undefined && !index.has(glibName)) {
|
|
17
|
-
index.set(glibName, { klass, namespace, isInterface: true });
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return { library, index };
|
|
22
|
-
};
|
|
23
|
-
export const chainOf = (context, entry) => {
|
|
24
|
-
if (entry.isInterface)
|
|
25
|
-
return [entry.klass];
|
|
26
|
-
const chain = [];
|
|
27
|
-
for (const { klass } of ancestorChain(context.library, entry.klass, entry.namespace.name))
|
|
28
|
-
chain.push(klass);
|
|
29
|
-
for (const iface of implementedInterfaces(entry.klass, entry.namespace, context.library))
|
|
30
|
-
chain.push(iface.klass);
|
|
31
|
-
return chain;
|
|
32
|
-
};
|
|
33
|
-
export const findMethod = (context, typeName, camelName) => {
|
|
34
|
-
const entry = context.index.get(typeName);
|
|
35
|
-
if (entry === undefined)
|
|
36
|
-
return undefined;
|
|
37
|
-
for (const klass of chainOf(context, entry)) {
|
|
38
|
-
const fn = klass.methods.find((method) => method.introspectable &&
|
|
39
|
-
method.shadowedBy === undefined &&
|
|
40
|
-
toCamelIdentifier(method.name) === camelName);
|
|
41
|
-
if (fn !== undefined) {
|
|
42
|
-
return { fn, params: inputParameters(context.library, fn).map((input) => input.parameter) };
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return undefined;
|
|
46
|
-
};
|
|
47
|
-
const chainSome = (context, typeName, predicate) => {
|
|
48
|
-
const entry = context.index.get(typeName);
|
|
49
|
-
if (entry === undefined)
|
|
50
|
-
return false;
|
|
51
|
-
return chainOf(context, entry).some(predicate);
|
|
52
|
-
};
|
|
53
|
-
export const hasMethod = (context, typeName, camelName) => chainSome(context, typeName, (klass) => klass.methods.some((method) => method.introspectable && toCamelIdentifier(method.name) === camelName));
|
|
54
|
-
export const hasProperty = (context, typeName, camelName) => chainSome(context, typeName, (klass) => klass.properties.some((property) => toCamelIdentifier(property.name) === camelName));
|
|
55
|
-
//# sourceMappingURL=gir-index.js.map
|
|
@@ -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
|