@platformatic/node 3.12.0 → 3.13.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/lib/capability.js CHANGED
@@ -8,7 +8,9 @@ import {
8
8
  injectViaRequest
9
9
  } from '@platformatic/basic'
10
10
  import { features } from '@platformatic/foundation'
11
+ import { Unpromise } from '@watchable/unpromise'
11
12
  import inject from 'light-my-request'
13
+ import { once } from 'node:events'
12
14
  import { existsSync } from 'node:fs'
13
15
  import { readFile } from 'node:fs/promises'
14
16
  import { Server } from 'node:http'
@@ -149,10 +151,7 @@ export class NodeCapability extends BaseCapability {
149
151
  // The server promise must be created before requiring the entrypoint even if it's not going to be used
150
152
  // at all. Otherwise there is chance we miss the listen event.
151
153
  const serverOptions = this.serverConfig
152
- const serverPromise = createServerListener(
153
- (this.isEntrypoint ? serverOptions?.port : undefined) ?? true,
154
- (this.isEntrypoint ? serverOptions?.hostname : undefined) ?? true
155
- )
154
+ const serverPromise = createServerListener(serverOptions?.port ?? true, serverOptions?.hostname ?? true)
156
155
  this.#module = await importFile(finalEntrypoint)
157
156
  this.#module = this.#module.default || this.#module
158
157
 
@@ -201,6 +200,10 @@ export class NodeCapability extends BaseCapability {
201
200
  async stop () {
202
201
  await super.stop()
203
202
 
203
+ if (this.status === 'starting') {
204
+ await Unpromise.race([once(this, 'started'), once(this, 'start:error')])
205
+ }
206
+
204
207
  if (this.childManager) {
205
208
  return this.stopCommand()
206
209
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platformatic/node",
3
- "version": "3.12.0",
3
+ "version": "3.13.0",
4
4
  "description": "Platformatic Node.js Capability",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -15,11 +15,12 @@
15
15
  },
16
16
  "homepage": "https://github.com/platformatic/platformatic#readme",
17
17
  "dependencies": {
18
+ "@watchable/unpromise": "^1.0.2",
18
19
  "json5": "^2.2.3",
19
20
  "light-my-request": "^6.0.0",
20
- "@platformatic/basic": "3.12.0",
21
- "@platformatic/foundation": "3.12.0",
22
- "@platformatic/generators": "3.12.0"
21
+ "@platformatic/foundation": "3.13.0",
22
+ "@platformatic/basic": "3.13.0",
23
+ "@platformatic/generators": "3.13.0"
23
24
  },
24
25
  "devDependencies": {
25
26
  "cleaner-spec-reporter": "^0.5.0",
@@ -31,8 +32,8 @@
31
32
  "neostandard": "^0.12.0",
32
33
  "tsx": "^4.19.0",
33
34
  "typescript": "^5.5.4",
34
- "@platformatic/service": "3.12.0",
35
- "@platformatic/gateway": "3.12.0"
35
+ "@platformatic/service": "3.13.0",
36
+ "@platformatic/gateway": "3.13.0"
36
37
  },
37
38
  "engines": {
38
39
  "node": ">=22.19.0"
package/schema.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "$id": "https://schemas.platformatic.dev/@platformatic/node/3.12.0.json",
2
+ "$id": "https://schemas.platformatic.dev/@platformatic/node/3.13.0.json",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "title": "Platformatic Node.js Config",
5
5
  "type": "object",