76 lines
1.7 KiB
Markdown
76 lines
1.7 KiB
Markdown
# 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:**
|
|
```typescript
|
|
const controller = new AbortController()
|
|
const { cdpRelayServer } = await startRelayServer(controller.signal)
|
|
// Complex class-based API
|
|
cdpRelayServer.stop()
|
|
```
|
|
|
|
**After:**
|
|
```typescript
|
|
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
|
|
|
|
```json
|
|
{
|
|
"hono": "^4.10.6",
|
|
"@hono/node-server": "^1.19.6",
|
|
"@hono/node-ws": "^1.2.0"
|
|
}
|
|
```
|
|
|
|
## Testing
|
|
|
|
```bash
|
|
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.
|