@haku-sci/utils 2.0.0 → 2.0.1

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.
@@ -6,4 +6,5 @@ export declare class Microservice {
6
6
  private static isPortFree;
7
7
  private static setServerAddress;
8
8
  private static startMainMicroService;
9
+ static get host(): string;
9
10
  }
@@ -45,21 +45,28 @@ class Microservice {
45
45
  }
46
46
  static isPortFree(port) {
47
47
  return new Promise((resolve) => {
48
- const server = net.createServer()
49
- .once('error', () => resolve(false))
50
- .once('listening', () => {
48
+ const server = net.createServer();
49
+ server.once('error', (err) => {
50
+ if (err.code === 'EADDRINUSE' || err.code === 'EACCES') {
51
+ resolve(false);
52
+ }
53
+ else {
54
+ resolve(false);
55
+ }
56
+ });
57
+ server.once('listening', () => {
51
58
  server.close(() => resolve(true));
52
- })
53
- .listen(port);
59
+ });
60
+ server.listen(port, this.serverAddress.address);
54
61
  });
55
62
  }
56
63
  static async setServerAddress() {
57
- while (!this.isPortFree(this.serverAddress.port))
58
- this.serverAddress.port++;
59
64
  this.serverAddress.address = Object.values(os.networkInterfaces())
60
65
  .flatMap((iface) => iface ?? [])
61
66
  .find((addr) => addr.family === 'IPv4' && !addr.internal)
62
67
  .address;
68
+ while (!await this.isPortFree(this.serverAddress.port))
69
+ this.serverAddress.port++;
63
70
  }
64
71
  static async startMainMicroService(appModule) {
65
72
  const app = await core_1.NestFactory.createMicroservice(appModule, {
@@ -72,6 +79,9 @@ class Microservice {
72
79
  await app.listen();
73
80
  return app;
74
81
  }
82
+ static get host() {
83
+ return `${this.serverAddress.address}:${this.serverAddress.port}`;
84
+ }
75
85
  }
76
86
  exports.Microservice = Microservice;
77
87
  Microservice.serverAddress = { family: 'IPv4', port: 3000, address: null };
@@ -1 +1 @@
1
- {"version":3,"file":"microservice.service.js","sourceRoot":"","sources":["../../src/microservice/microservice.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"microservice.service.js","sourceRoot":"","sources":["../../src/microservice/microservice.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haku-sci/utils",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "utils from haku-sci. Library only",
5
5
  "main": "./dist/index.js",
6
6
  "types": "dist/index.d.ts",