Skip to content

fix: always use Full template compilation mode, matching Angular's local compilation behavior#19

Merged
Brooooooklyn merged 1 commit intomainfrom
fix/always-full-template-compilation-mode
Feb 10, 2026
Merged

fix: always use Full template compilation mode, matching Angular's local compilation behavior#19
Brooooooklyn merged 1 commit intomainfrom
fix/always-full-template-compilation-mode

Conversation

@Brooooooklyn
Copy link
Copy Markdown
Member

@Brooooooklyn Brooooooklyn commented Feb 9, 2026

OXC is a single-file compiler equivalent to Angular's local compilation mode. In local mode, Angular always sets hasDirectiveDependencies=true (handler.ts:1257), so DomOnly mode is never used for component templates. Remove the conditional DomOnly/Full logic and always use Full mode.

  • Remove standalone_explicitly_set and has_directive_dependencies from ComponentMetadata
  • Remove has_any_non_pipe_import_elements() heuristic function
  • Remove useDomOnlyMode from NAPI bindings and TypeScript types
  • Remove shouldUseDomOnlyMode() from comparison tool
  • Fix build-test script to use comma-separated cargo features
  • Add test asserting standalone components use Full mode
  • Update existing DomOnly tests to assert Full mode

Note

Medium Risk
Changes template codegen to always emit Full-mode instructions and removes the useDomOnlyMode toggle across Rust + NAPI, which can affect generated output and any consumers relying on DomOnly-specific behavior or APIs.

Overview
Component template compilation is now always emitted in TemplateCompilationMode::Full (matching Angular local compilation), removing the prior DomOnly-vs-Full decision logic.

This deletes DomOnly-related metadata/heuristics (e.g. standalone_explicitly_set, has_directive_dependencies, and pipe-vs-directive import detection), removes the useDomOnlyMode option from NAPI/TypeScript bindings and the e2e compare tooling, and updates integration tests/snapshots to assert Full-mode instructions (ɵɵelementStart, ɵɵlistener, ɵɵproperty).

Written by Cursor Bugbot for commit 34e5286. This will update automatically on new commits. Configure here.

@Brooooooklyn Brooooooklyn force-pushed the fix/always-full-template-compilation-mode branch from 80e21d4 to adae378 Compare February 10, 2026 01:14
@Brooooooklyn Brooooooklyn force-pushed the fix/always-full-template-compilation-mode branch from adae378 to b3ed7fd Compare February 10, 2026 01:20
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

…cal compilation behavior

OXC is a single-file compiler equivalent to Angular's local compilation mode.
In local mode, Angular always sets hasDirectiveDependencies=true (handler.ts:1257),
so DomOnly mode is never used for component templates. Remove the conditional
DomOnly/Full logic and always use Full mode.

- Remove standalone_explicitly_set and has_directive_dependencies from ComponentMetadata
- Remove has_any_non_pipe_import_elements() heuristic function
- Remove useDomOnlyMode from NAPI bindings and TypeScript types
- Remove shouldUseDomOnlyMode() from comparison tool
- Fix build-test script to use comma-separated cargo features
- Fix fixture runner to use experimental-local compilation mode matching OXC
- Add test asserting standalone components use Full mode
- Update existing DomOnly tests to assert Full mode

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Brooooooklyn Brooooooklyn force-pushed the fix/always-full-template-compilation-mode branch from b3ed7fd to 34e5286 Compare February 10, 2026 06:14
@Brooooooklyn Brooooooklyn merged commit 61b53e1 into main Feb 10, 2026
3 checks passed
@Brooooooklyn Brooooooklyn deleted the fix/always-full-template-compilation-mode branch February 10, 2026 06:25
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