Skip to content

refactor: deduplicate code, improve type safety, simplify error classes#480

Merged
jackwener merged 1 commit intomainfrom
refactor/code-quality-improvements
Mar 26, 2026
Merged

refactor: deduplicate code, improve type safety, simplify error classes#480
jackwener merged 1 commit intomainfrom
refactor/code-quality-improvements

Conversation

@jackwener
Copy link
Copy Markdown
Owner

Summary

  • Extract shared parseYamlArgs() to yaml-schema.ts, eliminating duplicate YAML args parsing in discovery.ts and build-manifest.ts
  • Unify BROWSER_ONLY_STEPS: export from capabilityRouting.ts, reuse in pipeline executor (fixes missing intercept/tap in retry set)
  • Remove dead normalizeArgValue from commanderAdapter; bool coercion now handled solely by coerceAndValidateArgs
  • Add closeWindow?() to IPage interface, replacing unsafe casts in executor
  • BrowserBridge/CDPBridge implements IBrowserFactory, removing double cast in getBrowserFactory()
  • Simplify CliError subclasses with new.target.name (9 redundant this.name assignments removed)
  • Add hook dedup in addHook() to prevent duplicate registrations
  • Fix normalizeRows to safely handle primitive values
  • Unify CommandArgs type: execution.ts now imports from registry.ts
  • Cache strategyLabel() call in cli.ts list command

Net: -68 lines across 16 files, zero new dependencies.

Test plan

  • tsc --noEmit passes
  • All 337 unit tests pass
  • E2E tests unaffected (failures are pre-existing network-dependent)

- Extract shared parseYamlArgs() to yaml-schema.ts, eliminating duplicate
  YAML args parsing in discovery.ts and build-manifest.ts
- Unify BROWSER_ONLY_STEPS: export from capabilityRouting.ts, reuse in
  pipeline executor (fixes missing intercept/tap in retry set)
- Remove dead normalizeArgValue from commanderAdapter; bool coercion now
  handled solely by coerceAndValidateArgs in execution.ts
- Add closeWindow?() to IPage interface, replacing unsafe casts in executor
- BrowserBridge/CDPBridge implement IBrowserFactory, removing double cast
  in getBrowserFactory()
- Simplify CliError subclasses with new.target.name (9 redundant this.name
  assignments removed)
- Add hook dedup in addHook() to prevent duplicate registrations
- Fix normalizeRows to safely handle primitive values
- Unify CommandArgs type: execution.ts now imports from registry.ts
- Cache strategyLabel() call in cli.ts list command
@jackwener jackwener merged commit 15c6d0d into main Mar 26, 2026
21 checks passed
@jackwener jackwener mentioned this pull request Mar 26, 2026
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