@venizia/ignis-worker 0.2.0-43 → 0.2.0-45
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 +133 -0
- package/dist/cjs/applications/worker.d.ts +6 -6
- package/dist/cjs/applications/worker.d.ts.map +1 -1
- package/dist/cjs/applications/worker.js +7 -6
- package/dist/cjs/applications/worker.js.map +1 -1
- package/dist/esm/applications/worker.d.ts +6 -6
- package/dist/esm/applications/worker.d.ts.map +1 -1
- package/dist/esm/applications/worker.js +7 -6
- package/dist/esm/applications/worker.js.map +1 -1
- package/dist/esm/package.json +6 -0
- package/package.json +5 -5
package/README.md
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# @venizia/ignis-worker
|
|
2
|
+
|
|
3
|
+
Runs an IGNIS application inside a browser Web Worker. The page calls it like an HTTP API, and
|
|
4
|
+
nothing crosses a network: requests travel over `postMessage`.
|
|
5
|
+
|
|
6
|
+
Use it to build a Backend for Frontend (BFF) - a backend that serves one user interface and lives in
|
|
7
|
+
that interface's own tab. Your controllers, services and repositories are the same classes a server
|
|
8
|
+
application uses; only the host changes.
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
bun add @venizia/ignis-worker @venizia/ignis-kernel hono @hono/zod-openapi
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Add `@venizia/ignis-connectors` and a driver when the BFF needs a database, for example
|
|
17
|
+
`@electric-sql/pglite` for Postgres stored in the browser.
|
|
18
|
+
|
|
19
|
+
## Example
|
|
20
|
+
|
|
21
|
+
Inside the Worker, extend `WorkerApplication` and call `listen()` instead of `start()`:
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
// worker.ts
|
|
25
|
+
import { z } from '@hono/zod-openapi';
|
|
26
|
+
import { BaseRestController, controller, get, jsonResponse } from '@venizia/ignis-kernel';
|
|
27
|
+
import { WorkerApplication } from '@venizia/ignis-worker';
|
|
28
|
+
import type { Context } from 'hono';
|
|
29
|
+
|
|
30
|
+
@controller({ path: '/notes' })
|
|
31
|
+
class NoteController extends BaseRestController {
|
|
32
|
+
constructor() {
|
|
33
|
+
super({ scope: NoteController.name });
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
override binding() {}
|
|
37
|
+
|
|
38
|
+
@get({
|
|
39
|
+
configs: {
|
|
40
|
+
path: '/',
|
|
41
|
+
responses: jsonResponse({ schema: z.array(z.object({ title: z.string() })) }),
|
|
42
|
+
},
|
|
43
|
+
})
|
|
44
|
+
list(context: Context) {
|
|
45
|
+
return context.json([{ title: 'Answered inside the Worker' }]);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
class BffApplication extends WorkerApplication {
|
|
50
|
+
getAppInfo() {
|
|
51
|
+
return { name: 'bff', version: '1.0.0', description: 'A BFF in a Worker' };
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
staticConfigure() {}
|
|
55
|
+
setupMiddlewares() {}
|
|
56
|
+
postConfigure() {}
|
|
57
|
+
|
|
58
|
+
preConfigure() {
|
|
59
|
+
this.controller(NoteController);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const application = new BffApplication({
|
|
64
|
+
scope: BffApplication.name,
|
|
65
|
+
config: { path: { base: '/api', isStrict: false }, error: { environment: 'development' } },
|
|
66
|
+
});
|
|
67
|
+
application.init();
|
|
68
|
+
await application.listen();
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
On the page, create a transport and send it a `Request`:
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
// page.ts
|
|
75
|
+
import { SharedBffTransport } from '@venizia/ignis-worker';
|
|
76
|
+
|
|
77
|
+
const bff = new SharedBffTransport({
|
|
78
|
+
createWorker: () => new Worker(new URL('./worker.ts', import.meta.url), { type: 'module' }),
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
const response = await bff.fetch({ request: new Request('http://ignis.internal/api/notes') });
|
|
82
|
+
console.log(response.status, await response.json()); // 200 [ { title: 'Answered inside the Worker' } ]
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
A Worker has no `process.env`, so set `config.error.environment` yourself. `listen()` queues any
|
|
86
|
+
request that arrives while the application is still booting.
|
|
87
|
+
|
|
88
|
+
## Make an existing client use it
|
|
89
|
+
|
|
90
|
+
Most HTTP clients do not accept a custom fetcher. `installBffFetch` answers the page's global `fetch`
|
|
91
|
+
for every URL under `basePath` and leaves every other call on the network:
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
import { installBffFetch } from '@venizia/ignis-worker';
|
|
95
|
+
|
|
96
|
+
installBffFetch({ transport: bff, basePath: '/api' });
|
|
97
|
+
|
|
98
|
+
await fetch('/api/notes'); // answered by the Worker
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Install it before the code that calls `fetch` starts. It returns a function that uninstalls it.
|
|
102
|
+
|
|
103
|
+
## What it exports
|
|
104
|
+
|
|
105
|
+
| Export | What it does |
|
|
106
|
+
|---|---|
|
|
107
|
+
| `WorkerApplication` | A `RestApplication` host with `listen({ scope? })` and `stop()` in place of a socket |
|
|
108
|
+
| `SharedBffTransport` | One Worker per origin. It elects one tab with the Web Locks API and forwards the other tabs' requests over a `BroadcastChannel`. Use it by default |
|
|
109
|
+
| `WorkerBffTransport` | One Worker per transport, for a BFF that holds no origin-exclusive resource |
|
|
110
|
+
| `InProcessBffTransport` | No Worker - the same envelope round trip in one thread, for tests |
|
|
111
|
+
| `installBffFetch` | Routes the global `fetch` into a transport |
|
|
112
|
+
| `BffEnvelope`, `BFF_SYNTHETIC_ORIGIN` | The request, response and error envelopes that cross `postMessage` |
|
|
113
|
+
|
|
114
|
+
`SharedBffTransport` exists because a database like PGlite in OPFS holds an exclusive per-origin
|
|
115
|
+
handle. A second tab starting its own Worker could not open it.
|
|
116
|
+
|
|
117
|
+
The package has one entry point, `@venizia/ignis-worker`. `hono` and `@hono/zod-openapi` are its only
|
|
118
|
+
peers, and both are required.
|
|
119
|
+
|
|
120
|
+
## Where it sits
|
|
121
|
+
|
|
122
|
+
Depends on `@venizia/ignis-kernel`, `@venizia/ignis-helpers` and `@venizia/ignis-inversion`. It is the
|
|
123
|
+
browser sibling of `@venizia/ignis`; neither depends on the other, and it does not depend on
|
|
124
|
+
`@venizia/ignis-connectors`.
|
|
125
|
+
|
|
126
|
+
## Links
|
|
127
|
+
|
|
128
|
+
- [Example: browser-bff](https://github.com/VENIZIA-AI/ignis/tree/main/examples/browser-bff) - a controller answering from PGlite in OPFS, with no server
|
|
129
|
+
- [Changelog: the browser-pure kernel](https://ignis.venizia.ai/changelogs/2026-08-13-browser-pure-kernel)
|
|
130
|
+
- [Changelog: a BFF shared across tabs](https://ignis.venizia.ai/changelogs/2026-08-19-browser-bff-multi-tab)
|
|
131
|
+
- [All changelogs](https://ignis.venizia.ai/changelogs/)
|
|
132
|
+
|
|
133
|
+
MIT licensed - see [LICENSE.md](https://github.com/VENIZIA-AI/ignis/blob/main/LICENSE.md).
|
|
@@ -65,14 +65,14 @@ export declare abstract class WorkerApplication<AppEnv extends Env = Env, AppSch
|
|
|
65
65
|
scope?: MessagePort | IWorkerMessageScope;
|
|
66
66
|
}): Promise<void>;
|
|
67
67
|
/**
|
|
68
|
-
* The counterpart to `listen()`, and to `ServerApplication.stop()`:
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
68
|
+
* The counterpart to `listen()`, and to `ServerApplication.stop()`: runs the post-stop hooks, then
|
|
69
|
+
* closes every datasource the boot configured. Without it the OPFS exclusive lock a PGlite holds
|
|
70
|
+
* is never released - the next Worker then fails with `NoModificationAllowedError` until a full
|
|
71
|
+
* page reload. The Vite recipe is `import.meta.hot?.dispose(() => application.stop())`.
|
|
72
72
|
*
|
|
73
73
|
* Detaches BEFORE draining, unlike the server: here the listener IS the socket, and a request
|
|
74
|
-
* admitted while
|
|
75
|
-
*
|
|
74
|
+
* admitted while a datasource is closing has nothing left to run against. A stopped application
|
|
75
|
+
* is not restartable - build a new one.
|
|
76
76
|
*/
|
|
77
77
|
stop(): Promise<void>;
|
|
78
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/applications/worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGxC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IACjF,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACjF,mBAAmB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACrF,KAAK,CAAC,IAAI,IAAI,CAAC;CAChB;AAED;;;;;GAKG;AACH,8BAAsB,iBAAiB,CACrC,MAAM,SAAS,GAAG,GAAG,GAAG,EACxB,SAAS,SAAS,MAAM,GAAG,EAAE,EAC7B,QAAQ,SAAS,MAAM,GAAG,GAAG,CAC7B,SAAQ,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IACpD,qMAAqM;IACrM,UAAkB,OAAO,EAAE,yBAAyB,CAAC;IAErD,iGAAiG;IACjG,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,+FAA+F;IAC/F,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;;;;OAOG;IACM,cAAc,IAAI,MAAM;IASjC;;;OAGG;YACW,aAAa;IAoC3B,kKAAkK;IAClK,OAAO,CAAC,iBAAiB;IAgBzB,kIAAkI;YACpH,YAAY;IAW1B;;;;;OAKG;YACW,eAAe;IAqC7B,OAAO,CAAC,QAAQ;IAsChB;;;;;;OAMG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,WAAW,GAAG,mBAAmB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjF;;;;;;;;;OASG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/applications/worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGxC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IACjF,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACjF,mBAAmB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACrF,KAAK,CAAC,IAAI,IAAI,CAAC;CAChB;AAED;;;;;GAKG;AACH,8BAAsB,iBAAiB,CACrC,MAAM,SAAS,GAAG,GAAG,GAAG,EACxB,SAAS,SAAS,MAAM,GAAG,EAAE,EAC7B,QAAQ,SAAS,MAAM,GAAG,GAAG,CAC7B,SAAQ,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IACpD,qMAAqM;IACrM,UAAkB,OAAO,EAAE,yBAAyB,CAAC;IAErD,iGAAiG;IACjG,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,+FAA+F;IAC/F,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;;;;OAOG;IACM,cAAc,IAAI,MAAM;IASjC;;;OAGG;YACW,aAAa;IAoC3B,kKAAkK;IAClK,OAAO,CAAC,iBAAiB;IAgBzB,kIAAkI;YACpH,YAAY;IAW1B;;;;;OAKG;YACW,eAAe;IAqC7B,OAAO,CAAC,QAAQ;IAsChB;;;;;;OAMG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,WAAW,GAAG,mBAAmB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjF;;;;;;;;;OASG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAW5B"}
|
|
@@ -168,20 +168,21 @@ class WorkerApplication extends ignis_kernel_1.RestApplication {
|
|
|
168
168
|
return this.listenPromise;
|
|
169
169
|
}
|
|
170
170
|
/**
|
|
171
|
-
* The counterpart to `listen()`, and to `ServerApplication.stop()`:
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
*
|
|
171
|
+
* The counterpart to `listen()`, and to `ServerApplication.stop()`: runs the post-stop hooks, then
|
|
172
|
+
* closes every datasource the boot configured. Without it the OPFS exclusive lock a PGlite holds
|
|
173
|
+
* is never released - the next Worker then fails with `NoModificationAllowedError` until a full
|
|
174
|
+
* page reload. The Vite recipe is `import.meta.hot?.dispose(() => application.stop())`.
|
|
175
175
|
*
|
|
176
176
|
* Detaches BEFORE draining, unlike the server: here the listener IS the socket, and a request
|
|
177
|
-
* admitted while
|
|
178
|
-
*
|
|
177
|
+
* admitted while a datasource is closing has nothing left to run against. A stopped application
|
|
178
|
+
* is not restartable - build a new one.
|
|
179
179
|
*/
|
|
180
180
|
async stop() {
|
|
181
181
|
this.isStopped = true;
|
|
182
182
|
this.detachFromScope?.();
|
|
183
183
|
this.detachFromScope = undefined;
|
|
184
184
|
await this.executePostStopHooks();
|
|
185
|
+
await this.closeDataSources();
|
|
185
186
|
this.logger.for(this.stop.name).info('Worker application STOPPED');
|
|
186
187
|
}
|
|
187
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/applications/worker.ts"],"names":[],"mappings":";;;AAAA,sDAA4E;AAC5E,0DAAqD;AACrD,wDAAsE;AAEtE,8CAAgD;AAiBhD;;;;;GAKG;AACH,MAAsB,iBAIpB,SAAQ,8BAA4C;IAJtD;;QAaU,cAAS,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/applications/worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,14 +65,14 @@ export declare abstract class WorkerApplication<AppEnv extends Env = Env, AppSch
|
|
|
65
65
|
scope?: MessagePort | IWorkerMessageScope;
|
|
66
66
|
}): Promise<void>;
|
|
67
67
|
/**
|
|
68
|
-
* The counterpart to `listen()`, and to `ServerApplication.stop()`:
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
68
|
+
* The counterpart to `listen()`, and to `ServerApplication.stop()`: runs the post-stop hooks, then
|
|
69
|
+
* closes every datasource the boot configured. Without it the OPFS exclusive lock a PGlite holds
|
|
70
|
+
* is never released - the next Worker then fails with `NoModificationAllowedError` until a full
|
|
71
|
+
* page reload. The Vite recipe is `import.meta.hot?.dispose(() => application.stop())`.
|
|
72
72
|
*
|
|
73
73
|
* Detaches BEFORE draining, unlike the server: here the listener IS the socket, and a request
|
|
74
|
-
* admitted while
|
|
75
|
-
*
|
|
74
|
+
* admitted while a datasource is closing has nothing left to run against. A stopped application
|
|
75
|
+
* is not restartable - build a new one.
|
|
76
76
|
*/
|
|
77
77
|
stop(): Promise<void>;
|
|
78
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/applications/worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGxC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IACjF,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACjF,mBAAmB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACrF,KAAK,CAAC,IAAI,IAAI,CAAC;CAChB;AAED;;;;;GAKG;AACH,8BAAsB,iBAAiB,CACrC,MAAM,SAAS,GAAG,GAAG,GAAG,EACxB,SAAS,SAAS,MAAM,GAAG,EAAE,EAC7B,QAAQ,SAAS,MAAM,GAAG,GAAG,CAC7B,SAAQ,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IACpD,qMAAqM;IACrM,UAAkB,OAAO,EAAE,yBAAyB,CAAC;IAErD,iGAAiG;IACjG,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,+FAA+F;IAC/F,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;;;;OAOG;IACM,cAAc,IAAI,MAAM;IASjC;;;OAGG;YACW,aAAa;IAoC3B,kKAAkK;IAClK,OAAO,CAAC,iBAAiB;IAgBzB,kIAAkI;YACpH,YAAY;IAW1B;;;;;OAKG;YACW,eAAe;IAqC7B,OAAO,CAAC,QAAQ;IAsChB;;;;;;OAMG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,WAAW,GAAG,mBAAmB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjF;;;;;;;;;OASG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/applications/worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGxC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IACjF,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACjF,mBAAmB,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI,CAAC;IACrF,KAAK,CAAC,IAAI,IAAI,CAAC;CAChB;AAED;;;;;GAKG;AACH,8BAAsB,iBAAiB,CACrC,MAAM,SAAS,GAAG,GAAG,GAAG,EACxB,SAAS,SAAS,MAAM,GAAG,EAAE,EAC7B,QAAQ,SAAS,MAAM,GAAG,GAAG,CAC7B,SAAQ,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IACpD,qMAAqM;IACrM,UAAkB,OAAO,EAAE,yBAAyB,CAAC;IAErD,iGAAiG;IACjG,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,+FAA+F;IAC/F,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;;;;OAOG;IACM,cAAc,IAAI,MAAM;IASjC;;;OAGG;YACW,aAAa;IAoC3B,kKAAkK;IAClK,OAAO,CAAC,iBAAiB;IAgBzB,kIAAkI;YACpH,YAAY;IAW1B;;;;;OAKG;YACW,eAAe;IAqC7B,OAAO,CAAC,QAAQ;IAsChB;;;;;;OAMG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,WAAW,GAAG,mBAAmB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjF;;;;;;;;;OASG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAW5B"}
|
|
@@ -165,20 +165,21 @@ export class WorkerApplication extends RestApplication {
|
|
|
165
165
|
return this.listenPromise;
|
|
166
166
|
}
|
|
167
167
|
/**
|
|
168
|
-
* The counterpart to `listen()`, and to `ServerApplication.stop()`:
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
168
|
+
* The counterpart to `listen()`, and to `ServerApplication.stop()`: runs the post-stop hooks, then
|
|
169
|
+
* closes every datasource the boot configured. Without it the OPFS exclusive lock a PGlite holds
|
|
170
|
+
* is never released - the next Worker then fails with `NoModificationAllowedError` until a full
|
|
171
|
+
* page reload. The Vite recipe is `import.meta.hot?.dispose(() => application.stop())`.
|
|
172
172
|
*
|
|
173
173
|
* Detaches BEFORE draining, unlike the server: here the listener IS the socket, and a request
|
|
174
|
-
* admitted while
|
|
175
|
-
*
|
|
174
|
+
* admitted while a datasource is closing has nothing left to run against. A stopped application
|
|
175
|
+
* is not restartable - build a new one.
|
|
176
176
|
*/
|
|
177
177
|
async stop() {
|
|
178
178
|
this.isStopped = true;
|
|
179
179
|
this.detachFromScope?.();
|
|
180
180
|
this.detachFromScope = undefined;
|
|
181
181
|
await this.executePostStopHooks();
|
|
182
|
+
await this.closeDataSources();
|
|
182
183
|
this.logger.for(this.stop.name).info('Worker application STOPPED');
|
|
183
184
|
}
|
|
184
185
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/applications/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiBhD;;;;;GAKG;AACH,MAAM,OAAgB,iBAIpB,SAAQ,eAA4C;IAJtD;;QAaU,cAAS,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/applications/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiBhD;;;;;GAKG;AACH,MAAM,OAAgB,iBAIpB,SAAQ,eAA4C;IAJtD;;QAaU,cAAS,GAAG,KAAK,CAAC;IA0N5B,CAAC;IAxNC;;;;;;;OAOG;IACM,cAAc;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;QAElF,IAAI,CAAC,IAAI,CAAS,EAAE,GAAG,EAAE,YAAY,CAAC,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACvF,mBAAmB,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAEzC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa,CAAC,IAG3B;QACC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAExD,IAAI,gBAAkD,CAAC;QACvD,IAAI,OAAgB,CAAC;QAErB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACvD,gBAAgB,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,sDAAsD,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACzF,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1F,OAAO;YACT,CAAC;YAAC,OAAO,SAAS,EAAE,CAAC;gBACnB,MAAM,CAAC,KAAK,CACV,+FAA+F,EAC/F,QAAQ,CAAC,EAAE,EACX,SAAS,CACV,CAAC;gBACF,OAAO,GAAG,SAAS,CAAC;YACtB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,kKAAkK;IAC1J,iBAAiB,CAAC,IAIzB;QACC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAElC,IAAI,CAAC;YACH,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM;iBACR,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;iBAChC,KAAK,CAAC,kEAAkE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,kIAAkI;IAC1H,KAAK,CAAC,YAAY;QACxB,8FAA8F;QAC9F,iGAAiG;QACjG,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAExC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9B,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,eAAe,CAAC,IAG7B;QACC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,cAAc,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,wFAAwF,EACxF,QAAQ,CAAC,EAAE,EACX,KAAK,CACN,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QAED,8FAA8F;QAC9F,gGAAgG;QAChG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,uDAAuD,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAClF,IAAI,CAAC,iBAAiB,CAAC;gBACrB,KAAK;gBACL,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,KAAK,EAAE,QAAQ,CAAC;oBACd,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB;oBACpD,OAAO,EAAE,uFAAuF,QAAQ,CAAC,EAAE,EAAE;iBAC9G,CAAC;aACH,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,QAAQ,CAAC,IAAkD;QACjE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEnD,gGAAgG;QAChG,qFAAqF;QACrF,0FAA0F;QAC1F,oBAAoB;QACpB,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAQ,EAAE;YACtC,MAAM,QAAQ,GAAI,KAAsB,CAAC,IAAuC,CAAC;YAEjF,6FAA6F;YAC7F,2FAA2F;YAC3F,2FAA2F;YAC3F,yFAAyF;YACzF,wEAAwE;YACxE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,uDAAuD,EAAE,QAAQ,CAAC,CAAC;gBAChF,OAAO;YACT,CAAC;YAED,yFAAyF;YACzF,6FAA6F;YAC7F,uBAAuB;YACvB,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACtD,MAAM,CAAC,KAAK,CAAC,wDAAwD,EAAE,KAAK,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE5C,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAEhB,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE;YAC1B,KAAK,CAAC,mBAAmB,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CAAC,IAAoD;QAC/D,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM;iBACR,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;iBACrB,IAAI,CAAC,kEAAkE,CAAC,CAAC;YAC5E,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QAED,+FAA+F;QAC/F,+DAA+D;QAC/D,MAAM,KAAK,GACT,IAAI,EAAE,KAAK,IAAK,UAAkC,CAAC;QAErD,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAEzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAElF,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEjC,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACrE,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis-worker",
|
|
3
|
-
"version": "0.2.0-
|
|
3
|
+
"version": "0.2.0-45",
|
|
4
4
|
"description": "Browser Web Worker host for the IGNIS framework: the request/response envelope, the transport contract, and WorkerApplication - the layer that listens on `onmessage` instead of a socket, so a RestApplication can serve its controllers with no server anywhere.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"browser",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"license": "MIT",
|
|
34
34
|
"engines": {
|
|
35
|
-
"bun": ">=1.
|
|
35
|
+
"bun": ">=1.4"
|
|
36
36
|
},
|
|
37
37
|
"main": "./dist/cjs/index.js",
|
|
38
38
|
"module": "./dist/esm/index.js",
|
|
@@ -74,9 +74,9 @@
|
|
|
74
74
|
"prepublishOnly": "bun run rebuild"
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"@venizia/ignis-helpers": "^0.2.0-
|
|
78
|
-
"@venizia/ignis-inversion": "^0.2.0-
|
|
79
|
-
"@venizia/ignis-kernel": "^0.2.0-
|
|
77
|
+
"@venizia/ignis-helpers": "^0.2.0-41",
|
|
78
|
+
"@venizia/ignis-inversion": "^0.2.0-24",
|
|
79
|
+
"@venizia/ignis-kernel": "^0.2.0-46",
|
|
80
80
|
"reflect-metadata": "^0.2.2"
|
|
81
81
|
},
|
|
82
82
|
"peerDependencies": {
|