@beignet/devtools 0.0.26 → 0.0.27
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/CHANGELOG.md +6 -0
- package/README.md +35 -25
- package/dist/routes.d.ts +4 -1
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +7 -1
- package/dist/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/routes.ts +16 -3
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -24,17 +24,19 @@ Register the provider:
|
|
|
24
24
|
|
|
25
25
|
```typescript
|
|
26
26
|
import { createDevtoolsProvider } from "@beignet/devtools";
|
|
27
|
-
import { createNextServer } from "@beignet/next";
|
|
28
|
-
|
|
29
|
-
export const
|
|
30
|
-
|
|
31
|
-
providers: [createDevtoolsProvider(), ...providers],
|
|
32
|
-
context: ({ ports, requestId, trace }) => ({
|
|
33
|
-
requestId,
|
|
34
|
-
...trace,
|
|
27
|
+
import { createNextServer, createNextServerLoader } from "@beignet/next";
|
|
28
|
+
|
|
29
|
+
export const getServer = createNextServerLoader(() =>
|
|
30
|
+
createNextServer({
|
|
35
31
|
ports,
|
|
32
|
+
providers: [createDevtoolsProvider(), ...providers],
|
|
33
|
+
context: ({ ports, requestId, trace }) => ({
|
|
34
|
+
requestId,
|
|
35
|
+
...trace,
|
|
36
|
+
ports,
|
|
37
|
+
}),
|
|
36
38
|
}),
|
|
37
|
-
|
|
39
|
+
);
|
|
38
40
|
```
|
|
39
41
|
|
|
40
42
|
The provider is the only devtools wiring the server needs. Request and error
|
|
@@ -54,11 +56,14 @@ Add a catch-all route:
|
|
|
54
56
|
```typescript
|
|
55
57
|
// app/api/devtools/[[...path]]/route.ts
|
|
56
58
|
import { createDevtoolsRoute } from "@beignet/devtools";
|
|
57
|
-
import {
|
|
59
|
+
import { getServer } from "@/server";
|
|
58
60
|
|
|
59
|
-
export const { GET, POST } = createDevtoolsRoute(
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
export const { GET, POST } = createDevtoolsRoute(
|
|
62
|
+
async () => (await getServer()).ports.devtools,
|
|
63
|
+
{
|
|
64
|
+
basePath: "/api/devtools",
|
|
65
|
+
},
|
|
66
|
+
);
|
|
62
67
|
```
|
|
63
68
|
|
|
64
69
|
Open `/api/devtools`.
|
|
@@ -113,12 +118,11 @@ the response was route-owned or framework-owned, which use cases ran, which
|
|
|
113
118
|
correlated provider events were recorded, which jobs/outbox/schedule/domain
|
|
114
119
|
events were triggered, and whether stored metadata was redacted.
|
|
115
120
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
visible in the timeline.
|
|
121
|
+
You can assert this graph in your own integration tests: drive real HTTP write
|
|
122
|
+
and error requests, read the devtools events endpoint, and verify that request
|
|
123
|
+
rows, use-case spans, durable audit-port side effects, and route-owned errors
|
|
124
|
+
stay correlated by request metadata. Provider queries and durable outbox writes
|
|
125
|
+
appear in the same timeline.
|
|
122
126
|
|
|
123
127
|
## Local persistence
|
|
124
128
|
|
|
@@ -388,12 +392,18 @@ Route handlers return `404` when `NODE_ENV === "production"` unless explicitly
|
|
|
388
392
|
enabled with an app-owned `authorize` callback:
|
|
389
393
|
|
|
390
394
|
```typescript
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
395
|
+
import { createDevtoolsRoute } from "@beignet/devtools";
|
|
396
|
+
import { getServer } from "@/server";
|
|
397
|
+
|
|
398
|
+
export const { GET, POST } = createDevtoolsRoute(
|
|
399
|
+
async () => (await getServer()).ports.devtools,
|
|
400
|
+
{
|
|
401
|
+
basePath: "/api/devtools",
|
|
402
|
+
enabled: process.env.DEVTOOLS_ENABLED === "true",
|
|
403
|
+
authorize: (req: Request) =>
|
|
404
|
+
req.headers.get("x-devtools-token") === process.env.DEVTOOLS_TOKEN,
|
|
405
|
+
},
|
|
406
|
+
);
|
|
397
407
|
```
|
|
398
408
|
|
|
399
409
|
If `authorize` returns `false`, devtools responds with `404`. If it returns a
|
package/dist/routes.d.ts
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { type DevtoolsRouteAccessOptions } from "./access.js";
|
|
8
8
|
import type { DevtoolsPort } from "./index.js";
|
|
9
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
10
|
+
type DevtoolsSource = DevtoolsPort | (() => MaybePromise<DevtoolsPort>);
|
|
9
11
|
/**
|
|
10
12
|
* Devtools route options shared by route handlers.
|
|
11
13
|
*/
|
|
@@ -121,5 +123,6 @@ export declare function handleDevtoolsRequest(req: Request, devtools: DevtoolsPo
|
|
|
121
123
|
* This is the recommended integration for frameworks such as Next.js that
|
|
122
124
|
* export HTTP method functions from route modules.
|
|
123
125
|
*/
|
|
124
|
-
export declare function createDevtoolsRoute(devtools:
|
|
126
|
+
export declare function createDevtoolsRoute(devtools: DevtoolsSource, options: DevtoolsRequestOptions): DevtoolsRouteHandlers;
|
|
127
|
+
export {};
|
|
125
128
|
//# sourceMappingURL=routes.d.ts.map
|
package/dist/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/D;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,QAAQ,CAAC,CAkDnB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,QAAQ,CAAC,CAiBnB;AAQD;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,QAAQ,CAAC,CA+DnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CA6BnB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/D,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,KAAK,cAAc,GAAG,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;AAQxE;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACxE;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,QAAQ,CAAC,CAkDnB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,QAAQ,CAAC,CAiBnB;AAQD;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,QAAQ,CAAC,CA+DnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,QAAQ,CAAC,CA6BnB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,sBAAsB,GAC9B,qBAAqB,CAWvB"}
|
package/dist/routes.js
CHANGED
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
import { authorizeDevtoolsRequest, } from "./access.js";
|
|
8
8
|
import { isDevtoolsEventType } from "./events.js";
|
|
9
9
|
import { handleDevtoolsUIRequest } from "./ui.js";
|
|
10
|
+
async function resolveDevtoolsSource(source) {
|
|
11
|
+
return typeof source === "function" ? source() : source;
|
|
12
|
+
}
|
|
10
13
|
/**
|
|
11
14
|
* Handle GET requests to list devtools events with optional filtering.
|
|
12
15
|
*
|
|
@@ -238,7 +241,10 @@ export async function handleDevtoolsRequest(req, devtools, options) {
|
|
|
238
241
|
* export HTTP method functions from route modules.
|
|
239
242
|
*/
|
|
240
243
|
export function createDevtoolsRoute(devtools, options) {
|
|
241
|
-
const handle = (req) =>
|
|
244
|
+
const handle = async (req) => {
|
|
245
|
+
const resolvedDevtools = await resolveDevtoolsSource(devtools);
|
|
246
|
+
return handleDevtoolsRequest(req, resolvedDevtools, options);
|
|
247
|
+
};
|
|
242
248
|
return {
|
|
243
249
|
GET: handle,
|
|
244
250
|
POST: handle,
|
package/dist/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,wBAAwB,GAEzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,wBAAwB,GAEzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAMlD,KAAK,UAAU,qBAAqB,CAClC,MAAsB;IAEtB,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1D,CAAC;AA4BD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,GAAY,EACZ,QAAsB,EACtB,UAAsC,EAAE;IAExC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEjD,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,EAAE;YACnE,MAAM,EAAE,GAAG;YACX,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU;aAC5B;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAyB,CAAC;IAC9B,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,KAAK,GAAG,MAAM,CAAC;QACjB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAmB;QAC7B,IAAI,EAAE,IAAI,IAAI,SAAS;QACvB,SAAS,EAAE,SAAS,IAAI,SAAS;QACjC,OAAO,EAAE,OAAO,IAAI,SAAS;QAC7B,KAAK;KACN,CAAC;IAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC;QACb,MAAM;QACN,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE;KACjC,CAAC,EACF;QACE,MAAM,EAAE,GAAG;QACX,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,UAAU;SAC5B;KACF,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,GAAY,EACZ,QAAsB,EACtB,UAAsC,EAAE;IAExC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,IAAI,QAAQ,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEvB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;QAChD,MAAM,EAAE,GAAG;QACX,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,UAAU;SAC5B;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,IAAa;IAC7C,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAC7B,UAAU,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CACrD,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,GAAY,EACZ,QAAsB,EACtB,UAAsC,EAAE;IAExC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,IAAI,QAAQ,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,WAAqC,CAAC;IAE1C,MAAM,MAAM,GAAG,IAAI,cAAc,CAAa;QAC5C,KAAK,CAAC,UAAU;YACd,IAAI,MAAM,GAAG,KAAK,CAAC;YAEnB,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,IAAa,EAAE,EAAE;gBAC/C,IAAI,MAAM;oBAAE,OAAO;gBACnB,IAAI,CAAC;oBACH,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC7C,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,GAAG,IAAI,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC;YAEF,OAAO,CAAC,UAAU,EAAE;gBAClB,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;gBAC1C,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE;aACjC,CAAC,CAAC;YAEH,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5B,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBACzC,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,MAAM,CAAC,gBAAgB,CACzB,OAAO,EACP,GAAG,EAAE;gBACH,MAAM,GAAG,IAAI,CAAC;gBACd,WAAW,EAAE,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;gBAAC,MAAM,CAAC;oBACP,kDAAkD;gBACpD,CAAC;YACH,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;QACJ,CAAC;QACD,MAAM;YACJ,WAAW,EAAE,EAAE,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;QAC1B,MAAM,EAAE,GAAG;QACX,OAAO,EAAE;YACP,cAAc,EAAE,kCAAkC;YAClD,eAAe,EAAE,wBAAwB;YACzC,UAAU,EAAE,YAAY;SACzB;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAY,EACZ,QAAsB,EACtB,OAA+B;IAE/B,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,aAAa,GAA+B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEpE,IAAI,IAAI,KAAK,GAAG,cAAc,cAAc,EAAE,CAAC;QAC7C,OAAO,2BAA2B,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,IAAI,KAAK,GAAG,cAAc,QAAQ,EAAE,CAAC;QACvC,OAAO,0BAA0B,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,IAAI,KAAK,GAAG,cAAc,SAAS,EAAE,CAAC;QACxC,OAAO,2BAA2B,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACzB,OAAO,IAAI,QAAQ,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,uBAAuB,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAwB,EACxB,OAA+B;IAE/B,MAAM,MAAM,GAAG,KAAK,EAAE,GAAY,EAAE,EAAE;QACpC,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAE/D,OAAO,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC,CAAC;IAEF,OAAO;QACL,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,MAAM;KACb,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
package/src/routes.ts
CHANGED
|
@@ -13,6 +13,16 @@ import { isDevtoolsEventType } from "./events.js";
|
|
|
13
13
|
import type { DevtoolsFilter, DevtoolsPort } from "./index.js";
|
|
14
14
|
import { handleDevtoolsUIRequest } from "./ui.js";
|
|
15
15
|
|
|
16
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
17
|
+
|
|
18
|
+
type DevtoolsSource = DevtoolsPort | (() => MaybePromise<DevtoolsPort>);
|
|
19
|
+
|
|
20
|
+
async function resolveDevtoolsSource(
|
|
21
|
+
source: DevtoolsSource,
|
|
22
|
+
): Promise<DevtoolsPort> {
|
|
23
|
+
return typeof source === "function" ? source() : source;
|
|
24
|
+
}
|
|
25
|
+
|
|
16
26
|
/**
|
|
17
27
|
* Devtools route options shared by route handlers.
|
|
18
28
|
*/
|
|
@@ -316,11 +326,14 @@ export async function handleDevtoolsRequest(
|
|
|
316
326
|
* export HTTP method functions from route modules.
|
|
317
327
|
*/
|
|
318
328
|
export function createDevtoolsRoute(
|
|
319
|
-
devtools:
|
|
329
|
+
devtools: DevtoolsSource,
|
|
320
330
|
options: DevtoolsRequestOptions,
|
|
321
331
|
): DevtoolsRouteHandlers {
|
|
322
|
-
const handle = (req: Request) =>
|
|
323
|
-
|
|
332
|
+
const handle = async (req: Request) => {
|
|
333
|
+
const resolvedDevtools = await resolveDevtoolsSource(devtools);
|
|
334
|
+
|
|
335
|
+
return handleDevtoolsRequest(req, resolvedDevtools, options);
|
|
336
|
+
};
|
|
324
337
|
|
|
325
338
|
return {
|
|
326
339
|
GET: handle,
|