Skip to content

[Blueprints] Type Blueprint v2 theme collision handling - #3867

Merged
adamziel merged 1 commit into
trunkfrom
type/blueprint-v2-theme-if-already-installed
Jul 2, 2026
Merged

[Blueprints] Type Blueprint v2 theme collision handling#3867
adamziel merged 1 commit into
trunkfrom
type/blueprint-v2-theme-if-already-installed

Conversation

@adamziel

@adamziel adamziel commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

What?

Types the Blueprint v2 theme ifAlreadyInstalled policy as overwrite | skip | error.

Why?

Plugin installs already expose the collision policy in the v2 declaration type. Theme installs use the same policy shape, and typing it lets TypeScript consumers catch invalid values before a Blueprint reaches a runner.

Scope

This is type-only. It does not change the Blueprint v2 runner or theme install behavior.

Stack

Base: #3866

Testing

  • npm run format:uncommitted
  • git diff --check
  • npm exec nx run playground-blueprints:typecheck
  • npm exec nx run playground-blueprints:lint
  • npm exec nx run playground-blueprints:test:vite -- --testFiles=packages/playground/blueprints/src/tests/v2/blueprint-v2-declaration.spec.ts

Part of #2592.

@adamziel
adamziel marked this pull request as ready for review July 2, 2026 15:35
@adamziel adamziel closed this Jul 2, 2026
@adamziel adamziel reopened this Jul 2, 2026
Base automatically changed from type/blueprint-v2-theme-on-error to trunk July 2, 2026 16:53
@adamziel
adamziel requested review from a team and bgrgicak July 2, 2026 16:53
@adamziel
adamziel force-pushed the type/blueprint-v2-theme-if-already-installed branch from 2bff584 to 72fa845 Compare July 2, 2026 16:54
@adamziel
adamziel merged commit 99f713e into trunk Jul 2, 2026
154 of 156 checks passed
@adamziel
adamziel deleted the type/blueprint-v2-theme-if-already-installed branch July 2, 2026 17:32
adamziel added a commit that referenced this pull request Jul 2, 2026
## What?

Allows Blueprint v2 WXR content definitions to type `source` as either
one file reference or a list of file references.

## Why?

Other content import types already accept source lists. WXR imports can
also be split across multiple files, and TypeScript consumers should be
able to declare that without falling out of the v2 declaration type.

## Scope

This is type-only. It does not change import execution, author mapping,
URL rewriting, or runner behavior.

## Stack

Base: #3867

## Testing

- `npm run format:uncommitted`
- `git diff --check`
- `npm exec nx run playground-blueprints:typecheck`
- `npm exec nx run playground-blueprints:lint`
- `npm exec nx run playground-blueprints:test:vite --
--testFiles=packages/playground/blueprints/src/tests/v2/blueprint-v2-declaration.spec.ts`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment