typescript-to-gdscript 0.1.0 → 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 +232 -104
- 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/common/index.d.ts +17 -1
- package/dist/converter/common/index.d.ts.map +1 -1
- package/dist/converter/common/index.js +69 -19
- package/dist/converter/common/index.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/class-members.d.ts.map +1 -1
- package/dist/converter/ts-to-gd/class-members.js +5 -5
- package/dist/converter/ts-to-gd/class-members.js.map +1 -1
- package/dist/converter/ts-to-gd/expressions.d.ts.map +1 -1
- package/dist/converter/ts-to-gd/expressions.js +32 -8
- package/dist/converter/ts-to-gd/expressions.js.map +1 -1
- package/dist/converter/ts-to-gd/file-scope.d.ts.map +1 -1
- package/dist/converter/ts-to-gd/file-scope.js +1 -1
- package/dist/converter/ts-to-gd/file-scope.js.map +1 -1
- package/dist/converter/ts-to-gd/gd-getset.js +2 -2
- package/dist/converter/ts-to-gd/gd-getset.js.map +1 -1
- package/dist/converter/ts-to-gd/index.d.ts.map +1 -1
- package/dist/converter/ts-to-gd/index.js +1 -0
- package/dist/converter/ts-to-gd/index.js.map +1 -1
- package/dist/converter/ts-to-gd/parameters.d.ts.map +1 -1
- package/dist/converter/ts-to-gd/parameters.js +2 -2
- package/dist/converter/ts-to-gd/parameters.js.map +1 -1
- package/dist/converter/ts-to-gd/statements.d.ts.map +1 -1
- package/dist/converter/ts-to-gd/statements.js +1 -1
- package/dist/converter/ts-to-gd/statements.js.map +1 -1
- package/dist/typings/override-system.d.ts.map +1 -1
- package/dist/typings/override-system.js +6 -0
- package/dist/typings/override-system.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 +6 -1
- package/typings/classes/AccessibilityServer.d.ts +1 -1
- package/typings/classes/AnimationLibrary.d.ts +4 -4
- package/typings/classes/AnimationNodeBlendSpace1D.d.ts +28 -2
- package/typings/classes/AnimationNodeBlendSpace2D.d.ts +28 -2
- package/typings/classes/AreaLight3D.d.ts +37 -0
- package/typings/classes/AudioEffectInstance.d.ts +1 -1
- package/typings/classes/AudioStreamRandomizer.d.ts +10 -0
- package/typings/classes/Basis.d.ts +2 -2
- package/typings/classes/CPUParticles2D.d.ts +2 -2
- package/typings/classes/CPUParticles3D.d.ts +2 -2
- package/typings/classes/CanvasItem.d.ts +15 -0
- package/typings/classes/CodeEdit.d.ts +2 -0
- package/typings/classes/CollisionObject2D.d.ts +2 -2
- package/typings/classes/Container.d.ts +1 -0
- package/typings/classes/Control.d.ts +68 -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/DirAccess.d.ts +6 -1
- package/typings/classes/DisplayServer.d.ts +35 -10
- package/typings/classes/DrawableTexture2D.d.ts +0 -4
- package/typings/classes/EditorCommandPalette.d.ts +0 -2
- package/typings/classes/EditorContextMenuPlugin.d.ts +4 -0
- package/typings/classes/EditorDock.d.ts +2 -3
- package/typings/classes/EditorExportPlatform.d.ts +4 -2
- package/typings/classes/EditorExportPlugin.d.ts +2 -0
- package/typings/classes/EditorFeatureProfile.d.ts +1 -1
- package/typings/classes/EditorInspector.d.ts +10 -0
- package/typings/classes/EditorInterface.d.ts +2 -2
- 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 +44 -7
- package/typings/classes/EditorTranslationParserPlugin.d.ts +4 -0
- package/typings/classes/EditorVCSInterface.d.ts +6 -2
- package/typings/classes/FileDialog.d.ts +15 -0
- package/typings/classes/Font.d.ts +13 -1
- 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 +15 -2
- package/typings/classes/Geometry2D.d.ts +2 -2
- package/typings/classes/Image.d.ts +6 -4
- package/typings/classes/ImageFormatLoader.d.ts +5 -0
- package/typings/classes/Input.d.ts +11 -2
- package/typings/classes/InputEventMouseMotion.d.ts +2 -2
- package/typings/classes/ItemList.d.ts +20 -0
- 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/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 +1 -1
- 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/Node.d.ts +6 -0
- package/typings/classes/Node3D.d.ts +6 -4
- package/typings/classes/OS.d.ts +1 -1
- package/typings/classes/Object.d.ts +11 -8
- package/typings/classes/OptimizedTranslation.d.ts +2 -2
- package/typings/classes/OptionButton.d.ts +51 -7
- package/typings/classes/PacketPeerExtension.d.ts +1 -1
- package/typings/classes/ParticleProcessMaterial.d.ts +58 -0
- package/typings/classes/PhysicsDirectSpaceState2DExtension.d.ts +6 -6
- package/typings/classes/PhysicsDirectSpaceState3DExtension.d.ts +6 -6
- package/typings/classes/PhysicsServer2DExtension.d.ts +5 -5
- package/typings/classes/PhysicsServer3DExtension.d.ts +1 -1
- package/typings/classes/PopupMenu.d.ts +58 -6
- package/typings/classes/ProjectSettings.d.ts +89 -21
- 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/RandomNumberGenerator.d.ts +4 -2
- package/typings/classes/RenderSceneBuffersConfiguration.d.ts +4 -1
- package/typings/classes/RenderingDevice.d.ts +93 -23
- package/typings/classes/RenderingServer.d.ts +51 -3
- package/typings/classes/Resource.d.ts +2 -0
- package/typings/classes/ResourceImporterOBJ.d.ts +1 -1
- package/typings/classes/ResourceImporterScene.d.ts +11 -3
- package/typings/classes/RichTextLabel.d.ts +14 -6
- package/typings/classes/SceneTree.d.ts +29 -5
- package/typings/classes/Script.d.ts +2 -0
- package/typings/classes/ScriptEditor.d.ts +7 -0
- package/typings/classes/ScriptLanguageExtension.d.ts +7 -0
- package/typings/classes/ScrollContainer.d.ts +17 -5
- package/typings/classes/SkeletonModification2DJiggle.d.ts +4 -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/TabBar.d.ts +20 -0
- package/typings/classes/TabContainer.d.ts +21 -3
- package/typings/classes/TextEdit.d.ts +2 -2
- package/typings/classes/TextServer.d.ts +23 -1
- package/typings/classes/TextServerExtension.d.ts +23 -1
- package/typings/classes/TileSet.d.ts +3 -1
- package/typings/classes/Tree.d.ts +16 -7
- package/typings/classes/TreeItem.d.ts +9 -2
- 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 +17 -1
- package/typings/classes/Window.d.ts +20 -6
- package/typings/classes/_globals.d.ts +104 -26
- package/typings/classes/index.d.ts +10 -112
- package/typings/godot-class-registry.json +885 -3604
- package/typings/classes/VisualShader.d.ts +0 -112
- 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
|
@@ -107,6 +107,13 @@ export function isFloatType(type, checker) {
|
|
|
107
107
|
/**
|
|
108
108
|
* Converts a TypeScript type to its GDScript type annotation string.
|
|
109
109
|
* Returns null if the type should be omitted.
|
|
110
|
+
*
|
|
111
|
+
* NOTE: unlike {@link tsTypeNodeToGdType}, this `ts.Type`-based variant does
|
|
112
|
+
* NOT classify reference types — it returns the symbol name verbatim for any
|
|
113
|
+
* class-like type, so an `object`/`interface`/unknown type would leak a bogus
|
|
114
|
+
* annotation. It is currently unused for emission (kept only for its own
|
|
115
|
+
* recursion). Do not wire it into an emit path without adding the same
|
|
116
|
+
* class/enum/registry classification `classifyTypeReferenceName` applies.
|
|
110
117
|
*/
|
|
111
118
|
export function tsTypeToGdType(type, checker) {
|
|
112
119
|
// Check for int/float aliases
|
|
@@ -165,7 +172,7 @@ export function tsTypeToGdType(type, checker) {
|
|
|
165
172
|
/**
|
|
166
173
|
* Converts a TypeScript type annotation node to GDScript type string.
|
|
167
174
|
*/
|
|
168
|
-
export function tsTypeNodeToGdType(typeNode, checker, sourceFile, className) {
|
|
175
|
+
export function tsTypeNodeToGdType(typeNode, checker, sourceFile, className, registry) {
|
|
169
176
|
if (!typeNode)
|
|
170
177
|
return null;
|
|
171
178
|
// Check for literal type names like `int` and `float`
|
|
@@ -191,23 +198,9 @@ export function tsTypeNodeToGdType(typeNode, checker, sourceFile, className) {
|
|
|
191
198
|
return null;
|
|
192
199
|
if (arg.kind === ts.SyntaxKind.VoidKeyword)
|
|
193
200
|
return null;
|
|
194
|
-
return tsTypeNodeToGdType(arg, checker, sourceFile, className);
|
|
195
|
-
}
|
|
196
|
-
// Type aliases (non-class) → omit annotation. GDScript has no equivalent
|
|
197
|
-
// and `Variant` conveys nothing beyond "untyped", which the bare `var x`
|
|
198
|
-
// / `func f(x)` forms already express.
|
|
199
|
-
const symbol = checker.getSymbolAtLocation(typeNode.typeName);
|
|
200
|
-
if (symbol) {
|
|
201
|
-
const declarations = symbol.getDeclarations();
|
|
202
|
-
if (declarations && declarations.length > 0) {
|
|
203
|
-
const decl = declarations[0];
|
|
204
|
-
if (ts.isTypeAliasDeclaration(decl)) {
|
|
205
|
-
return null;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
201
|
+
return tsTypeNodeToGdType(arg, checker, sourceFile, className, registry);
|
|
208
202
|
}
|
|
209
|
-
|
|
210
|
-
return name;
|
|
203
|
+
return classifyTypeReferenceName(typeNode, name, checker, registry);
|
|
211
204
|
}
|
|
212
205
|
// Keyword types
|
|
213
206
|
if (typeNode.kind === ts.SyntaxKind.NumberKeyword)
|
|
@@ -228,7 +221,7 @@ export function tsTypeNodeToGdType(typeNode, checker, sourceFile, className) {
|
|
|
228
221
|
return null;
|
|
229
222
|
// Array type: T[] -> Array[T]
|
|
230
223
|
if (ts.isArrayTypeNode(typeNode)) {
|
|
231
|
-
const elementType = tsTypeNodeToGdType(typeNode.elementType, checker, sourceFile, className);
|
|
224
|
+
const elementType = tsTypeNodeToGdType(typeNode.elementType, checker, sourceFile, className, registry);
|
|
232
225
|
return elementType ? `Array[${elementType}]` : 'Array';
|
|
233
226
|
}
|
|
234
227
|
// Function type: () => void -> Callable
|
|
@@ -243,7 +236,7 @@ export function tsTypeNodeToGdType(typeNode, checker, sourceFile, className) {
|
|
|
243
236
|
if (ts.isUnionTypeNode(typeNode)) {
|
|
244
237
|
const nonNull = typeNode.types.filter((t) => !isNullLiteralTypeNode(t));
|
|
245
238
|
if (nonNull.length === 1 && nonNull.length !== typeNode.types.length) {
|
|
246
|
-
return tsTypeNodeToGdType(nonNull[0], checker, sourceFile, className);
|
|
239
|
+
return tsTypeNodeToGdType(nonNull[0], checker, sourceFile, className, registry);
|
|
247
240
|
}
|
|
248
241
|
return null;
|
|
249
242
|
}
|
|
@@ -252,6 +245,63 @@ export function tsTypeNodeToGdType(typeNode, checker, sourceFile, className) {
|
|
|
252
245
|
}
|
|
253
246
|
return null;
|
|
254
247
|
}
|
|
248
|
+
/**
|
|
249
|
+
* Classify a TS type-reference name and decide whether it should be emitted
|
|
250
|
+
* as a GDScript type annotation.
|
|
251
|
+
*
|
|
252
|
+
* Only types that GDScript actually has are emitted:
|
|
253
|
+
* - User / Godot `class` declarations and `enum` declarations (resolved via
|
|
254
|
+
* the TS checker — user classes resolve locally even without the Godot
|
|
255
|
+
* typings loaded).
|
|
256
|
+
* - Godot built-in types recognised *by name* from the registry: classes
|
|
257
|
+
* (`Node`, `Node2D`, …), value-type constructors (`Vector2`, `Color`,
|
|
258
|
+
* `Dictionary`, …) and global enums (`Key`, `MouseButton`, …). The
|
|
259
|
+
* name-based check is what keeps Godot types working in test/program
|
|
260
|
+
* setups that don't load the Godot `.d.ts` typings.
|
|
261
|
+
*
|
|
262
|
+
* Everything else — type aliases, plain interfaces, `object`-like types,
|
|
263
|
+
* dotted refs that don't resolve to a class/enum (`Node.ProcessMode`,
|
|
264
|
+
* `Outer.SomeIface`) and unknown / unresolved names — is omitted (the bare
|
|
265
|
+
* `var x` / `func f(x)` form is the idiomatic "untyped" GD). GD type hints are
|
|
266
|
+
* optional, so dropping an unverifiable type is always safe; emitting a bogus
|
|
267
|
+
* one would break the `.gd`.
|
|
268
|
+
*
|
|
269
|
+
* Omitting is always safe; emitting an annotation GDScript doesn't recognise
|
|
270
|
+
* breaks the generated `.gd`. So when no registry is available the converter
|
|
271
|
+
* can't recognise Godot built-ins by name — it only emits types it can prove
|
|
272
|
+
* are classes/enums (via the checker) and drops the rest, rather than risk
|
|
273
|
+
* leaking an invalid type.
|
|
274
|
+
*/
|
|
275
|
+
function classifyTypeReferenceName(typeNode, name, checker, registry) {
|
|
276
|
+
// Resolve the symbol, following import aliases to the real declaration so
|
|
277
|
+
// that types imported from another file are classified by what they are,
|
|
278
|
+
// not by the `ImportSpecifier` binding.
|
|
279
|
+
let symbol = checker.getSymbolAtLocation(typeNode.typeName);
|
|
280
|
+
if (symbol && symbol.flags & ts.SymbolFlags.Alias) {
|
|
281
|
+
symbol = checker.getAliasedSymbol(symbol);
|
|
282
|
+
}
|
|
283
|
+
const declarations = symbol?.getDeclarations() ?? [];
|
|
284
|
+
// Type aliases have no GDScript equivalent → omit.
|
|
285
|
+
if (declarations.some(ts.isTypeAliasDeclaration))
|
|
286
|
+
return null;
|
|
287
|
+
// User / Godot `class` and `enum` declarations are valid GD types.
|
|
288
|
+
if (declarations.some((d) => ts.isClassDeclaration(d) || ts.isEnumDeclaration(d))) {
|
|
289
|
+
return name;
|
|
290
|
+
}
|
|
291
|
+
// Godot built-in types are recognised by name (works without typings).
|
|
292
|
+
if (registry &&
|
|
293
|
+
(registry.hasClass(name) ||
|
|
294
|
+
registry.isConstructor(name) ||
|
|
295
|
+
registry.isGlobalEnum(name))) {
|
|
296
|
+
return name;
|
|
297
|
+
}
|
|
298
|
+
// Whatever is left is a non-class type (interface, `object`-like, namespace),
|
|
299
|
+
// a dotted ref we can't verify (`Node.ProcessMode`, `Outer.SomeIface`), or an
|
|
300
|
+
// unknown / unresolved name — none provably a GD type. Omit the annotation:
|
|
301
|
+
// GD type hints are optional, so dropping a type is always safe, whereas
|
|
302
|
+
// emitting a bogus one breaks the generated GDScript.
|
|
303
|
+
return null;
|
|
304
|
+
}
|
|
255
305
|
/** True for the `null` keyword wrapped in a `LiteralTypeNode`. */
|
|
256
306
|
function isNullLiteralTypeNode(node) {
|
|
257
307
|
return (ts.isLiteralTypeNode(node) &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/converter/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/converter/common/index.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":"class-members.d.ts","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/class-members.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAKlE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,OAAO,CAGT;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAcN;
|
|
1
|
+
{"version":3,"file":"class-members.d.ts","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/class-members.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAKlE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,OAAO,CAGT;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAcN;AAwCD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,OAAO,CAGT;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAaN;AAID,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAC5B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CA+DN;AAID,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,EAAE,CAAC,sBAAsB,GAAG,SAAS,EAC9C,OAAO,EAAE,EAAE,CAAC,sBAAsB,GAAG,SAAS,EAC9C,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAiEN;AAID,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,EAAE,CAAC,sBAAsB,EAC/B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAWN;AAID,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAC1B,CAAC,EAAE,mBAAmB,GACrB,IAAI,CAuCN;AAID,wBAAgB,aAAa,CAC3B,IAAI,EAAE,EAAE,CAAC,aAAa,EACtB,CAAC,EAAE,mBAAmB,GACrB,MAAM,EAAE,CA6BV;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKhD"}
|
|
@@ -50,7 +50,7 @@ function extractSignalParams(node, t) {
|
|
|
50
50
|
paramName = `arg${i + 1}`;
|
|
51
51
|
typeNode = element;
|
|
52
52
|
}
|
|
53
|
-
const gdType = tsTypeNodeToGdType(typeNode, t.ctx.checker, t.ctx.sourceFile, t.currentClassName);
|
|
53
|
+
const gdType = tsTypeNodeToGdType(typeNode, t.ctx.checker, t.ctx.sourceFile, t.currentClassName, t.ctx.registry);
|
|
54
54
|
params.push(gdType ? { name: paramName, type: gdType } : { name: paramName });
|
|
55
55
|
}
|
|
56
56
|
return params;
|
|
@@ -99,7 +99,7 @@ export function visitPropertyDeclaration(node, t) {
|
|
|
99
99
|
// `static var` when paired with `static`). Class-level constants
|
|
100
100
|
// are declared via a paired `namespace ClassName { export const X = ... }`
|
|
101
101
|
// block instead — that lifts into `const X = ...` inside the GD class.
|
|
102
|
-
const gdType = tsTypeNodeToGdType(node.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName);
|
|
102
|
+
const gdType = tsTypeNodeToGdType(node.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName, t.ctx.registry);
|
|
103
103
|
const staticPrefix = isStatic ? 'static ' : '';
|
|
104
104
|
let decl = `${staticPrefix}var ${name}`;
|
|
105
105
|
if (gdType)
|
|
@@ -119,12 +119,12 @@ export function visitAccessorPair(name, getNode, setNode, t) {
|
|
|
119
119
|
const pos = t.getLineAndCol(getNode ?? setNode);
|
|
120
120
|
let gdType = null;
|
|
121
121
|
if (getNode?.type) {
|
|
122
|
-
gdType = tsTypeNodeToGdType(getNode.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName);
|
|
122
|
+
gdType = tsTypeNodeToGdType(getNode.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName, t.ctx.registry);
|
|
123
123
|
}
|
|
124
124
|
else if (setNode &&
|
|
125
125
|
setNode.parameters.length > 0 &&
|
|
126
126
|
setNode.parameters[0].type) {
|
|
127
|
-
gdType = tsTypeNodeToGdType(setNode.parameters[0].type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName);
|
|
127
|
+
gdType = tsTypeNodeToGdType(setNode.parameters[0].type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName, t.ctx.registry);
|
|
128
128
|
}
|
|
129
129
|
const typeSuffix = gdType ? `: ${gdType}` : '';
|
|
130
130
|
t.emitter.writeLine(`var ${name}${typeSuffix}:`, pos.line, pos.col);
|
|
@@ -184,7 +184,7 @@ export function visitMethodDeclaration(node, t) {
|
|
|
184
184
|
const pos = t.getLineAndCol(node);
|
|
185
185
|
const name = node.name.getText(t.ctx.sourceFile);
|
|
186
186
|
const params = t.emitParameters(node.parameters);
|
|
187
|
-
const returnType = tsTypeNodeToGdType(node.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName);
|
|
187
|
+
const returnType = tsTypeNodeToGdType(node.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName, t.ctx.registry);
|
|
188
188
|
const returnAnnotation = returnType ? ` -> ${returnType}` : '';
|
|
189
189
|
const decorators = getDecorators(node, t);
|
|
190
190
|
for (const dec of decorators)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-members.js","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/class-members.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"class-members.js","sourceRoot":"","sources":["../../../src/converter/ts-to-gd/class-members.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');
|
|
@@ -749,7 +773,7 @@ export function emitTemplateExpression(t, node) {
|
|
|
749
773
|
export function emitLambda(t, node) {
|
|
750
774
|
const params = t.emitParameters(node.parameters);
|
|
751
775
|
// Return type
|
|
752
|
-
const returnType = tsTypeNodeToGdType(node.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName);
|
|
776
|
+
const returnType = tsTypeNodeToGdType(node.type, t.ctx.checker, t.ctx.sourceFile, t.currentClassName, t.ctx.registry);
|
|
753
777
|
const returnAnnotation = returnType ? ` -> ${returnType}` : '';
|
|
754
778
|
if (ts.isBlock(node.body)) {
|
|
755
779
|
// Multi-line lambda: return header only. Body will be emitted by emitLambdaBody().
|