1.7 KiB
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-exportsstartRelayServer
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.