diff --git a/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/package.json b/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/package.json new file mode 100644 index 00000000..a3f69d92 --- /dev/null +++ b/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/package.json @@ -0,0 +1,7 @@ +{ + "name": "additional-envs", + "private": true, + "scripts": { + "hello": "echo hello" + } +} diff --git a/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/pnpm-workspace.yaml b/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/pnpm-workspace.yaml new file mode 100644 index 00000000..a62fa0dc --- /dev/null +++ b/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/pnpm-workspace.yaml @@ -0,0 +1 @@ +# no `packages` field diff --git a/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/snapshots.toml b/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/snapshots.toml new file mode 100644 index 00000000..84446107 --- /dev/null +++ b/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/snapshots.toml @@ -0,0 +1,3 @@ +[[plan]] +name = "allow `packages` in pnpm-workspace.yaml to be optional" +args = ["run", "hello"] diff --git a/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/snapshots/query - allow `packages` in pnpm-workspace.yaml to be optional.snap b/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/snapshots/query - allow `packages` in pnpm-workspace.yaml to be optional.snap new file mode 100644 index 00000000..07834655 --- /dev/null +++ b/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/snapshots/query - allow `packages` in pnpm-workspace.yaml to be optional.snap @@ -0,0 +1,53 @@ +--- +source: crates/vite_task_plan/tests/plan_snapshots/main.rs +expression: "&plan_json" +input_file: crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional +--- +{ + "root_node": { + "Expanded": [ + { + "key": [ + "/", + "hello" + ], + "node": { + "task_display": { + "package_name": "additional-envs", + "task_name": "hello", + "package_path": "/" + }, + "items": [ + { + "execution_item_display": { + "task_display": { + "package_name": "additional-envs", + "task_name": "hello", + "package_path": "/" + }, + "command": "echo hello", + "and_item_index": null, + "cwd": "/" + }, + "kind": { + "Leaf": { + "InProcess": { + "kind": { + "Echo": { + "strings": [ + "hello" + ], + "trailing_newline": true + } + } + } + } + } + } + ] + }, + "neighbors": [] + } + ] + } +} diff --git a/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/snapshots/task graph.snap b/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/snapshots/task graph.snap new file mode 100644 index 00000000..2a686412 --- /dev/null +++ b/crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional/snapshots/task graph.snap @@ -0,0 +1,35 @@ +--- +source: crates/vite_task_plan/tests/plan_snapshots/main.rs +expression: task_graph_json +input_file: crates/vite_task_plan/tests/plan_snapshots/fixtures/pnpm-workspace-packages-optional +--- +[ + { + "key": [ + "/", + "hello" + ], + "node": { + "task_display": { + "package_name": "additional-envs", + "task_name": "hello", + "package_path": "/" + }, + "resolved_config": { + "command": "echo hello", + "resolved_options": { + "cwd": "/", + "cache_config": { + "env_config": { + "fingerprinted_envs": [], + "pass_through_envs": [ + "" + ] + } + } + } + } + }, + "neighbors": [] + } +] diff --git a/crates/vite_workspace/src/lib.rs b/crates/vite_workspace/src/lib.rs index 23c3cb1e..0734b5ac 100644 --- a/crates/vite_workspace/src/lib.rs +++ b/crates/vite_workspace/src/lib.rs @@ -25,6 +25,7 @@ struct PnpmWorkspace { /// The packages to include in the workspace. /// /// + #[serde(default)] packages: Vec, }