Files
playwriter/extension-new/MIGRATION.md
Tommy D. Rossi 1ac644d4bd new code
2025-11-15 13:06:08 +01:00

1.7 KiB

Migration Complete

The new CDP relay server implementation has been moved into playwriter/src/extension/.

What Changed

Files Removed

  • src/extension/cdpRelay.ts (~417 lines) - Old class-based implementation
  • src/extension/types.ts - Old type definitions

Files Added/Updated

  • src/extension/relay-server.ts (321 lines) - New inline implementation
  • src/extension/protocol.ts (34 lines) - Message type definitions
  • src/extension/extensionContextFactory.ts - Now just re-exports startRelayServer

Updated Scripts

  • scripts/extension-server.ts - Uses new simplified API

New API

Before:

const controller = new AbortController()
const { cdpRelayServer } = await startRelayServer(controller.signal)
// Complex class-based API
cdpRelayServer.stop()

After:

const server = await startRelayServer({ port: 9988 })
// Simple object API
server.close()

Code Reduction

Metric Before After
Total LOC ~600 ~370
Files 4 3
Classes 2 0
Helper functions Multiple modules All inlined

Dependencies Added

{
  "hono": "^4.10.6",
  "@hono/node-server": "^1.19.6",
  "@hono/node-ws": "^1.2.0"
}

Testing

cd playwriter
pnpm typecheck  # ✅ Passes
pnpm build      # ✅ Builds successfully

# Run the server
vite-node scripts/extension-server.ts

Architecture

Everything is now in one file (relay-server.ts):

  • Target registry (simple Map)
  • Extension request/response handling
  • CDP command routing
  • WebSocket endpoints
  • Message forwarding

No abstractions, no helper modules, just straightforward code.