typescript-to-gdscript 0.1.1 → 0.1.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/README.md +4 -2
- package/dist/cli/convert.d.ts.map +1 -1
- package/dist/cli/convert.js +15 -5
- package/dist/cli/convert.js.map +1 -1
- package/dist/converter/ts-to-gd/access-rewrite.d.ts +40 -0
- package/dist/converter/ts-to-gd/access-rewrite.d.ts.map +1 -0
- package/dist/converter/ts-to-gd/access-rewrite.js +124 -0
- package/dist/converter/ts-to-gd/access-rewrite.js.map +1 -0
- package/dist/converter/ts-to-gd/expressions.d.ts.map +1 -1
- package/dist/converter/ts-to-gd/expressions.js +31 -7
- package/dist/converter/ts-to-gd/expressions.js.map +1 -1
- package/dist/watcher/check.d.ts +87 -0
- package/dist/watcher/check.d.ts.map +1 -0
- package/dist/watcher/check.js +209 -0
- package/dist/watcher/check.js.map +1 -0
- package/dist/watcher/heal.d.ts +66 -0
- package/dist/watcher/heal.d.ts.map +1 -0
- package/dist/watcher/heal.js +132 -0
- package/dist/watcher/heal.js.map +1 -0
- package/dist/watcher/index.d.ts +1 -0
- package/dist/watcher/index.d.ts.map +1 -1
- package/dist/watcher/index.js +48 -52
- package/dist/watcher/index.js.map +1 -1
- package/package.json +1 -1
- package/typings/classes/AccessibilityServer.d.ts +405 -0
- package/typings/classes/AnimationLibrary.d.ts +4 -4
- package/typings/classes/AnimationNodeBlendSpace1D.d.ts +45 -4
- package/typings/classes/AnimationNodeBlendSpace2D.d.ts +45 -4
- package/typings/classes/Area3D.d.ts +14 -7
- package/typings/classes/AreaLight3D.d.ts +37 -0
- package/typings/classes/ArrayMesh.d.ts +15 -0
- package/typings/classes/AudioEffectAmplify.d.ts +2 -2
- package/typings/classes/AudioEffectBandLimitFilter.d.ts +1 -1
- package/typings/classes/AudioEffectBandPassFilter.d.ts +1 -1
- package/typings/classes/AudioEffectCapture.d.ts +10 -9
- package/typings/classes/AudioEffectChorus.d.ts +57 -28
- package/typings/classes/AudioEffectCompressor.d.ts +11 -9
- package/typings/classes/AudioEffectDelay.d.ts +21 -15
- package/typings/classes/AudioEffectDistortion.d.ts +19 -10
- package/typings/classes/AudioEffectEQ.d.ts +2 -2
- package/typings/classes/AudioEffectEQ10.d.ts +2 -2
- package/typings/classes/AudioEffectEQ21.d.ts +2 -2
- package/typings/classes/AudioEffectEQ6.d.ts +2 -2
- package/typings/classes/AudioEffectFilter.d.ts +25 -9
- package/typings/classes/AudioEffectHardLimiter.d.ts +8 -5
- package/typings/classes/AudioEffectHighPassFilter.d.ts +1 -1
- package/typings/classes/AudioEffectHighShelfFilter.d.ts +1 -1
- package/typings/classes/AudioEffectInstance.d.ts +1 -1
- package/typings/classes/AudioEffectLimiter.d.ts +9 -4
- package/typings/classes/AudioEffectLowPassFilter.d.ts +1 -1
- package/typings/classes/AudioEffectLowShelfFilter.d.ts +1 -1
- package/typings/classes/AudioEffectNotchFilter.d.ts +1 -1
- package/typings/classes/AudioEffectPanner.d.ts +7 -2
- package/typings/classes/AudioEffectPhaser.d.ts +9 -7
- package/typings/classes/AudioEffectPitchShift.d.ts +3 -3
- package/typings/classes/AudioEffectReverb.d.ts +17 -8
- package/typings/classes/AudioEffectSpectrumAnalyzer.d.ts +4 -5
- package/typings/classes/AudioEffectStereoEnhance.d.ts +7 -4
- package/typings/classes/AudioServer.d.ts +2 -2
- package/typings/classes/AudioStreamPlaybackResampled.d.ts +8 -0
- package/typings/classes/AudioStreamRandomizer.d.ts +10 -0
- package/typings/classes/AwaitTweener.d.ts +10 -0
- package/typings/classes/BaseButton.d.ts +1 -1
- package/typings/classes/Basis.d.ts +6 -2
- package/typings/classes/BlitMaterial.d.ts +22 -0
- package/typings/classes/CPUParticles2D.d.ts +2 -2
- package/typings/classes/CPUParticles3D.d.ts +2 -2
- package/typings/classes/Camera3D.d.ts +1 -1
- package/typings/classes/CameraAttributes.d.ts +1 -0
- package/typings/classes/CameraFeed.d.ts +4 -0
- package/typings/classes/CanvasItem.d.ts +16 -1
- package/typings/classes/CodeEdit.d.ts +6 -0
- package/typings/classes/CollisionObject2D.d.ts +6 -0
- package/typings/classes/CollisionPolygon2D.d.ts +5 -0
- package/typings/classes/CollisionShape2D.d.ts +5 -0
- package/typings/classes/Container.d.ts +7 -0
- package/typings/classes/Control.d.ts +127 -9
- package/typings/classes/Curve.d.ts +26 -1
- package/typings/classes/Curve2D.d.ts +15 -0
- package/typings/classes/Curve3D.d.ts +20 -0
- package/typings/classes/DPITexture.d.ts +14 -0
- package/typings/classes/Decal.d.ts +1 -0
- package/typings/classes/Dictionary.d.ts +1 -0
- package/typings/classes/DirAccess.d.ts +6 -1
- package/typings/classes/DisplayServer.d.ts +161 -9
- package/typings/classes/DrawableTexture2D.d.ts +43 -0
- package/typings/classes/EditorCommandPalette.d.ts +0 -2
- package/typings/classes/EditorContextMenuPlugin.d.ts +4 -0
- package/typings/classes/EditorDock.d.ts +10 -5
- package/typings/classes/EditorExportPlatform.d.ts +4 -2
- package/typings/classes/EditorExportPlugin.d.ts +7 -0
- package/typings/classes/EditorFeatureProfile.d.ts +1 -1
- package/typings/classes/EditorFileSystem.d.ts +2 -0
- package/typings/classes/EditorInspector.d.ts +10 -0
- package/typings/classes/EditorInterface.d.ts +6 -4
- package/typings/classes/EditorNode3DGizmoPlugin.d.ts +4 -0
- package/typings/classes/EditorPlugin.d.ts +4 -4
- package/typings/classes/EditorResourcePicker.d.ts +2 -1
- package/typings/classes/EditorSceneFormatImporter.d.ts +23 -0
- package/typings/classes/EditorSettings.d.ts +241 -140
- package/typings/classes/EditorSpinSlider.d.ts +6 -0
- package/typings/classes/EditorTranslationParserPlugin.d.ts +4 -0
- package/typings/classes/EditorVCSInterface.d.ts +6 -2
- package/typings/classes/Environment.d.ts +7 -2
- package/typings/classes/FileAccess.d.ts +1 -1
- package/typings/classes/FileDialog.d.ts +16 -1
- package/typings/classes/FoldableContainer.d.ts +1 -1
- package/typings/classes/Font.d.ts +15 -3
- package/typings/classes/FontVariation.d.ts +10 -0
- package/typings/classes/GDScript.d.ts +8 -0
- package/typings/classes/GDScriptLanguageProtocol.d.ts +25 -0
- package/typings/classes/GDScriptSyntaxHighlighter.d.ts +6 -0
- package/typings/classes/GDScriptTextDocument.d.ts +27 -0
- package/typings/classes/GDScriptWorkspace.d.ts +17 -0
- package/typings/classes/GPUParticles2D.d.ts +2 -2
- package/typings/classes/GPUParticles3D.d.ts +19 -2
- package/typings/classes/Geometry2D.d.ts +2 -2
- package/typings/classes/GeometryInstance3D.d.ts +1 -1
- package/typings/classes/GradientTexture2D.d.ts +2 -0
- package/typings/classes/Image.d.ts +7 -4
- package/typings/classes/ImageFormatLoader.d.ts +5 -0
- package/typings/classes/ImageTexture.d.ts +0 -2
- package/typings/classes/ImporterMesh.d.ts +6 -0
- package/typings/classes/Input.d.ts +159 -15
- package/typings/classes/InputEvent.d.ts +8 -0
- package/typings/classes/InputEventGesture.d.ts +2 -3
- package/typings/classes/InputEventMouse.d.ts +2 -3
- package/typings/classes/InputEventMouseMotion.d.ts +2 -2
- package/typings/classes/InputEventWithModifiers.d.ts +2 -3
- package/typings/classes/InputMap.d.ts +3 -0
- package/typings/classes/ItemList.d.ts +29 -2
- package/typings/classes/IterateIK3D.d.ts +6 -3
- package/typings/classes/JavaClassWrapper.d.ts +13 -0
- package/typings/classes/JavaScriptBridge.d.ts +1 -1
- package/typings/classes/Joint3D.d.ts +1 -0
- package/typings/classes/Label.d.ts +1 -0
- package/typings/classes/LabelSettings.d.ts +25 -0
- package/typings/classes/Light3D.d.ts +1 -1
- package/typings/classes/Logger.d.ts +1 -1
- package/typings/classes/LookAtModifier3D.d.ts +2 -1
- package/typings/classes/MainLoop.d.ts +4 -0
- package/typings/classes/MenuButton.d.ts +35 -0
- package/typings/classes/MeshLibrary.d.ts +2 -0
- package/typings/classes/MovieWriter.d.ts +2 -0
- package/typings/classes/MultiplayerPeerExtension.d.ts +9 -9
- package/typings/classes/NativeMenu.d.ts +10 -3
- package/typings/classes/Node.d.ts +15 -5
- package/typings/classes/Node3D.d.ts +6 -4
- package/typings/classes/OS.d.ts +3 -3
- package/typings/classes/Object.d.ts +9 -3
- package/typings/classes/OptimizedTranslation.d.ts +2 -2
- package/typings/classes/OptionButton.d.ts +51 -1
- package/typings/classes/PCKPacker.d.ts +4 -0
- package/typings/classes/PacketPeerExtension.d.ts +1 -1
- package/typings/classes/ParticleProcessMaterial.d.ts +63 -0
- package/typings/classes/PhysicsDirectBodyState2D.d.ts +2 -1
- package/typings/classes/PhysicsDirectBodyState3D.d.ts +2 -1
- package/typings/classes/PhysicsDirectSpaceState2DExtension.d.ts +6 -6
- package/typings/classes/PhysicsDirectSpaceState3DExtension.d.ts +6 -6
- package/typings/classes/PhysicsServer2D.d.ts +2 -2
- package/typings/classes/PhysicsServer2DExtension.d.ts +6 -6
- package/typings/classes/PhysicsServer3D.d.ts +145 -42
- package/typings/classes/PhysicsServer3DExtension.d.ts +1 -1
- package/typings/classes/PopupMenu.d.ts +74 -8
- package/typings/classes/PopupPanel.d.ts +2 -0
- package/typings/classes/PortableCompressedTexture2D.d.ts +0 -2
- package/typings/classes/ProjectSettings.d.ts +62 -10
- package/typings/classes/Quaternion.d.ts +2 -2
- package/typings/classes/RDAccelerationStructureGeometry.d.ts +42 -0
- package/typings/classes/RDAccelerationStructureInstance.d.ts +34 -0
- package/typings/classes/RDHitGroup.d.ts +20 -0
- package/typings/classes/RDPipelineShader.d.ts +14 -0
- package/typings/classes/RDShaderSPIRV.d.ts +30 -0
- package/typings/classes/RDShaderSource.d.ts +10 -0
- package/typings/classes/RandomNumberGenerator.d.ts +4 -2
- package/typings/classes/RenderSceneBuffersConfiguration.d.ts +4 -1
- package/typings/classes/RenderingDevice.d.ts +175 -1
- package/typings/classes/RenderingServer.d.ts +264 -14
- package/typings/classes/Resource.d.ts +4 -2
- package/typings/classes/ResourceImporterDynamicFont.d.ts +3 -1
- package/typings/classes/ResourceImporterOBJ.d.ts +1 -1
- package/typings/classes/ResourceImporterSVG.d.ts +10 -0
- package/typings/classes/ResourceImporterScene.d.ts +11 -3
- package/typings/classes/ResourceImporterTexture.d.ts +2 -2
- package/typings/classes/RichTextLabel.d.ts +14 -6
- package/typings/classes/Script.d.ts +2 -0
- package/typings/classes/ScriptEditor.d.ts +13 -0
- package/typings/classes/ScriptLanguageExtension.d.ts +7 -0
- package/typings/classes/ScrollContainer.d.ts +17 -5
- package/typings/classes/Shader.d.ts +2 -0
- package/typings/classes/Shape3D.d.ts +1 -0
- package/typings/classes/SkeletonModification2DJiggle.d.ts +4 -0
- package/typings/classes/SplitContainer.d.ts +6 -0
- package/typings/classes/SpringBoneSimulator3D.d.ts +4 -2
- package/typings/classes/SpriteFrames.d.ts +20 -4
- package/typings/classes/StreamPeerExtension.d.ts +2 -2
- package/typings/classes/String.d.ts +1 -1
- package/typings/classes/SubViewport.d.ts +4 -0
- package/typings/classes/TabBar.d.ts +20 -0
- package/typings/classes/TabContainer.d.ts +21 -3
- package/typings/classes/TextEdit.d.ts +5 -2
- package/typings/classes/TextServer.d.ts +25 -1
- package/typings/classes/TextServerExtension.d.ts +25 -1
- package/typings/classes/Texture2D.d.ts +14 -0
- package/typings/classes/TextureRect.d.ts +4 -1
- package/typings/classes/TileSet.d.ts +3 -1
- package/typings/classes/Tree.d.ts +25 -9
- package/typings/classes/TreeItem.d.ts +17 -2
- package/typings/classes/Tween.d.ts +13 -0
- package/typings/classes/UndoRedo.d.ts +2 -2
- package/typings/classes/Vector2.d.ts +4 -2
- package/typings/classes/Vector2i.d.ts +4 -2
- package/typings/classes/Vector3.d.ts +4 -2
- package/typings/classes/Vector3i.d.ts +4 -2
- package/typings/classes/Vector4.d.ts +4 -2
- package/typings/classes/Vector4i.d.ts +4 -2
- package/typings/classes/Viewport.d.ts +27 -1
- package/typings/classes/VirtualJoystick.d.ts +94 -0
- package/typings/classes/VoxelGIData.d.ts +10 -0
- package/typings/classes/Window.d.ts +41 -4
- package/typings/classes/XRCamera3D.d.ts +1 -1
- package/typings/classes/XRServer.d.ts +2 -0
- package/typings/classes/_globals.d.ts +55 -18
- package/typings/classes/index.d.ts +15 -112
- package/typings/godot-class-registry.json +2120 -3693
- package/typings/classes/VisualShader.d.ts +0 -110
- package/typings/classes/VisualShaderNode.d.ts +0 -63
- package/typings/classes/VisualShaderNodeBillboard.d.ts +0 -28
- package/typings/classes/VisualShaderNodeBooleanConstant.d.ts +0 -10
- package/typings/classes/VisualShaderNodeBooleanParameter.d.ts +0 -14
- package/typings/classes/VisualShaderNodeClamp.d.ts +0 -26
- package/typings/classes/VisualShaderNodeColorConstant.d.ts +0 -10
- package/typings/classes/VisualShaderNodeColorFunc.d.ts +0 -32
- package/typings/classes/VisualShaderNodeColorOp.d.ts +0 -32
- package/typings/classes/VisualShaderNodeColorParameter.d.ts +0 -14
- package/typings/classes/VisualShaderNodeComment.d.ts +0 -12
- package/typings/classes/VisualShaderNodeCompare.d.ts +0 -68
- package/typings/classes/VisualShaderNodeConstant.d.ts +0 -6
- package/typings/classes/VisualShaderNodeCubemap.d.ts +0 -43
- package/typings/classes/VisualShaderNodeCubemapParameter.d.ts +0 -6
- package/typings/classes/VisualShaderNodeCurveTexture.d.ts +0 -10
- package/typings/classes/VisualShaderNodeCurveXYZTexture.d.ts +0 -10
- package/typings/classes/VisualShaderNodeCustom.d.ts +0 -122
- package/typings/classes/VisualShaderNodeDerivativeFunc.d.ts +0 -56
- package/typings/classes/VisualShaderNodeDeterminant.d.ts +0 -6
- package/typings/classes/VisualShaderNodeDistanceFade.d.ts +0 -6
- package/typings/classes/VisualShaderNodeDotProduct.d.ts +0 -6
- package/typings/classes/VisualShaderNodeExpression.d.ts +0 -12
- package/typings/classes/VisualShaderNodeFaceForward.d.ts +0 -8
- package/typings/classes/VisualShaderNodeFloatConstant.d.ts +0 -10
- package/typings/classes/VisualShaderNodeFloatFunc.d.ts +0 -108
- package/typings/classes/VisualShaderNodeFloatOp.d.ts +0 -36
- package/typings/classes/VisualShaderNodeFloatParameter.d.ts +0 -52
- package/typings/classes/VisualShaderNodeFrame.d.ts +0 -35
- package/typings/classes/VisualShaderNodeFresnel.d.ts +0 -6
- package/typings/classes/VisualShaderNodeGlobalExpression.d.ts +0 -6
- package/typings/classes/VisualShaderNodeGroupBase.d.ts +0 -60
- package/typings/classes/VisualShaderNodeIf.d.ts +0 -8
- package/typings/classes/VisualShaderNodeInput.d.ts +0 -20
- package/typings/classes/VisualShaderNodeIntConstant.d.ts +0 -10
- package/typings/classes/VisualShaderNodeIntFunc.d.ts +0 -24
- package/typings/classes/VisualShaderNodeIntOp.d.ts +0 -48
- package/typings/classes/VisualShaderNodeIntParameter.d.ts +0 -58
- package/typings/classes/VisualShaderNodeIs.d.ts +0 -18
- package/typings/classes/VisualShaderNodeLinearSceneDepth.d.ts +0 -6
- package/typings/classes/VisualShaderNodeMix.d.ts +0 -28
- package/typings/classes/VisualShaderNodeMultiplyAdd.d.ts +0 -22
- package/typings/classes/VisualShaderNodeOuterProduct.d.ts +0 -6
- package/typings/classes/VisualShaderNodeOutput.d.ts +0 -6
- package/typings/classes/VisualShaderNodeParameter.d.ts +0 -32
- package/typings/classes/VisualShaderNodeParameterRef.d.ts +0 -10
- package/typings/classes/VisualShaderNodeParticleAccelerator.d.ts +0 -20
- package/typings/classes/VisualShaderNodeParticleBoxEmitter.d.ts +0 -6
- package/typings/classes/VisualShaderNodeParticleConeVelocity.d.ts +0 -6
- package/typings/classes/VisualShaderNodeParticleEmit.d.ts +0 -22
- package/typings/classes/VisualShaderNodeParticleEmitter.d.ts +0 -12
- package/typings/classes/VisualShaderNodeParticleMeshEmitter.d.ts +0 -20
- package/typings/classes/VisualShaderNodeParticleMultiplyByAxisAngle.d.ts +0 -10
- package/typings/classes/VisualShaderNodeParticleOutput.d.ts +0 -6
- package/typings/classes/VisualShaderNodeParticleRandomness.d.ts +0 -22
- package/typings/classes/VisualShaderNodeParticleRingEmitter.d.ts +0 -6
- package/typings/classes/VisualShaderNodeParticleSphereEmitter.d.ts +0 -6
- package/typings/classes/VisualShaderNodeProximityFade.d.ts +0 -6
- package/typings/classes/VisualShaderNodeRandomRange.d.ts +0 -6
- package/typings/classes/VisualShaderNodeRemap.d.ts +0 -33
- package/typings/classes/VisualShaderNodeReroute.d.ts +0 -8
- package/typings/classes/VisualShaderNodeResizableBase.d.ts +0 -10
- package/typings/classes/VisualShaderNodeRotationByAxis.d.ts +0 -6
- package/typings/classes/VisualShaderNodeSDFRaymarch.d.ts +0 -6
- package/typings/classes/VisualShaderNodeSDFToScreenUV.d.ts +0 -8
- package/typings/classes/VisualShaderNodeSample3D.d.ts +0 -18
- package/typings/classes/VisualShaderNodeScreenNormalWorldSpace.d.ts +0 -6
- package/typings/classes/VisualShaderNodeScreenUVToSDF.d.ts +0 -8
- package/typings/classes/VisualShaderNodeSmoothStep.d.ts +0 -28
- package/typings/classes/VisualShaderNodeStep.d.ts +0 -28
- package/typings/classes/VisualShaderNodeSwitch.d.ts +0 -30
- package/typings/classes/VisualShaderNodeTexture.d.ts +0 -57
- package/typings/classes/VisualShaderNodeTexture2DArray.d.ts +0 -12
- package/typings/classes/VisualShaderNodeTexture2DArrayParameter.d.ts +0 -6
- package/typings/classes/VisualShaderNodeTexture2DParameter.d.ts +0 -6
- package/typings/classes/VisualShaderNodeTexture3D.d.ts +0 -12
- package/typings/classes/VisualShaderNodeTexture3DParameter.d.ts +0 -6
- package/typings/classes/VisualShaderNodeTextureParameter.d.ts +0 -104
- package/typings/classes/VisualShaderNodeTextureParameterTriplanar.d.ts +0 -6
- package/typings/classes/VisualShaderNodeTextureSDF.d.ts +0 -6
- package/typings/classes/VisualShaderNodeTextureSDFNormal.d.ts +0 -6
- package/typings/classes/VisualShaderNodeTransformCompose.d.ts +0 -6
- package/typings/classes/VisualShaderNodeTransformConstant.d.ts +0 -10
- package/typings/classes/VisualShaderNodeTransformDecompose.d.ts +0 -6
- package/typings/classes/VisualShaderNodeTransformFunc.d.ts +0 -18
- package/typings/classes/VisualShaderNodeTransformOp.d.ts +0 -32
- package/typings/classes/VisualShaderNodeTransformParameter.d.ts +0 -14
- package/typings/classes/VisualShaderNodeTransformVecMult.d.ts +0 -22
- package/typings/classes/VisualShaderNodeUIntConstant.d.ts +0 -10
- package/typings/classes/VisualShaderNodeUIntFunc.d.ts +0 -20
- package/typings/classes/VisualShaderNodeUIntOp.d.ts +0 -48
- package/typings/classes/VisualShaderNodeUIntParameter.d.ts +0 -16
- package/typings/classes/VisualShaderNodeUVFunc.d.ts +0 -22
- package/typings/classes/VisualShaderNodeUVPolarCoord.d.ts +0 -6
- package/typings/classes/VisualShaderNodeVarying.d.ts +0 -14
- package/typings/classes/VisualShaderNodeVaryingGetter.d.ts +0 -6
- package/typings/classes/VisualShaderNodeVaryingSetter.d.ts +0 -6
- package/typings/classes/VisualShaderNodeVec2Constant.d.ts +0 -10
- package/typings/classes/VisualShaderNodeVec2Parameter.d.ts +0 -14
- package/typings/classes/VisualShaderNodeVec3Constant.d.ts +0 -10
- package/typings/classes/VisualShaderNodeVec3Parameter.d.ts +0 -14
- package/typings/classes/VisualShaderNodeVec4Constant.d.ts +0 -10
- package/typings/classes/VisualShaderNodeVec4Parameter.d.ts +0 -14
- package/typings/classes/VisualShaderNodeVectorBase.d.ts +0 -20
- package/typings/classes/VisualShaderNodeVectorCompose.d.ts +0 -8
- package/typings/classes/VisualShaderNodeVectorDecompose.d.ts +0 -8
- package/typings/classes/VisualShaderNodeVectorDistance.d.ts +0 -6
- package/typings/classes/VisualShaderNodeVectorFunc.d.ts +0 -84
- package/typings/classes/VisualShaderNodeVectorLen.d.ts +0 -6
- package/typings/classes/VisualShaderNodeVectorOp.d.ts +0 -42
- package/typings/classes/VisualShaderNodeVectorRefract.d.ts +0 -8
- package/typings/classes/VisualShaderNodeWorldPositionFromDepth.d.ts +0 -8
package/README.md
CHANGED
|
@@ -84,7 +84,7 @@ Then:
|
|
|
84
84
|
2. `tstogd convert` — emits `.gd` into your output dir (default `scripts/`), regenerates all typings, and runs a full diagnostic check.
|
|
85
85
|
3. Attach the `.gd` file in Godot as you normally would. Configure Godot's external editor to point at your IDE for TS language server and one-click jump-to-source ([guide](docs/ide-integration.md)).
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
That's the whole loop — `convert` and `watch` are the only commands you need in normal use. Each one converts your code _and_ regenerates every typing (scene, script, resource, addon) in the same pass, so `get_node()` paths, `res://` references, and group queries stay in sync without any extra step. Most projects never run another CLI command.
|
|
88
88
|
|
|
89
89
|
For day-to-day work, run **`tstogd watch`**: it auto-converts on save, watches your `.tscn` scenes and assets so scene typings refresh the instant you change the tree in Godot, and runs a debounced full-project check feeding live IDE diagnostics.
|
|
90
90
|
|
|
@@ -112,6 +112,8 @@ tstogd convert # convert TS → GD + regenerate all typings + full d
|
|
|
112
112
|
tstogd watch # the same, continuously: auto-convert on save, live diagnostics
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
+
> **Note:** `watch` self-heals — when an edit causes new errors in other files, those files are reconverted automatically. For a guaranteed full refresh of every `.gd`, run `tstogd convert` after a `watch` session.
|
|
116
|
+
|
|
115
117
|
`convert` and `watch` already regenerate every typing (scene, script, resource, addon) as part of the run — there is no separate "generate typings" step to remember. The commands below cover one-off or advanced situations, and most projects never touch them:
|
|
116
118
|
|
|
117
119
|
```bash
|
|
@@ -137,7 +139,7 @@ Each `.ts` file must contain exactly one class. Named classes (`class Foo`) are
|
|
|
137
139
|
- `bool` — alias for `boolean`, also a cast: `bool(x)` → GDScript `bool(x)`. Same for `String(x)`.
|
|
138
140
|
- `Dictionary<K, V>` — generic, with typed `get` / `set` / `keys` / `values`. `{}` literals keep dictionary methods via the `Object` interface. Untyped `Dictionary` is `<unknown, unknown>`.
|
|
139
141
|
- `let` and `const` both convert to GDScript `var`. **Use `let`** — TS `var` is restricted (GDScript `var` ≈ TS `let`, not TS `var`).
|
|
140
|
-
- `undefined` is restricted — use `null`.
|
|
142
|
+
- `undefined` is restricted — use `null`. Plain objects (interfaces, object literals) are Dictionaries in GDScript: member reads convert to `obj.get("foo")`, which returns `null` for a missing key instead of crashing. Writes and class-instance access stay direct.
|
|
141
143
|
- `TSOnly<T>` — type-level wrapper, stripped at conversion.
|
|
142
144
|
- Only types GDScript actually has get an annotation. Godot classes/value types and your own `class_name` classes (including ones imported from another file) keep their type; plain `interface`s, `object`, `type` aliases, and unknown/unresolved names have the annotation **omitted** (bare untyped `var x` / `func f(x)`) rather than emitting a bogus GD type. See [docs/transform-rules.md#type-annotations--what-gets-emitted](docs/transform-rules.md#type-annotations--what-gets-emitted).
|
|
143
145
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/cli/convert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/cli/convert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBzC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgO7D"}
|
package/dist/cli/convert.js
CHANGED
|
@@ -11,6 +11,8 @@ export function registerConvertCommand(program) {
|
|
|
11
11
|
program
|
|
12
12
|
.command('convert')
|
|
13
13
|
.description('Convert TypeScript file(s) to GDScript. If no files given, converts all .ts files in tsDir. ' +
|
|
14
|
+
'Converts every file fresh by default — correct even when types in other files changed; ' +
|
|
15
|
+
'pass --use-cache to skip content-unchanged files (faster, may serve stale output). ' +
|
|
14
16
|
'After writing, runs full diagnostic check (TS + converter + Godot) unless --no-check is set.')
|
|
15
17
|
.argument('[files...]', 'TypeScript files or glob patterns to convert')
|
|
16
18
|
.option('--ts-dir <dir>', 'TypeScript source directory')
|
|
@@ -19,7 +21,10 @@ export function registerConvertCommand(program) {
|
|
|
19
21
|
.option('--tsconfig <path>', 'Path to tsconfig.json')
|
|
20
22
|
.option('--godot-path <path>', 'Path to Godot executable (enables GDScript validation)')
|
|
21
23
|
.option('--project-root <dir>', 'Godot project root for validation')
|
|
22
|
-
.option('--
|
|
24
|
+
.option('--use-cache', 'Skip conversion for files with a fresh cache entry. Fast, but can keep ' +
|
|
25
|
+
'stale .gd output when types in imported files or global typings changed ' +
|
|
26
|
+
'(freshness is judged by file content only)', false)
|
|
27
|
+
.option('--no-cache', 'Disable cache entirely (no reads, no writes)')
|
|
23
28
|
.option('--emit-on-error', 'Emit output files even when conversion errors occur', false)
|
|
24
29
|
.option('--no-emit', 'Dry-run: convert in memory, check for stale outputs, do not write files')
|
|
25
30
|
.option('--no-check', 'Skip the post-convert diagnostic check (TS + Godot)')
|
|
@@ -41,8 +46,13 @@ export function registerConvertCommand(program) {
|
|
|
41
46
|
// commander: --no-emit sets opts.emit = false, --no-check sets opts.check = false
|
|
42
47
|
const noEmit = opts.emit === false;
|
|
43
48
|
const noCheck = opts.check === false;
|
|
44
|
-
|
|
45
|
-
|
|
49
|
+
// Cache is write-only by default: every run converts fresh (correct even
|
|
50
|
+
// when types in OTHER files changed — content hashes can't see that),
|
|
51
|
+
// but results are still recorded so the watcher / ts-plugin / check
|
|
52
|
+
// phase can reuse them. `--use-cache` opts into the read-side skip;
|
|
53
|
+
// `--no-cache` disables the cache entirely.
|
|
54
|
+
const cache = opts.cache !== false ? new ProjectCache(cfg.cacheDir) : null;
|
|
55
|
+
const useCacheReads = opts.useCache === true && cache !== null;
|
|
46
56
|
debugLog(`${noEmit ? 'Checking' : 'Converting'} ${resolvedFiles.length} file(s)...`);
|
|
47
57
|
// Build the ts.Program once and share it across the write loop and the
|
|
48
58
|
// post-convert checker — avoids re-parsing every .ts file twice.
|
|
@@ -59,12 +69,12 @@ export function registerConvertCommand(program) {
|
|
|
59
69
|
for (const filePath of resolvedFiles) {
|
|
60
70
|
const relPath = relative(cfg.tsDir, filePath);
|
|
61
71
|
const outputPath = resolve(cfg.gdDir, relPath.replace(/\.ts$/, '.gd'));
|
|
62
|
-
if (cache?.isTsToGdFresh(filePath, outputPath)) {
|
|
72
|
+
if (useCacheReads && cache?.isTsToGdFresh(filePath, outputPath)) {
|
|
63
73
|
debugLog(`Skipped (cache): ${outputPath}`);
|
|
64
74
|
skipped++;
|
|
65
75
|
continue;
|
|
66
76
|
}
|
|
67
|
-
if (
|
|
77
|
+
if (useCacheReads && cache?.hasFreshCachedGd(filePath)) {
|
|
68
78
|
const promoted = cache.promoteCachedGd(filePath, outputPath);
|
|
69
79
|
if (promoted && cache.isTsToGdFresh(filePath, outputPath)) {
|
|
70
80
|
debugLog(`Promoted (cache-folder): ${outputPath}`);
|
package/dist/cli/convert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/cli/convert.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CACV,8FAA8F;QAC5F,8FAA8F,CACjG;SACA,QAAQ,CAAC,YAAY,EAAE,8CAA8C,CAAC;SACtE,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;SACvD,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;SACrD,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,CAAC;SACjD,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SACpD,MAAM,CACL,qBAAqB,EACrB,wDAAwD,CACzD;SACA,MAAM,CAAC,sBAAsB,EAAE,mCAAmC,CAAC;SACnE,MAAM,CAAC,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/cli/convert.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classification helpers for the member-access → `.get()` rewrite.
|
|
3
|
+
*
|
|
4
|
+
* Plain TS object types (interfaces, type literals, inferred object
|
|
5
|
+
* literals) are Dictionaries at GDScript runtime, so standalone member
|
|
6
|
+
* READS on them are emitted as `obj.get("prop")`. `.get()` exists on
|
|
7
|
+
* both `Dictionary` and `Object`, which makes the emitted form valid
|
|
8
|
+
* even when the classification is computed from stale types — the
|
|
9
|
+
* property that lets the watch/check pipeline treat staleness as a
|
|
10
|
+
* visible-diagnostics problem instead of a silent-runtime one.
|
|
11
|
+
*
|
|
12
|
+
* Writes are NOT rewritten (`obj.get("p") = v` is invalid GDScript;
|
|
13
|
+
* plain `obj.prop = v` works on both Dictionary and Object), and
|
|
14
|
+
* chained links / callee positions keep dot access (no safety
|
|
15
|
+
* difference, less output churn).
|
|
16
|
+
*/
|
|
17
|
+
import ts from 'typescript';
|
|
18
|
+
import type { GodotClassRegistry } from '../../typings/godot-registry.ts';
|
|
19
|
+
/**
|
|
20
|
+
* True when every non-nullish union constituent of `type` is a plain
|
|
21
|
+
* TS object type — i.e. a value that exists as a `Dictionary` in the
|
|
22
|
+
* generated GDScript.
|
|
23
|
+
*
|
|
24
|
+
* Deliberately conservative: anything unprovable (any/unknown/error
|
|
25
|
+
* types, type parameters, mixed unions, intersections) returns false
|
|
26
|
+
* so the caller falls back to the legacy optionality-based behavior.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isPlainObjectType(type: ts.Type, checker: ts.TypeChecker, registry?: GodotClassRegistry): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* True when `node` is the target of an assignment: LHS of `=` or any
|
|
31
|
+
* compound assignment (`+=`, `||=`, …), or the operand of `++`/`--`.
|
|
32
|
+
* Walks through parentheses and non-null assertions wrapping the node
|
|
33
|
+
* (`(obj.prop) = v`, `obj.prop! += 1`).
|
|
34
|
+
*
|
|
35
|
+
* Assignment targets must keep plain dot/index form — `obj.get("p") = v`
|
|
36
|
+
* is invalid GDScript, while `obj.prop = v` is valid on both Dictionary
|
|
37
|
+
* and Object.
|
|
38
|
+
*/
|
|
39
|
+
export declare function isAssignmentTarget(node: ts.Expression): boolean;
|
|
40
|
+
//# sourceMappingURL=access-rewrite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-rewrite.d.ts","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/access-rewrite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,OAAO,CAWT;AAuED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,OAAO,CA6B/D"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classification helpers for the member-access → `.get()` rewrite.
|
|
3
|
+
*
|
|
4
|
+
* Plain TS object types (interfaces, type literals, inferred object
|
|
5
|
+
* literals) are Dictionaries at GDScript runtime, so standalone member
|
|
6
|
+
* READS on them are emitted as `obj.get("prop")`. `.get()` exists on
|
|
7
|
+
* both `Dictionary` and `Object`, which makes the emitted form valid
|
|
8
|
+
* even when the classification is computed from stale types — the
|
|
9
|
+
* property that lets the watch/check pipeline treat staleness as a
|
|
10
|
+
* visible-diagnostics problem instead of a silent-runtime one.
|
|
11
|
+
*
|
|
12
|
+
* Writes are NOT rewritten (`obj.get("p") = v` is invalid GDScript;
|
|
13
|
+
* plain `obj.prop = v` works on both Dictionary and Object), and
|
|
14
|
+
* chained links / callee positions keep dot access (no safety
|
|
15
|
+
* difference, less output churn).
|
|
16
|
+
*/
|
|
17
|
+
import ts from 'typescript';
|
|
18
|
+
/**
|
|
19
|
+
* True when every non-nullish union constituent of `type` is a plain
|
|
20
|
+
* TS object type — i.e. a value that exists as a `Dictionary` in the
|
|
21
|
+
* generated GDScript.
|
|
22
|
+
*
|
|
23
|
+
* Deliberately conservative: anything unprovable (any/unknown/error
|
|
24
|
+
* types, type parameters, mixed unions, intersections) returns false
|
|
25
|
+
* so the caller falls back to the legacy optionality-based behavior.
|
|
26
|
+
*/
|
|
27
|
+
export function isPlainObjectType(type, checker, registry) {
|
|
28
|
+
const constituents = type.isUnion()
|
|
29
|
+
? type.types.filter((u) => !(u.flags & ts.TypeFlags.Null) && !(u.flags & ts.TypeFlags.Undefined))
|
|
30
|
+
: [type];
|
|
31
|
+
if (constituents.length === 0)
|
|
32
|
+
return false;
|
|
33
|
+
return constituents.every((c) => isPlainObjectConstituent(c, checker, registry));
|
|
34
|
+
}
|
|
35
|
+
function isPlainObjectConstituent(type, checker, registry) {
|
|
36
|
+
// Only structural object types qualify. Excludes any/unknown/error,
|
|
37
|
+
// primitives, enums, and type parameters (all unprovable or wrong).
|
|
38
|
+
if (!(type.flags & ts.TypeFlags.Object))
|
|
39
|
+
return false;
|
|
40
|
+
// Arrays/tuples map to GD Array which has no `.get()`.
|
|
41
|
+
if (checker.isArrayType(type) || checker.isTupleType(type))
|
|
42
|
+
return false;
|
|
43
|
+
// Callables / constructor types (incl. `typeof Class` statics access).
|
|
44
|
+
if (type.getCallSignatures().length > 0 ||
|
|
45
|
+
type.getConstructSignatures().length > 0) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
// Check both the alias name and the target symbol name, so a type
|
|
49
|
+
// alias can't smuggle an excluded type past the name checks.
|
|
50
|
+
const names = [
|
|
51
|
+
type.aliasSymbol?.getName(),
|
|
52
|
+
type.getSymbol()?.getName(),
|
|
53
|
+
].filter((n) => !!n);
|
|
54
|
+
for (const name of names) {
|
|
55
|
+
// `Dictionary` keeps its existing (optionality-based) semantics —
|
|
56
|
+
// the user explicitly opted into Godot Dictionary typing. `TSOnly`
|
|
57
|
+
// wraps TS-only values that never reach GD.
|
|
58
|
+
if (name === 'Dictionary' || name === 'TSOnly')
|
|
59
|
+
return false;
|
|
60
|
+
// Godot engine types are NOT plain objects even though our typings
|
|
61
|
+
// declare many of them as interfaces (value types like Vector2 have
|
|
62
|
+
// no `.get()` at runtime).
|
|
63
|
+
if (registry &&
|
|
64
|
+
(registry.hasClass(name) ||
|
|
65
|
+
registry.isConstructor(name) ||
|
|
66
|
+
registry.isGlobalEnum(name))) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Without a registry we cannot prove a NAMED type isn't a Godot type
|
|
71
|
+
// (value types are interfaces in our typings, and `.get()` on them
|
|
72
|
+
// crashes at runtime) — correctness over completeness: drop the
|
|
73
|
+
// rewrite. Anonymous literals (`__type`/`__object`) stay eligible;
|
|
74
|
+
// they can never be Godot types.
|
|
75
|
+
if (!registry && names.some((n) => !n.startsWith('__'))) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
// Class instances (user classes, scene-typing shadow classes) are GD
|
|
79
|
+
// Objects with real properties — keep dot access. Enum objects and
|
|
80
|
+
// namespaces in value position are not Dictionaries either.
|
|
81
|
+
const decls = type.getSymbol()?.getDeclarations() ?? [];
|
|
82
|
+
if (decls.some((d) => ts.isClassDeclaration(d) ||
|
|
83
|
+
ts.isClassExpression(d) ||
|
|
84
|
+
ts.isEnumDeclaration(d) ||
|
|
85
|
+
ts.isModuleDeclaration(d))) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* True when `node` is the target of an assignment: LHS of `=` or any
|
|
92
|
+
* compound assignment (`+=`, `||=`, …), or the operand of `++`/`--`.
|
|
93
|
+
* Walks through parentheses and non-null assertions wrapping the node
|
|
94
|
+
* (`(obj.prop) = v`, `obj.prop! += 1`).
|
|
95
|
+
*
|
|
96
|
+
* Assignment targets must keep plain dot/index form — `obj.get("p") = v`
|
|
97
|
+
* is invalid GDScript, while `obj.prop = v` is valid on both Dictionary
|
|
98
|
+
* and Object.
|
|
99
|
+
*/
|
|
100
|
+
export function isAssignmentTarget(node) {
|
|
101
|
+
let current = node;
|
|
102
|
+
let parent = current.parent;
|
|
103
|
+
while (parent &&
|
|
104
|
+
(ts.isParenthesizedExpression(parent) || ts.isNonNullExpression(parent))) {
|
|
105
|
+
current = parent;
|
|
106
|
+
parent = parent.parent;
|
|
107
|
+
}
|
|
108
|
+
if (!parent)
|
|
109
|
+
return false;
|
|
110
|
+
if (ts.isBinaryExpression(parent) &&
|
|
111
|
+
parent.left === current &&
|
|
112
|
+
parent.operatorToken.kind >= ts.SyntaxKind.FirstAssignment &&
|
|
113
|
+
parent.operatorToken.kind <= ts.SyntaxKind.LastAssignment) {
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
if ((ts.isPrefixUnaryExpression(parent) ||
|
|
117
|
+
ts.isPostfixUnaryExpression(parent)) &&
|
|
118
|
+
(parent.operator === ts.SyntaxKind.PlusPlusToken ||
|
|
119
|
+
parent.operator === ts.SyntaxKind.MinusMinusToken)) {
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=access-rewrite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-rewrite.js","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/access-rewrite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAW5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIlE,wBAAgB,cAAc,CAC5B,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,UAAU,GAClB,MAAM,CAwMR;AAkED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAyBtE;AAuDD,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAChC,MAAM,CA+ER;AAoED,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,cAAc,GACtB,MAAM,CAuGR;AAoFD,wBAAgB,oBAAoB,CAClC,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,gBAAgB,GACxB,MAAM,CA+DR;AAwCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,MAAM,CA+D1D;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,GAAG,MAAM,CAahE;AAID,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,aAAa,GACrB,MAAM,CAUR;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAID,wBAAgB,sBAAsB,CACpC,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,kBAAkB,GAC1B,MAAM,CAUR;AAID,wBAAgB,UAAU,CACxB,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,GAC7C,MAAM,CAqBR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,EAAE,CAAC,UAAU,GAClB,IAAI,IAAI,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,CAKlD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,CAAC,EAAE,mBAAmB,EACtB,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,kBAAkB,GAC7C,IAAI,CAUN;AAID,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,mBAAmB,EACtB,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,CAKR"}
|
|
@@ -3,6 +3,7 @@ import { tsTypeNodeToGdType } from "../common/index.js";
|
|
|
3
3
|
import { classifyInRhsType } from "./diagnostics.js";
|
|
4
4
|
import { tryEmitGdAs, tryEmitGdIs, tryEmitGdDict, tryEmitGdOps, } from "./gd-helpers.js";
|
|
5
5
|
import { typeContainsUndefined } from "./parameters.js";
|
|
6
|
+
import { isPlainObjectType, isAssignmentTarget } from "./access-rewrite.js";
|
|
6
7
|
// ---- Main Expression Emitter ----
|
|
7
8
|
export function emitExpression(t, node) {
|
|
8
9
|
// Identifiers
|
|
@@ -50,15 +51,19 @@ export function emitExpression(t, node) {
|
|
|
50
51
|
if (ts.isPropertyAccessExpression(node)) {
|
|
51
52
|
return emitPropertyAccess(t, node);
|
|
52
53
|
}
|
|
53
|
-
// Element access: a[b] — convert to .get() when
|
|
54
|
+
// Element access: a[b] — convert standalone reads to .get() when the
|
|
55
|
+
// object is a plain TS object (a Dictionary in GD), or when the element
|
|
56
|
+
// type includes undefined (legacy fallback for other object kinds).
|
|
54
57
|
if (ts.isElementAccessExpression(node)) {
|
|
55
58
|
const elemType = t.ctx.checker.getTypeAtLocation(node);
|
|
56
|
-
|
|
59
|
+
const objType = t.ctx.checker.getTypeAtLocation(node.expression);
|
|
60
|
+
if (isPlainObjectType(objType, t.ctx.checker, t.ctx.registry) ||
|
|
61
|
+
typeContainsUndefined(elemType)) {
|
|
57
62
|
const parent = node.parent;
|
|
58
63
|
const isChainedOrCalled = (ts.isCallExpression(parent) && parent.expression === node) ||
|
|
59
64
|
(ts.isPropertyAccessExpression(parent) && parent.expression === node) ||
|
|
60
65
|
(ts.isElementAccessExpression(parent) && parent.expression === node);
|
|
61
|
-
if (!isChainedOrCalled) {
|
|
66
|
+
if (!isChainedOrCalled && !isAssignmentTarget(node)) {
|
|
62
67
|
return `${t.emitExpression(node.expression)}.get(${t.emitExpression(node.argumentExpression)})`;
|
|
63
68
|
}
|
|
64
69
|
}
|
|
@@ -338,13 +343,23 @@ export function emitPropertyAccess(t, node) {
|
|
|
338
343
|
}
|
|
339
344
|
const obj = t.emitExpression(node.expression);
|
|
340
345
|
const prop = node.name.text;
|
|
341
|
-
//
|
|
342
|
-
// when
|
|
346
|
+
// Property access → `obj.get("prop")` rewrite. Applies to standalone
|
|
347
|
+
// READS when:
|
|
348
|
+
// - the object is a plain TS object type (interface / type literal /
|
|
349
|
+
// object literal) — a Dictionary in GD, where `.get()` is the
|
|
350
|
+
// stale-type-safe access form (it also exists on Object); or
|
|
351
|
+
// - the property type includes `undefined` (legacy fallback for other
|
|
352
|
+
// object kinds).
|
|
343
353
|
// Skip when:
|
|
344
354
|
// - chained or called: obj.prop(), obj.prop.inner, obj.prop["key"]
|
|
355
|
+
// - assignment target: obj.prop = v / obj.prop += v / obj.prop++
|
|
356
|
+
// (`obj.get("p") = v` is invalid GD; plain assignment works on both
|
|
357
|
+
// Dictionary and Object)
|
|
345
358
|
// - accessing a class field (always defined in GDScript)
|
|
346
359
|
const propType = t.ctx.checker.getTypeAtLocation(node);
|
|
347
|
-
|
|
360
|
+
const objType = t.ctx.checker.getTypeAtLocation(node.expression);
|
|
361
|
+
if (isPlainObjectType(objType, t.ctx.checker, t.ctx.registry) ||
|
|
362
|
+
typeContainsUndefined(propType)) {
|
|
348
363
|
// Walk up through non-null assertions (!) and parens to find the real parent
|
|
349
364
|
let effectiveNode = node;
|
|
350
365
|
let parent = node.parent;
|
|
@@ -364,7 +379,7 @@ export function emitPropertyAccess(t, node) {
|
|
|
364
379
|
const symbol = t.ctx.checker.getSymbolAtLocation(node.name);
|
|
365
380
|
const isClassField = symbol?.getDeclarations()?.some((d) => ts.isPropertyDeclaration(d)) ??
|
|
366
381
|
false;
|
|
367
|
-
if (!isChainedOrCalled && !isClassField) {
|
|
382
|
+
if (!isChainedOrCalled && !isClassField && !isAssignmentTarget(node)) {
|
|
368
383
|
return `${obj}.get("${prop}")`;
|
|
369
384
|
}
|
|
370
385
|
}
|
|
@@ -583,6 +598,15 @@ function isSelfExpression(node) {
|
|
|
583
598
|
}
|
|
584
599
|
// ---- Binary Expressions ----
|
|
585
600
|
export function emitBinaryExpression(t, node) {
|
|
601
|
+
// Destructuring assignment ([a, b] = arr / ({ x } = obj)) -> not
|
|
602
|
+
// supported. Declarations are rejected in visitVariableStatement; the
|
|
603
|
+
// assignment-expression form must fail loudly too — emitting the
|
|
604
|
+
// literal-as-LHS form would be silently invalid GDScript.
|
|
605
|
+
if (node.operatorToken.kind === ts.SyntaxKind.EqualsToken &&
|
|
606
|
+
(ts.isArrayLiteralExpression(node.left) ||
|
|
607
|
+
ts.isObjectLiteralExpression(node.left))) {
|
|
608
|
+
t.addDiagnostic(node, 'error', 'Destructuring assignment is not supported in GDScript');
|
|
609
|
+
}
|
|
586
610
|
// Nullish coalescing (??) -> not supported
|
|
587
611
|
if (node.operatorToken.kind === ts.SyntaxKind.QuestionQuestionToken) {
|
|
588
612
|
t.addDiagnostic(node, 'error', 'Nullish coalescing (`??`) is not supported in GDScript');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/expressions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/expressions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debounced full-project diagnostic check + error-driven self-heal for
|
|
3
|
+
* watch mode. Extracted from the Watcher class (file-size rule); the
|
|
4
|
+
* watcher delegates here via a small deps interface.
|
|
5
|
+
*
|
|
6
|
+
* Concurrency: checks now WRITE files (the heal pass), so overlapping
|
|
7
|
+
* runs are forbidden — `run()` is guarded by an in-flight flag, and a
|
|
8
|
+
* run requested while one is active is re-scheduled (debounced) after
|
|
9
|
+
* the active one finishes.
|
|
10
|
+
*/
|
|
11
|
+
import ts from 'typescript';
|
|
12
|
+
import type { ProjectCache } from '../cache/index.ts';
|
|
13
|
+
export interface CheckRunnerDeps {
|
|
14
|
+
tsDir: string;
|
|
15
|
+
gdDir: string;
|
|
16
|
+
projectRoot: string;
|
|
17
|
+
cacheDir?: string;
|
|
18
|
+
tsConfigPath?: string;
|
|
19
|
+
godotPath?: string;
|
|
20
|
+
emitOnError?: boolean;
|
|
21
|
+
debug?: boolean;
|
|
22
|
+
cache: ProjectCache;
|
|
23
|
+
/** Current set of watched .ts files (absolute paths). */
|
|
24
|
+
getTsFiles(): ReadonlySet<string>;
|
|
25
|
+
/** Program reuse: read the watcher's cached program (may be null). */
|
|
26
|
+
getProgram(): ts.Program | null;
|
|
27
|
+
/** Store a program built here so later batches reuse it. */
|
|
28
|
+
setProgram(program: ts.Program): void;
|
|
29
|
+
/** Ask the watcher to schedule another debounced check. */
|
|
30
|
+
requestRecheck(): void;
|
|
31
|
+
log(file: string, message: string, severity: string): void;
|
|
32
|
+
debugLog(message: string): void;
|
|
33
|
+
}
|
|
34
|
+
export declare class CheckRunner {
|
|
35
|
+
private deps;
|
|
36
|
+
/**
|
|
37
|
+
* Per-file diagnostic signature from the previous completed check.
|
|
38
|
+
* `null` = no baseline yet (first check after startup) — then every
|
|
39
|
+
* file with diagnostics counts as changed, intentionally healing
|
|
40
|
+
* stale-error files left over from previous sessions.
|
|
41
|
+
*/
|
|
42
|
+
private prevDiagSignatures;
|
|
43
|
+
/**
|
|
44
|
+
* Normalized paths of files converted since the last check. Their
|
|
45
|
+
* diagnostic signature legitimately changed (they were edited), so
|
|
46
|
+
* they're excluded from heal suspects.
|
|
47
|
+
*/
|
|
48
|
+
private batchConverted;
|
|
49
|
+
/**
|
|
50
|
+
* Files whose diagnostics moved in the post-heal recheck without
|
|
51
|
+
* having been healed themselves (e.g. a heal-write changed what Godot
|
|
52
|
+
* reports about a third file). They couldn't be acted on in that
|
|
53
|
+
* cycle (single heal iteration per check), so they're carried over as
|
|
54
|
+
* pre-seeded suspects for the next one.
|
|
55
|
+
*/
|
|
56
|
+
private pendingHealSuspects;
|
|
57
|
+
private running;
|
|
58
|
+
private rerunRequested;
|
|
59
|
+
private disposed;
|
|
60
|
+
private current;
|
|
61
|
+
constructor(deps: CheckRunnerDeps);
|
|
62
|
+
/** Record a file converted by the watcher's batch path. */
|
|
63
|
+
noteConverted(filePath: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* Run one check cycle. Never overlaps: a call while a cycle is active
|
|
66
|
+
* requests a re-schedule instead (the heal pass writes files — two
|
|
67
|
+
* interleaved chains could tear writes and stomp baselines).
|
|
68
|
+
*/
|
|
69
|
+
run(): void;
|
|
70
|
+
/** Block new runs and wait for the in-flight one (if any) to settle. */
|
|
71
|
+
dispose(): Promise<void>;
|
|
72
|
+
private runOnce;
|
|
73
|
+
/** One full-project diagnostics pass (reuses the watcher's program). */
|
|
74
|
+
private collect;
|
|
75
|
+
/**
|
|
76
|
+
* Error-driven self-heal. Files whose diagnostic signature changed
|
|
77
|
+
* without having been converted in the current batch are presumed
|
|
78
|
+
* stale (a type they depend on changed in another file): reconvert
|
|
79
|
+
* them in memory and rewrite the ones whose bytes differ. When bytes
|
|
80
|
+
* changed, rerun the diagnostic check ONCE; suspects that surface
|
|
81
|
+
* only in that second pass are carried over to the next cycle (a
|
|
82
|
+
* recheck is requested), keeping the one-heal-per-cycle bound while
|
|
83
|
+
* still converging.
|
|
84
|
+
*/
|
|
85
|
+
private healAndRecheck;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/watcher/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAQ5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQtD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;IACpB,yDAAyD;IACzD,UAAU,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,sEAAsE;IACtE,UAAU,IAAI,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;IAChC,4DAA4D;IAC5D,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;IACtC,2DAA2D;IAC3D,cAAc,IAAI,IAAI,CAAC;IACvB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAkB;IAE9B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAAoC;IAC9D;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAA0B;IAChD;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB,CAA0B;IAErD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAA8B;gBAEjC,IAAI,EAAE,eAAe;IAIjC,2DAA2D;IAC3D,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,GAAG,IAAI,IAAI;IAqBX,wEAAwE;IAClE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAMhB,OAAO;IA2CrB,wEAAwE;IACxE,OAAO,CAAC,OAAO;IAgBf;;;;;;;;;OASG;YACW,cAAc;CAoF7B"}
|