@infodb/revx 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -489
- package/dist/commands/start.js +26 -3
- package/dist/commands/start.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/utils/vite-middleware.d.ts +4 -0
- package/dist/utils/vite-middleware.d.ts.map +1 -1
- package/dist/utils/vite-middleware.js +6 -0
- package/dist/utils/vite-middleware.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -162,496 +162,11 @@ revx init --simple
|
|
|
162
162
|
revx init --output my-config.yaml
|
|
163
163
|
```
|
|
164
164
|
|
|
165
|
-
##
|
|
165
|
+
## Documentation
|
|
166
166
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
server:
|
|
171
|
-
port: 3000
|
|
172
|
-
host: 0.0.0.0
|
|
173
|
-
name: "My Reverse Proxy"
|
|
174
|
-
|
|
175
|
-
routes:
|
|
176
|
-
- path: "/api/*"
|
|
177
|
-
target: "http://localhost:4000"
|
|
178
|
-
pathRewrite:
|
|
179
|
-
"^/api": ""
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### Global Settings
|
|
183
|
-
|
|
184
|
-
```yaml
|
|
185
|
-
global:
|
|
186
|
-
# Max concurrent sockets (default: 256)
|
|
187
|
-
# Increase for better performance with dev servers like Vite
|
|
188
|
-
maxSockets: 512
|
|
189
|
-
|
|
190
|
-
cors:
|
|
191
|
-
enabled: true
|
|
192
|
-
origin: "*"
|
|
193
|
-
methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"]
|
|
194
|
-
credentials: true
|
|
195
|
-
|
|
196
|
-
logging:
|
|
197
|
-
enabled: true
|
|
198
|
-
format: "combined" # combined | dev | common | short | tiny
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### Performance Tuning
|
|
202
|
-
|
|
203
|
-
#### Max Sockets Configuration
|
|
204
|
-
|
|
205
|
-
When proxying to development servers like Vite that serve many files concurrently, you may need to increase the maximum number of concurrent sockets:
|
|
206
|
-
|
|
207
|
-
```yaml
|
|
208
|
-
server:
|
|
209
|
-
maxSockets: 512 # Can be set at server level
|
|
210
|
-
|
|
211
|
-
# OR
|
|
212
|
-
|
|
213
|
-
global:
|
|
214
|
-
maxSockets: 512 # Can be set globally
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
**Default**: 256
|
|
218
|
-
|
|
219
|
-
**When to increase**:
|
|
220
|
-
- Proxying to Vite or similar dev servers
|
|
221
|
-
- Serving applications with many static assets
|
|
222
|
-
- High concurrent request scenarios
|
|
223
|
-
|
|
224
|
-
**Note**: The `server.maxSockets` takes precedence over `global.maxSockets` if both are set.
|
|
225
|
-
|
|
226
|
-
### Route Configuration
|
|
227
|
-
|
|
228
|
-
**Important:** Routes are automatically sorted by specificity when loaded. You don't need to worry about the order in your YAML file - the most specific routes (longest paths) will always be matched first.
|
|
229
|
-
|
|
230
|
-
For example:
|
|
231
|
-
```yaml
|
|
232
|
-
routes:
|
|
233
|
-
# These will be automatically reordered
|
|
234
|
-
- path: "/" # Will match last
|
|
235
|
-
target: "http://static"
|
|
236
|
-
|
|
237
|
-
- path: "/api/v1/users/*" # Will match first (most specific)
|
|
238
|
-
target: "http://users-api"
|
|
239
|
-
|
|
240
|
-
- path: "/api/*" # Will match after /api/v1/users/*
|
|
241
|
-
target: "http://api"
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
The automatic sorting order:
|
|
245
|
-
1. Longest paths first
|
|
246
|
-
2. Paths with fewer wildcards (more specific)
|
|
247
|
-
3. Alphabetical order for equal paths
|
|
248
|
-
|
|
249
|
-
#### Simple Proxy
|
|
250
|
-
|
|
251
|
-
```yaml
|
|
252
|
-
routes:
|
|
253
|
-
- path: "/api/*"
|
|
254
|
-
target: "http://api.example.com"
|
|
255
|
-
changeOrigin: true
|
|
256
|
-
pathRewrite:
|
|
257
|
-
"^/api": ""
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
#### Vite Middleware (NEW!)
|
|
261
|
-
|
|
262
|
-
Native Vite integration using middleware mode - the best way to serve multiple Vite projects:
|
|
263
|
-
|
|
264
|
-
```yaml
|
|
265
|
-
routes:
|
|
266
|
-
- path: "/app1"
|
|
267
|
-
vite:
|
|
268
|
-
root: "./projects/app1"
|
|
269
|
-
base: "/app1"
|
|
270
|
-
configFile: "./projects/app1/vite.config.ts" # optional
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
**Why use Vite middleware instead of proxy?**
|
|
274
|
-
- Full HMR support without WebSocket configuration
|
|
275
|
-
- No proxy overhead - native Vite performance
|
|
276
|
-
- Multiple Vite projects on a single port
|
|
277
|
-
- Better error messages and development experience
|
|
278
|
-
|
|
279
|
-
**Requirements:**
|
|
280
|
-
- Vite must be installed: `npm install vite` or `pnpm add vite`
|
|
281
|
-
- Each Vite project must have its own directory with a valid configuration
|
|
282
|
-
|
|
283
|
-
**Multiple Vite projects example:**
|
|
284
|
-
```yaml
|
|
285
|
-
routes:
|
|
286
|
-
- path: "/dashboard"
|
|
287
|
-
vite:
|
|
288
|
-
root: "./apps/dashboard"
|
|
289
|
-
base: "/dashboard"
|
|
290
|
-
|
|
291
|
-
- path: "/admin"
|
|
292
|
-
vite:
|
|
293
|
-
root: "./apps/admin"
|
|
294
|
-
base: "/admin"
|
|
295
|
-
|
|
296
|
-
- path: "/api/*"
|
|
297
|
-
target: "http://localhost:4000"
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
#### WebSocket Proxy
|
|
301
|
-
|
|
302
|
-
WebSocket support is critical for Hot Module Replacement (HMR) with development servers like Vite:
|
|
303
|
-
|
|
304
|
-
```yaml
|
|
305
|
-
routes:
|
|
306
|
-
- path: "/ws"
|
|
307
|
-
target: "ws://websocket.example.com"
|
|
308
|
-
ws: true
|
|
309
|
-
changeOrigin: true
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
#### Static File Serving
|
|
313
|
-
|
|
314
|
-
Serve static files directly without proxying (useful for `vite build --watch` output):
|
|
315
|
-
|
|
316
|
-
```yaml
|
|
317
|
-
routes:
|
|
318
|
-
- path: "/*"
|
|
319
|
-
static: "./dist"
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
**Combined with API proxy:**
|
|
323
|
-
```yaml
|
|
324
|
-
routes:
|
|
325
|
-
# API requests go to backend
|
|
326
|
-
- path: "/api/*"
|
|
327
|
-
target: "http://localhost:4000"
|
|
328
|
-
pathRewrite:
|
|
329
|
-
"^/api": ""
|
|
330
|
-
|
|
331
|
-
# Static files from Vite build
|
|
332
|
-
- path: "/*"
|
|
333
|
-
static: "./dist"
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
**Use case: Vite build --watch**
|
|
337
|
-
```bash
|
|
338
|
-
# Terminal 1: Run Vite in build watch mode
|
|
339
|
-
vite build --watch
|
|
340
|
-
|
|
341
|
-
# Terminal 2: Run revx to serve the built files
|
|
342
|
-
revx start
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
This serves pre-built static files, avoiding proxy-related errors that can occur with Vite dev server.
|
|
346
|
-
|
|
347
|
-
### Environment Variables
|
|
348
|
-
|
|
349
|
-
Use `${VARIABLE_NAME}` syntax to reference environment variables:
|
|
350
|
-
|
|
351
|
-
```yaml
|
|
352
|
-
server:
|
|
353
|
-
port: ${PORT}
|
|
354
|
-
|
|
355
|
-
routes:
|
|
356
|
-
- path: "/api/*"
|
|
357
|
-
target: "${API_URL}"
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
Then run:
|
|
361
|
-
|
|
362
|
-
```bash
|
|
363
|
-
PORT=3000 API_URL=http://api.example.com revx start
|
|
364
|
-
```
|
|
365
|
-
|
|
366
|
-
## Examples
|
|
367
|
-
|
|
368
|
-
### Microservices Gateway
|
|
369
|
-
|
|
370
|
-
```yaml
|
|
371
|
-
server:
|
|
372
|
-
port: 8080
|
|
373
|
-
name: "Microservices Gateway"
|
|
374
|
-
|
|
375
|
-
routes:
|
|
376
|
-
- path: "/users/*"
|
|
377
|
-
target: "http://user-service:3001"
|
|
378
|
-
pathRewrite:
|
|
379
|
-
"^/users": ""
|
|
380
|
-
|
|
381
|
-
- path: "/products/*"
|
|
382
|
-
target: "http://product-service:3002"
|
|
383
|
-
pathRewrite:
|
|
384
|
-
"^/products": ""
|
|
385
|
-
|
|
386
|
-
- path: "/orders/*"
|
|
387
|
-
target: "http://order-service:3003"
|
|
388
|
-
pathRewrite:
|
|
389
|
-
"^/orders": ""
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
### Development Proxy
|
|
393
|
-
|
|
394
|
-
```yaml
|
|
395
|
-
server:
|
|
396
|
-
port: 3000
|
|
397
|
-
|
|
398
|
-
global:
|
|
399
|
-
cors:
|
|
400
|
-
enabled: true
|
|
401
|
-
origin: "http://localhost:5173"
|
|
402
|
-
|
|
403
|
-
routes:
|
|
404
|
-
- path: "/api/*"
|
|
405
|
-
target: "http://localhost:4000"
|
|
406
|
-
pathRewrite:
|
|
407
|
-
"^/api": ""
|
|
408
|
-
|
|
409
|
-
- path: "/ws"
|
|
410
|
-
target: "ws://localhost:4000"
|
|
411
|
-
ws: true
|
|
412
|
-
```
|
|
413
|
-
|
|
414
|
-
### Vite Development Server Proxy
|
|
415
|
-
|
|
416
|
-
```yaml
|
|
417
|
-
server:
|
|
418
|
-
port: 3000
|
|
419
|
-
# Increase max sockets for Vite's many concurrent requests
|
|
420
|
-
maxSockets: 512
|
|
421
|
-
|
|
422
|
-
global:
|
|
423
|
-
cors:
|
|
424
|
-
enabled: true
|
|
425
|
-
origin: "http://localhost:5173"
|
|
426
|
-
|
|
427
|
-
routes:
|
|
428
|
-
# Proxy API requests to backend
|
|
429
|
-
- path: "/api/*"
|
|
430
|
-
target: "http://localhost:4000"
|
|
431
|
-
pathRewrite:
|
|
432
|
-
"^/api": ""
|
|
433
|
-
|
|
434
|
-
# Proxy everything else to Vite dev server
|
|
435
|
-
- path: "/*"
|
|
436
|
-
target: "http://localhost:5173"
|
|
437
|
-
ws: true # Enable WebSocket for HMR
|
|
438
|
-
changeOrigin: true
|
|
439
|
-
```
|
|
440
|
-
|
|
441
|
-
### Multi-Vite Project Setup (Recommended)
|
|
442
|
-
|
|
443
|
-
```yaml
|
|
444
|
-
server:
|
|
445
|
-
port: 3000
|
|
446
|
-
name: "Multi-App Dev Server"
|
|
447
|
-
maxSockets: 512
|
|
448
|
-
|
|
449
|
-
global:
|
|
450
|
-
cors:
|
|
451
|
-
enabled: true
|
|
452
|
-
origin: "*"
|
|
453
|
-
|
|
454
|
-
routes:
|
|
455
|
-
# App 1 - Customer Portal (Vite)
|
|
456
|
-
- path: "/portal"
|
|
457
|
-
vite:
|
|
458
|
-
root: "./apps/portal"
|
|
459
|
-
base: "/portal"
|
|
460
|
-
|
|
461
|
-
# App 2 - Admin Dashboard (Vite)
|
|
462
|
-
- path: "/admin"
|
|
463
|
-
vite:
|
|
464
|
-
root: "./apps/admin"
|
|
465
|
-
base: "/admin"
|
|
466
|
-
|
|
467
|
-
# Shared API backend
|
|
468
|
-
- path: "/api/*"
|
|
469
|
-
target: "http://localhost:4000"
|
|
470
|
-
pathRewrite:
|
|
471
|
-
"^/api": ""
|
|
472
|
-
```
|
|
473
|
-
|
|
474
|
-
This setup allows you to:
|
|
475
|
-
- Run multiple Vite projects on one port
|
|
476
|
-
- Share a single backend API across all apps
|
|
477
|
-
- Get full HMR support for all apps
|
|
478
|
-
- Develop in a monorepo-friendly way
|
|
479
|
-
|
|
480
|
-
### Mixed Development Servers (Vite + webpack)
|
|
481
|
-
|
|
482
|
-
Migrate gradually or mix different build tools:
|
|
483
|
-
|
|
484
|
-
```yaml
|
|
485
|
-
server:
|
|
486
|
-
port: 3000
|
|
487
|
-
maxSockets: 512
|
|
488
|
-
|
|
489
|
-
routes:
|
|
490
|
-
# New app - using Vite
|
|
491
|
-
- path: "/new-app"
|
|
492
|
-
vite:
|
|
493
|
-
root: "./apps/new-app"
|
|
494
|
-
base: "/new-app"
|
|
495
|
-
|
|
496
|
-
# Legacy app - still on webpack dev server
|
|
497
|
-
- path: "/legacy/*"
|
|
498
|
-
target: "http://localhost:8080"
|
|
499
|
-
ws: true # Enable WebSocket for webpack HMR
|
|
500
|
-
changeOrigin: true
|
|
501
|
-
|
|
502
|
-
# Another legacy app - using Parcel
|
|
503
|
-
- path: "/old-dashboard/*"
|
|
504
|
-
target: "http://localhost:1234"
|
|
505
|
-
ws: true
|
|
506
|
-
changeOrigin: true
|
|
507
|
-
|
|
508
|
-
# Backend API
|
|
509
|
-
- path: "/api/*"
|
|
510
|
-
target: "http://localhost:4000"
|
|
511
|
-
pathRewrite:
|
|
512
|
-
"^/api": ""
|
|
513
|
-
|
|
514
|
-
# Static documentation
|
|
515
|
-
- path: "/docs"
|
|
516
|
-
static: "./public/docs"
|
|
517
|
-
```
|
|
518
|
-
|
|
519
|
-
**Usage:**
|
|
520
|
-
```bash
|
|
521
|
-
# Terminal 1: Start webpack dev server
|
|
522
|
-
cd apps/legacy && npm run dev # runs on :8080
|
|
523
|
-
|
|
524
|
-
# Terminal 2: Start Parcel
|
|
525
|
-
cd apps/old-dashboard && npm run dev # runs on :1234
|
|
526
|
-
|
|
527
|
-
# Terminal 3: Start backend
|
|
528
|
-
cd api && npm run dev # runs on :4000
|
|
529
|
-
|
|
530
|
-
# Terminal 4: Start revx (unifies everything)
|
|
531
|
-
npx revx start
|
|
532
|
-
```
|
|
533
|
-
|
|
534
|
-
Now access everything at `http://localhost:3000`:
|
|
535
|
-
- `/new-app` - Vite with native HMR ⚡
|
|
536
|
-
- `/legacy` - webpack via proxy 🔌
|
|
537
|
-
- `/old-dashboard` - Parcel via proxy 🔌
|
|
538
|
-
- `/api` - Backend API 🔌
|
|
539
|
-
- `/docs` - Static files 📁
|
|
540
|
-
|
|
541
|
-
### Vite Build Watch Mode
|
|
542
|
-
|
|
543
|
-
```yaml
|
|
544
|
-
server:
|
|
545
|
-
port: 3000
|
|
546
|
-
|
|
547
|
-
routes:
|
|
548
|
-
# Proxy API requests to backend
|
|
549
|
-
- path: "/api/*"
|
|
550
|
-
target: "http://localhost:4000"
|
|
551
|
-
pathRewrite:
|
|
552
|
-
"^/api": ""
|
|
553
|
-
|
|
554
|
-
# Serve static files built by Vite
|
|
555
|
-
- path: "/*"
|
|
556
|
-
static: "./dist"
|
|
557
|
-
```
|
|
558
|
-
|
|
559
|
-
Run with:
|
|
560
|
-
```bash
|
|
561
|
-
# Terminal 1: Build and watch
|
|
562
|
-
vite build --watch
|
|
563
|
-
|
|
564
|
-
# Terminal 2: Serve with revx
|
|
565
|
-
revx start
|
|
566
|
-
```
|
|
567
|
-
|
|
568
|
-
## Troubleshooting
|
|
569
|
-
|
|
570
|
-
### When to use each route type?
|
|
571
|
-
|
|
572
|
-
**Vite middleware (`vite` config) - RECOMMENDED for Vite projects:**
|
|
573
|
-
```yaml
|
|
574
|
-
- path: "/app"
|
|
575
|
-
vite:
|
|
576
|
-
root: "./apps/myapp"
|
|
577
|
-
```
|
|
578
|
-
- ✅ Best for: Your own Vite projects in the monorepo
|
|
579
|
-
- ✅ Native HMR with no configuration
|
|
580
|
-
- ✅ No proxy overhead
|
|
581
|
-
- ✅ Full Vite dev server features
|
|
582
|
-
|
|
583
|
-
**Reverse proxy (`target` config) - For external/non-Vite servers:**
|
|
584
|
-
```yaml
|
|
585
|
-
- path: "/legacy"
|
|
586
|
-
target: "http://localhost:8080"
|
|
587
|
-
ws: true
|
|
588
|
-
```
|
|
589
|
-
- ✅ Best for: webpack, Parcel, external APIs, legacy apps
|
|
590
|
-
- ✅ Preserve HMR via WebSocket proxy
|
|
591
|
-
- ✅ Don't need to modify the target server
|
|
592
|
-
|
|
593
|
-
**Static files (`static` config) - For built assets:**
|
|
594
|
-
```yaml
|
|
595
|
-
- path: "/docs"
|
|
596
|
-
static: "./dist"
|
|
597
|
-
```
|
|
598
|
-
- ✅ Best for: Documentation, pre-built assets, `vite build --watch` output
|
|
599
|
-
- ✅ No processing overhead
|
|
600
|
-
- ✅ Production-like serving
|
|
601
|
-
|
|
602
|
-
### Common Issues
|
|
603
|
-
|
|
604
|
-
**Error: "Vite root directory not found"**
|
|
605
|
-
- Check that the `root` path in your config exists
|
|
606
|
-
- Use relative paths from where you run `revx start`
|
|
607
|
-
- Example: If config is in project root, use `./apps/myapp` not `/apps/myapp`
|
|
608
|
-
|
|
609
|
-
**Multiple Vite servers slow to start**
|
|
610
|
-
- This is normal - each Vite server initializes independently
|
|
611
|
-
- Use `--verbose` to see progress
|
|
612
|
-
- First startup is slower (dependency pre-bundling)
|
|
613
|
-
|
|
614
|
-
**HMR not working for proxied webpack app**
|
|
615
|
-
- Make sure `ws: true` is set in the route config
|
|
616
|
-
- Check that the webpack dev server is actually running
|
|
617
|
-
- Verify WebSocket connection in browser dev tools
|
|
618
|
-
- No additional webpack configuration needed - revx handles WebSocket upgrade automatically
|
|
619
|
-
|
|
620
|
-
**Does webpack need special configuration?**
|
|
621
|
-
- No! Just add `ws: true` in revx config
|
|
622
|
-
- revx automatically handles WebSocket upgrade requests
|
|
623
|
-
- Your existing webpack dev server config works as-is
|
|
624
|
-
|
|
625
|
-
### Performance Issues with Dev Servers
|
|
626
|
-
|
|
627
|
-
If you experience slow loading or timeouts when proxying to Vite or similar dev servers:
|
|
628
|
-
|
|
629
|
-
1. **Increase max sockets**:
|
|
630
|
-
```yaml
|
|
631
|
-
server:
|
|
632
|
-
maxSockets: 512 # or higher
|
|
633
|
-
```
|
|
634
|
-
|
|
635
|
-
2. **Use verbose mode** to check socket configuration:
|
|
636
|
-
```bash
|
|
637
|
-
revx start --verbose
|
|
638
|
-
```
|
|
639
|
-
|
|
640
|
-
3. **Check the log output** for "Max sockets configured: XXX"
|
|
641
|
-
|
|
642
|
-
### Common Issues
|
|
643
|
-
|
|
644
|
-
**Q: Routes not matching correctly**
|
|
645
|
-
- Routes are automatically sorted by specificity (longest first)
|
|
646
|
-
- Use `--verbose` mode to see the sorted route order
|
|
647
|
-
|
|
648
|
-
**Q: Path not being rewritten**
|
|
649
|
-
- `pathRewrite` is optional; paths are preserved by default
|
|
650
|
-
- Only use `pathRewrite` when you need to modify the path
|
|
651
|
-
|
|
652
|
-
**Q: CORS errors**
|
|
653
|
-
- Enable CORS in global config
|
|
654
|
-
- Check the `origin` setting matches your client URL
|
|
167
|
+
- **[Configuration Reference](./docs/CONFIGURATION.md)** - Detailed configuration options and performance tuning
|
|
168
|
+
- **[Examples](./docs/EXAMPLES.md)** - Real-world configuration examples for various use cases
|
|
169
|
+
- **[Troubleshooting](./docs/TROUBLESHOOTING.md)** - Common issues and solutions
|
|
655
170
|
|
|
656
171
|
## Development
|
|
657
172
|
|
package/dist/commands/start.js
CHANGED
|
@@ -99,13 +99,36 @@ async function startServer(app, config, viteManager, proxyManager, logger) {
|
|
|
99
99
|
const port = config.server.port;
|
|
100
100
|
const host = config.server.host || '0.0.0.0';
|
|
101
101
|
const server = createServer(app);
|
|
102
|
-
// Handle WebSocket upgrade requests for proxied routes
|
|
102
|
+
// Handle WebSocket upgrade requests for Vite HMR and proxied routes
|
|
103
103
|
server.on('upgrade', (req, socket, head) => {
|
|
104
|
+
const urlPath = req.url || '/';
|
|
105
|
+
logger.info(`WebSocket upgrade request: ${urlPath}`);
|
|
106
|
+
// First, check if this is a Vite HMR WebSocket request
|
|
107
|
+
const viteServers = viteManager.getAllServers();
|
|
108
|
+
logger.info(`Vite servers count: ${viteServers.length}`);
|
|
109
|
+
for (const { path, server: viteServer } of viteServers) {
|
|
110
|
+
logger.info(`Checking Vite route: ${path} against URL: ${urlPath}`);
|
|
111
|
+
// Vite HMR WebSocket connections are typically at the base path or /@vite/client
|
|
112
|
+
if (urlPath.startsWith(path)) {
|
|
113
|
+
logger.info(`Vite HMR WebSocket upgrade: ${urlPath} (route: ${path})`);
|
|
114
|
+
// Access the underlying ws WebSocketServer instance
|
|
115
|
+
const wss = viteServer.ws.wss;
|
|
116
|
+
if (wss && wss.handleUpgrade) {
|
|
117
|
+
wss.handleUpgrade(req, socket, head, (ws) => {
|
|
118
|
+
wss.emit('connection', ws, req);
|
|
119
|
+
});
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
logger.error(`Vite WebSocket server not available for route: ${path}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Then check for proxied WebSocket routes
|
|
104
128
|
const proxies = proxyManager.getProxies();
|
|
105
129
|
for (const { middleware, route } of proxies) {
|
|
106
130
|
if (route.ws) {
|
|
107
131
|
// Check if the request URL matches the proxy route
|
|
108
|
-
const urlPath = req.url || '/';
|
|
109
132
|
const routePath = route.path.replace(/\/\*$/, ''); // Remove trailing /*
|
|
110
133
|
if (urlPath.startsWith(routePath)) {
|
|
111
134
|
logger.verbose(`WebSocket upgrade: ${urlPath} -> ${route.target}`);
|
|
@@ -115,7 +138,7 @@ async function startServer(app, config, viteManager, proxyManager, logger) {
|
|
|
115
138
|
}
|
|
116
139
|
}
|
|
117
140
|
}
|
|
118
|
-
// If no
|
|
141
|
+
// If no route matched, close the socket
|
|
119
142
|
logger.verbose(`WebSocket upgrade failed: no matching route for ${req.url}`);
|
|
120
143
|
socket.destroy();
|
|
121
144
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10,5 +10,9 @@ export declare class ViteMiddlewareManager {
|
|
|
10
10
|
cleanup(): Promise<void>;
|
|
11
11
|
getServer(path: string): ViteDevServer | undefined;
|
|
12
12
|
getServerCount(): number;
|
|
13
|
+
getAllServers(): Array<{
|
|
14
|
+
path: string;
|
|
15
|
+
server: ViteDevServer;
|
|
16
|
+
}>;
|
|
13
17
|
}
|
|
14
18
|
//# sourceMappingURL=vite-middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-middleware.d.ts","sourceRoot":"","sources":["../../src/utils/vite-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA8B,MAAM,MAAM,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,qBAAqB;IAGpB,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,WAAW,CAAyC;gBAExC,MAAM,EAAE,MAAM;IAE5B,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IA+CjE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIlD,cAAc,IAAI,MAAM;
|
|
1
|
+
{"version":3,"file":"vite-middleware.d.ts","sourceRoot":"","sources":["../../src/utils/vite-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA8B,MAAM,MAAM,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,qBAAqB;IAGpB,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,WAAW,CAAyC;gBAExC,MAAM,EAAE,MAAM;IAE5B,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IA+CjE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIlD,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,aAAa,CAAA;KAAE,CAAC;CAMhE"}
|
|
@@ -59,5 +59,11 @@ export class ViteMiddlewareManager {
|
|
|
59
59
|
getServerCount() {
|
|
60
60
|
return this.viteServers.size;
|
|
61
61
|
}
|
|
62
|
+
getAllServers() {
|
|
63
|
+
return Array.from(this.viteServers.entries()).map(([path, server]) => ({
|
|
64
|
+
path,
|
|
65
|
+
server,
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
62
68
|
}
|
|
63
69
|
//# sourceMappingURL=vite-middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-middleware.js","sourceRoot":"","sources":["../../src/utils/vite-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAgB,MAAM,MAAM,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B,MAAM,OAAO,qBAAqB;IAGhC,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAF1B,gBAAW,GAA+B,IAAI,GAAG,EAAE,CAAC;IAEvB,CAAC;IAEtC,KAAK,CAAC,oBAAoB,CAAC,KAAkB;QAC3C,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,KAAK,CAAC,IAAI,OAAO,QAAQ,EAAE,CAAC,CAAC;QAE3E,MAAM,UAAU,GAAiB;YAC/B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI;YACnC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;YACjC,MAAM,EAAE;gBACN,cAAc,EAAE,IAAI;gBACpB,GAAG,EAAE;oBACH,uCAAuC;oBACvC,UAAU,EAAE,SAAS;iBACtB;aACF;YACD,2DAA2D;YAC3D,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;SACpD,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEvC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,2BAA2B,KAAK,CAAC,IAAI,EAAE,EAAE;gBAC3D,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACxF,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACvE,IAAI,CAAC,KAAK,EAAE,CACb,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACjD,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"vite-middleware.js","sourceRoot":"","sources":["../../src/utils/vite-middleware.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@infodb/revx",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Multi-Vite project development server - Host multiple Vite apps on a single port with unified routing",
|
|
5
5
|
"homepage": "https://github.com/tamuto/infodb-cli/",
|
|
6
6
|
"bugs": "https://github.com/tamuto/infodb-cli/issues",
|