@react-router/serve 8.0.1 → 8.2.0
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 +19 -0
- package/dist/cli.js +30 -3
- package/package.json +4 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# `@react-router/serve`
|
|
2
2
|
|
|
3
|
+
## v8.2.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies:
|
|
8
|
+
- [`react-router@8.2.0`](https://github.com/remix-run/react-router/releases/tag/react-router@8.2.0)
|
|
9
|
+
- [`@react-router/express@8.2.0`](https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.2.0)
|
|
10
|
+
- [`@react-router/node@8.2.0`](https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.2.0)
|
|
11
|
+
|
|
12
|
+
## v8.1.0
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Use Node's built-in networking APIs to find an available port and remove the `get-port` dependency ([#15239](https://github.com/remix-run/react-router/pull/15239))
|
|
17
|
+
- Updated dependencies:
|
|
18
|
+
- [`react-router@8.1.0`](https://github.com/remix-run/react-router/releases/tag/react-router@8.1.0)
|
|
19
|
+
- [`@react-router/express@8.1.0`](https://github.com/remix-run/react-router/releases/tag/@react-router/express@8.1.0)
|
|
20
|
+
- [`@react-router/node@8.1.0`](https://github.com/remix-run/react-router/releases/tag/@react-router/node@8.1.0)
|
|
21
|
+
|
|
3
22
|
## v8.0.1
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* @react-router/serve v8.0
|
|
3
|
+
* @react-router/serve v8.2.0
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) Remix Software Inc.
|
|
6
6
|
*
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* @license MIT
|
|
11
11
|
*/
|
|
12
12
|
import fs from "node:fs";
|
|
13
|
+
import net from "node:net";
|
|
13
14
|
import os from "node:os";
|
|
14
15
|
import path from "node:path";
|
|
15
16
|
import url from "node:url";
|
|
@@ -19,7 +20,6 @@ import compression from "compression";
|
|
|
19
20
|
import express from "express";
|
|
20
21
|
import morgan from "morgan";
|
|
21
22
|
import sourceMapSupport from "source-map-support";
|
|
22
|
-
import getPort from "get-port";
|
|
23
23
|
//#region cli.ts
|
|
24
24
|
process.env.NODE_ENV = process.env.NODE_ENV ?? "production";
|
|
25
25
|
sourceMapSupport.install({ retrieveSourceMap: function(source) {
|
|
@@ -42,6 +42,33 @@ function parseNumber(raw) {
|
|
|
42
42
|
if (Number.isNaN(maybe)) return void 0;
|
|
43
43
|
return maybe;
|
|
44
44
|
}
|
|
45
|
+
async function getAvailablePort(preferredPort, host) {
|
|
46
|
+
let availablePort = await checkPort(preferredPort, host) ?? await checkPort(0, host);
|
|
47
|
+
if (availablePort === void 0) throw new Error("No available port found");
|
|
48
|
+
return availablePort;
|
|
49
|
+
}
|
|
50
|
+
function checkPort(port, host) {
|
|
51
|
+
return new Promise((resolve, reject) => {
|
|
52
|
+
let server = net.createServer();
|
|
53
|
+
let listenOptions = host ? {
|
|
54
|
+
port,
|
|
55
|
+
host
|
|
56
|
+
} : { port };
|
|
57
|
+
server.unref();
|
|
58
|
+
server.once("error", (error) => {
|
|
59
|
+
if (error.code === "EADDRINUSE" || error.code === "EACCES") resolve(void 0);
|
|
60
|
+
else reject(error);
|
|
61
|
+
});
|
|
62
|
+
server.listen(listenOptions, () => {
|
|
63
|
+
let address = server.address();
|
|
64
|
+
let availablePort = typeof address === "object" && address ? address.port : port;
|
|
65
|
+
server.close((error) => {
|
|
66
|
+
if (error) reject(error);
|
|
67
|
+
else resolve(availablePort);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
45
72
|
function getExpressPath(publicPath) {
|
|
46
73
|
let pathname;
|
|
47
74
|
try {
|
|
@@ -52,7 +79,7 @@ function getExpressPath(publicPath) {
|
|
|
52
79
|
return pathname.startsWith("/") ? pathname : `/${pathname}`;
|
|
53
80
|
}
|
|
54
81
|
async function run() {
|
|
55
|
-
let port = parseNumber(process.env.PORT) ?? await
|
|
82
|
+
let port = parseNumber(process.env.PORT) ?? await getAvailablePort(3e3, process.env.HOST);
|
|
56
83
|
let buildPathArg = process.argv[2];
|
|
57
84
|
if (!buildPathArg) {
|
|
58
85
|
console.error(`
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-router/serve",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "8.0
|
|
4
|
+
"version": "8.2.0",
|
|
5
5
|
"description": "Production application server for React Router",
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/remix-run/react-router/issues"
|
|
@@ -37,14 +37,13 @@
|
|
|
37
37
|
"@remix-run/node-fetch-server": "^0.13.3",
|
|
38
38
|
"compression": "^1.8.1",
|
|
39
39
|
"express": "^5.2.1",
|
|
40
|
-
"get-port": "7.2.0",
|
|
41
40
|
"morgan": "^1.10.1",
|
|
42
41
|
"source-map-support": "^0.5.21",
|
|
43
|
-
"@react-router/express": "8.0
|
|
44
|
-
"@react-router/node": "8.0
|
|
42
|
+
"@react-router/express": "8.2.0",
|
|
43
|
+
"@react-router/node": "8.2.0"
|
|
45
44
|
},
|
|
46
45
|
"peerDependencies": {
|
|
47
|
-
"react-router": "8.0
|
|
46
|
+
"react-router": "8.2.0"
|
|
48
47
|
},
|
|
49
48
|
"devDependencies": {
|
|
50
49
|
"@types/compression": "^1.8.1",
|