Skip to content

Decouple IModelTransformer from export handler - #345

Draft
DanRod1999 wants to merge 2 commits into
mainfrom
danrod1999-decouple-exporter-transformer
Draft

Decouple IModelTransformer from export handler#345
DanRod1999 wants to merge 2 commits into
mainfrom
danrod1999-decouple-exporter-transformer

Conversation

@DanRod1999

@DanRod1999 DanRod1999 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

IModelTransformer currently serves as both the transformation facade and the IModelExportHandler registered with IModelExporter, coupling consumer-facing orchestration to exporter callback plumbing.

This draft explores a dedicated internal export-handler adapter registered with the exporter instead of the transformer itself. Existing transformer callback overrides, exporter configuration, progress handling, skip behavior, and callback ordering remain supported through delegation. It also replaces private aspect-traversal access with an explicit internal exporter API.

This is a major API change because IModelTransformer no longer extends or is assignable to IModelExportHandler. Migration guidance, API reports, regression coverage, and a major beachball change entry are included.

The forwarding adapter improves type separation but retains the mirrored transformer callback surface and much of the behavioral coupling. The desired component boundaries are now being defined in the focused architectural sub-issue before this approach is finalized.

Element-pipeline refactoring and removal of callback isUpdate parameters are intentionally tracked independently.

Related to #348

generated with GPT-5.6 Sol

DanRod1999 and others added 2 commits July 23, 2026 16:25
Register a dedicated export handler for IModelTransformer while preserving existing callback dispatch and exporter customization.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant