create-tradejs 1.0.10 → 1.0.11

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.
Files changed (2) hide show
  1. package/dist/index.js +24 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -32,6 +32,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
32
32
  var index_exports = {};
33
33
  __export(index_exports, {
34
34
  buildProjectFiles: () => buildProjectFiles,
35
+ findAvailablePort: () => findAvailablePort,
35
36
  main: () => main,
36
37
  parseArgs: () => parseArgs,
37
38
  scaffoldProject: () => scaffoldProject
@@ -242,12 +243,32 @@ var localBin = (projectDir, name) => import_node_path.default.join(
242
243
  ".bin",
243
244
  process.platform === "win32" ? `${name}.cmd` : name
244
245
  );
245
- var isPortAvailable = (port) => new Promise((resolve) => {
246
+ var isPortListening = (port, host) => new Promise((resolve) => {
247
+ const socket = import_node_net.default.createConnection({ port, host });
248
+ const finish = (listening) => {
249
+ socket.destroy();
250
+ resolve(listening);
251
+ };
252
+ socket.setTimeout(250);
253
+ socket.once("connect", () => finish(true));
254
+ socket.once("error", () => finish(false));
255
+ socket.once("timeout", () => finish(false));
256
+ });
257
+ var canBindPort = (port) => new Promise((resolve) => {
246
258
  const server = import_node_net.default.createServer();
247
259
  server.unref();
248
260
  server.once("error", () => resolve(false));
249
- server.listen(port, () => server.close(() => resolve(true)));
261
+ server.listen(
262
+ { port, host: "0.0.0.0", exclusive: true },
263
+ () => server.close(() => resolve(true))
264
+ );
250
265
  });
266
+ var isPortAvailable = async (port) => {
267
+ if (await isPortListening(port, "127.0.0.1") || await isPortListening(port, "::1")) {
268
+ return false;
269
+ }
270
+ return canBindPort(port);
271
+ };
251
272
  var findAvailablePort = async (preferredPort) => {
252
273
  for (let offset = 0; offset < 20; offset += 1) {
253
274
  const port = preferredPort + offset;
@@ -372,6 +393,7 @@ create-tradejs failed: ${error.message}`);
372
393
  // Annotate the CommonJS export names for ESM import in node:
373
394
  0 && (module.exports = {
374
395
  buildProjectFiles,
396
+ findAvailablePort,
375
397
  main,
376
398
  parseArgs,
377
399
  scaffoldProject
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-tradejs",
3
- "version": "1.0.10",
3
+ "version": "1.0.11",
4
4
  "description": "Create a ready-to-run TradeJS project with local infrastructure and the Web UI.",
5
5
  "keywords": [
6
6
  "tradejs",