Mario Zechner 22ea76db1b [c] Port type extractor to TypeScript and improve codegen
- Ported extract-spine-cpp-types.js to TypeScript in type-extractor.ts
- Improved type interfaces with discriminated unions for better type safety
- Added proper isConst tracking for const-qualified methods
- Fixed exclusions to check method.isConst instead of return type
- Removed special type mappings (utf8, spine_void) - primitives pass through unchanged
- Made toCTypeName strict with proper error handling
- Documented all conversion functions with examples
- Excluded SpineObject from extraction (matches JS behavior)
- Removed original JS extractor as it's now replaced by TypeScript version

The TypeScript extractor produces identical output (107 files, 164 types) while providing better type information including isConst for methods and consistent isStatic fields.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-09 01:50:41 +02:00

71 lines
2.1 KiB
Plaintext

# Excluded types (whole type is skipped)
type: SkeletonClipping
type: Triangulator
type: SpineObject
type: TextureLoader
type: DebugExtension
type: DefaultSpineExtension
type: SpineExtension
type: Updateable
type: Pair
type: EventListener
type: AnimationStateListener
type: AnimationStateListenerObject
type: Pool
type: ArrayUtils
type: BlockAllocator
type: MathUtil
type: Array
type: PoolObject
type: HasRendererObject
type: String
type: StringBuffer
type: EventQueue
type: Json
type: BaseTimeline
# Excluded methods (specific methods on otherwise included types)
method: AnimationState::setListener
method: AnimationState::addListener
method: AnimationState::removeListener
method: AnimationState::clearListeners
method: AnimationState::disableQueue
method: AnimationState::enableQueue
method: AnimationState::setManualTrackEntryDisposal
method: AnimationState::getManualTrackEntryDisposal
method: Skeleton::updateCache
method: Skeleton::printUpdateCache
method: SkeletonData::setName
method: SkeletonData::setVersion
method: SkeletonData::setHash
method: SkeletonData::setImagesPath
method: SkeletonData::setAudioPath
method: SkeletonData::setFps
method: EventData::setIntValue
method: EventData::setFloatValue
method: EventData::setStringValue
method: EventData::setAudioPath
method: EventData::setVolume
method: EventData::setBalance
# Array<String> methods need special handling
method: AttachmentTimeline.getAttachmentNames
# BoneLocal/BonePose setScale is overloaded in a confusing way
method: BoneLocal::setScale
method: BonePose::setScale
# Color set is overloaded with conflicting signatures
method: Color::set
# Exclude const versions of getSetupPose() - we'll only expose the non-const version
method: BoneData::getSetupPose const
method: ConstraintDataGeneric::getSetupPose const
method: IkConstraintData::getSetupPose const
method: PathConstraintData::getSetupPose const
method: PhysicsConstraintData::getSetupPose const
method: PosedDataGeneric::getSetupPose const
method: SliderData::getSetupPose const
method: SlotData::getSetupPose const
method: TransformConstraintData::getSetupPose const