@fluojs/platform-deno 1.0.3 → 1.0.5
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/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +29 -6
- package/package.json +3 -3
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,KAAK,UAAU,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpI,OAAO,KAAK,EAAE,WAAW,EAAqB,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createFetchStyleHttpAdapterRealtimeCapability } from '@fluojs/http/internal';
|
|
2
|
-
import { bootstrapHttpAdapterApplication, runHttpAdapterApplication } from '@fluojs/runtime/internal/http-adapter';
|
|
2
|
+
import { bootstrapHttpAdapterApplication, createConsoleApplicationLogger, runHttpAdapterApplication } from '@fluojs/runtime/internal/http-adapter';
|
|
3
3
|
import { createWebRequestResponseFactory, dispatchWebRequest } from '@fluojs/runtime/web';
|
|
4
4
|
|
|
5
5
|
/** Listen target metadata reported by `Deno.serve(...)` callbacks. */
|
|
@@ -127,7 +127,7 @@ export class DenoHttpApplicationAdapter {
|
|
|
127
127
|
}
|
|
128
128
|
async close() {
|
|
129
129
|
if (this.closeInFlight) {
|
|
130
|
-
await waitForCloseWithTimeout(this.closeInFlight, DEFAULT_SHUTDOWN_TIMEOUT_MS);
|
|
130
|
+
await waitForCloseWithTimeout(this.closeInFlight, DEFAULT_SHUTDOWN_TIMEOUT_MS, () => this.abortController?.abort());
|
|
131
131
|
return;
|
|
132
132
|
}
|
|
133
133
|
const server = this.server;
|
|
@@ -152,7 +152,7 @@ export class DenoHttpApplicationAdapter {
|
|
|
152
152
|
});
|
|
153
153
|
this.closeInFlight = closeInFlight;
|
|
154
154
|
void closeInFlight.catch(() => {});
|
|
155
|
-
await waitForCloseWithTimeout(closeInFlight, DEFAULT_SHUTDOWN_TIMEOUT_MS);
|
|
155
|
+
await waitForCloseWithTimeout(closeInFlight, DEFAULT_SHUTDOWN_TIMEOUT_MS, () => abortController?.abort());
|
|
156
156
|
}
|
|
157
157
|
trackInFlightRequest() {
|
|
158
158
|
this.inFlightRequestCount += 1;
|
|
@@ -185,10 +185,11 @@ export class DenoHttpApplicationAdapter {
|
|
|
185
185
|
* @returns A Deno-backed `HttpApplicationAdapter`.
|
|
186
186
|
*/
|
|
187
187
|
export function createDenoAdapter(options = {}) {
|
|
188
|
+
validateNonNegativeIntegerOption('maxBodySize', options.maxBodySize);
|
|
188
189
|
return new DenoHttpApplicationAdapter({
|
|
189
190
|
...options,
|
|
190
191
|
hostname: options.hostname ?? options.host ?? DEFAULT_HOSTNAME,
|
|
191
|
-
port: options.port
|
|
192
|
+
port: resolveDenoPort(options.port)
|
|
192
193
|
});
|
|
193
194
|
}
|
|
194
195
|
|
|
@@ -200,7 +201,11 @@ export function createDenoAdapter(options = {}) {
|
|
|
200
201
|
* @returns An initialized application shell that can be listened to later.
|
|
201
202
|
*/
|
|
202
203
|
export async function bootstrapDenoApplication(rootModule, options = {}) {
|
|
203
|
-
|
|
204
|
+
const logger = options.logger ?? createConsoleApplicationLogger();
|
|
205
|
+
return await bootstrapHttpAdapterApplication(rootModule, {
|
|
206
|
+
...options,
|
|
207
|
+
logger
|
|
208
|
+
}, createDenoAdapter(options));
|
|
204
209
|
}
|
|
205
210
|
|
|
206
211
|
/**
|
|
@@ -211,9 +216,11 @@ export async function bootstrapDenoApplication(rootModule, options = {}) {
|
|
|
211
216
|
* @returns A running application shell ready to receive requests.
|
|
212
217
|
*/
|
|
213
218
|
export async function runDenoApplication(rootModule, options = {}) {
|
|
219
|
+
const logger = options.logger ?? createConsoleApplicationLogger();
|
|
214
220
|
const adapter = createDenoAdapter(options);
|
|
215
221
|
return await runHttpAdapterApplication(rootModule, {
|
|
216
222
|
...options,
|
|
223
|
+
logger,
|
|
217
224
|
shutdownRegistration: options.shutdownSignals === false ? undefined : createDenoShutdownSignalRegistration(options.shutdownSignals ?? defaultDenoShutdownSignals())
|
|
218
225
|
}, adapter);
|
|
219
226
|
}
|
|
@@ -259,6 +266,21 @@ function createListenTarget(hostname, port, usesHttps) {
|
|
|
259
266
|
url: `${scheme}://${publicHostname}:${String(port)}`
|
|
260
267
|
};
|
|
261
268
|
}
|
|
269
|
+
function resolveDenoPort(value) {
|
|
270
|
+
const port = value ?? DEFAULT_PORT;
|
|
271
|
+
if (!Number.isInteger(port) || port < 0 || port > 65535) {
|
|
272
|
+
throw new Error(`Invalid port value: ${String(port)}. Expected an integer between 0 and 65535.`);
|
|
273
|
+
}
|
|
274
|
+
return port;
|
|
275
|
+
}
|
|
276
|
+
function validateNonNegativeIntegerOption(name, value) {
|
|
277
|
+
if (value === undefined) {
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
if (!Number.isInteger(value) || value < 0) {
|
|
281
|
+
throw new Error(`Invalid ${name} value: ${String(value)}. Expected a non-negative integer.`);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
262
284
|
function formatHostForAuthority(hostname) {
|
|
263
285
|
return hostname.includes(':') && !hostname.startsWith('[') ? `[${hostname}]` : hostname;
|
|
264
286
|
}
|
|
@@ -323,9 +345,10 @@ function createShutdownResponse() {
|
|
|
323
345
|
status: 503
|
|
324
346
|
});
|
|
325
347
|
}
|
|
326
|
-
function waitForCloseWithTimeout(closePromise, timeoutMs) {
|
|
348
|
+
function waitForCloseWithTimeout(closePromise, timeoutMs, onTimeout) {
|
|
327
349
|
return new Promise((resolve, reject) => {
|
|
328
350
|
const timeout = setTimeout(() => {
|
|
351
|
+
onTimeout?.();
|
|
329
352
|
reject(new Error(`Deno adapter shutdown timeout exceeded ${String(timeoutMs)}ms.`));
|
|
330
353
|
}, timeoutMs);
|
|
331
354
|
void closePromise.then(() => {
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"platform",
|
|
9
9
|
"server"
|
|
10
10
|
],
|
|
11
|
-
"version": "1.0.
|
|
11
|
+
"version": "1.0.5",
|
|
12
12
|
"private": false,
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"repository": {
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
],
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@fluojs/http": "^1.1.0",
|
|
36
|
-
"@fluojs/runtime": "^1.1.
|
|
36
|
+
"@fluojs/runtime": "^1.1.4"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"vitest": "^3.2.4",
|
|
40
|
-
"@fluojs/testing": "^1.0.
|
|
40
|
+
"@fluojs/testing": "^1.0.4"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
43
|
"prebuild": "node ../../tooling/scripts/clean-dist.mjs",
|