@nxtedition/lib 27.1.5 → 27.1.7

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 (3) hide show
  1. package/app.js +11 -9
  2. package/numa.js +15 -9
  3. package/package.json +9 -12
package/app.js CHANGED
@@ -185,16 +185,18 @@ export function makeApp(appConfig, onTerminateOrMeta, metaOrNull) {
185
185
  throw new Error('Service name is required')
186
186
  }
187
187
 
188
+ globalThis.__nxt_undici_global_headers = {
189
+ ...(globalThis.__nxt_undici_global_headers ?? {}),
190
+ 'nxt-module': serviceModule,
191
+ 'nxt-instance-id': serviceInstanceId,
192
+ 'nxt-worker-id': String(serviceWorkerId),
193
+ }
194
+
188
195
  const userAgent = (globalThis.userAgent =
189
- appConfig.userAgent ??
190
- (serviceName &&
191
- `${serviceName}/${
192
- serviceVersion || '*'
193
- } (module:${serviceModule}; instance:${serviceInstanceId}; worker:${serviceWorkerId}) Node/${process.version}`) ??
194
- null)
195
-
196
- if (isMainThread && serviceName) {
197
- process.title = `nxt:${userAgent}`
196
+ appConfig.userAgent ?? `${serviceName}/${serviceVersion || '*'}`)
197
+
198
+ if (isMainThread) {
199
+ process.title = `nxt:${userAgent} ${serviceModule}/${serviceInstanceId}/${serviceWorkerId}`
198
200
  }
199
201
 
200
202
  const dailyOffpeakTime =
package/numa.js CHANGED
@@ -50,21 +50,23 @@ function parseRange(value) {
50
50
 
51
51
  /**
52
52
  *
53
- * @param {null|number|number[]} numa
53
+ * @param {null|undefined|number|number[]} numa
54
54
  * @returns {number[]}
55
55
  */
56
56
  export function setAffinity(numa) {
57
57
  let affinity
58
58
 
59
- if (numa === null) {
60
- affinity = parseRange(fs.readFileSync('/sys/devices/system/cpu/present', 'utf8').trim())
61
- } else {
62
- if (numa.some((x) => !Number.isInteger(x) || x < 0)) {
63
- throw new Error(
64
- 'NUMA node must be null, a non-negative integer or array of non-negative integers',
65
- )
66
- }
59
+ if (Number.isInteger(numa) && numa >= 0) {
60
+ numa = [numa]
61
+ }
67
62
 
63
+ if (numa == null) {
64
+ affinity = parseRange(fs.readFileSync('/sys/devices/system/cpu/present', 'utf8').trim())
65
+ } else if (
66
+ Array.isArray(numa) &&
67
+ numa.length > 0 &&
68
+ numa.every((x) => Number.isInteger(x) && x >= 0)
69
+ ) {
68
70
  const allNodes = []
69
71
  for (const entry of fs.readdirSync('/sys/devices/system/node')) {
70
72
  if (!/^node\d+$/.test(entry)) {
@@ -83,6 +85,10 @@ export function setAffinity(numa) {
83
85
  }
84
86
 
85
87
  affinity = numa.flatMap((i) => allNodes[i % allNodes.length] ?? [])
88
+ } else {
89
+ throw new Error(
90
+ 'NUMA node must be undefined, null, a non-negative integer or non-empty array of non-negative integers',
91
+ )
86
92
  }
87
93
 
88
94
  const isolated = parseRange(fs.readFileSync('/sys/devices/system/cpu/isolated', 'utf8').trim())
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/lib",
3
- "version": "27.1.5",
3
+ "version": "27.1.7",
4
4
  "license": "UNLICENSED",
5
5
  "author": "Robert Nagy <robert.nagy@boffins.se>",
6
6
  "type": "module",
@@ -50,15 +50,14 @@
50
50
  "dependencies": {
51
51
  "@elastic/elasticsearch": "^8.17.1",
52
52
  "@elastic/transport": "^8.9.3",
53
- "@nxtedition/nxt-undici": "^7.1.6",
53
+ "@nxtedition/nxt-undici": "^7.1.9",
54
54
  "@nxtedition/sched": "^1.0.2",
55
- "@nxtedition/template": "^1.0.8",
55
+ "@nxtedition/template": "^1.0.9",
56
56
  "@nxtedition/weak-cache": "^1.0.2",
57
57
  "diff": "5.2.0",
58
58
  "fast-querystring": "^1.1.2",
59
- "flamegraph-middleware": "https://github.com/Qard/flamegraph-middleware",
59
+ "flamegraph-middleware": "^1.0.0",
60
60
  "http-errors": "^2.0.1",
61
- "lint-staged": "^16.2.6",
62
61
  "lodash": "^4.17.21",
63
62
  "lru-cache": "^11.2.2",
64
63
  "mime": "^4.0.7",
@@ -68,23 +67,21 @@
68
67
  "pino": "^10.1.0",
69
68
  "qs": "^6.14.0",
70
69
  "request-target": "^1.0.2",
71
- "typescript-eslint": "^8.46.2",
72
70
  "url-join": "^5.0.0",
73
71
  "xuid": "^4.1.5",
74
72
  "yocto-queue": "^1.2.2"
75
73
  },
76
74
  "devDependencies": {
77
- "@nxtedition/deepstream.io-client-js": ">=31.2.11",
75
+ "@nxtedition/deepstream.io-client-js": ">=31.2.14",
78
76
  "@types/lodash": "^4.17.21",
79
77
  "@types/node": "^24.10.1",
80
78
  "canvas": "^3.1.0",
81
- "eslint": "^9.39.1",
82
- "lerna": "^9.0.1",
83
- "lint-staged": "^16.2.7",
79
+ "lerna": "^9.0.3",
80
+ "prettier": "^3.7.1",
84
81
  "rxjs": "^7.8.2",
85
82
  "tsd": "^0.33.0",
86
83
  "typescript": "^5.9.3",
87
- "typescript-eslint": "^8.47.0",
84
+ "typescript-eslint": "^8.48.0",
88
85
  "undici": "^7.16.0"
89
86
  },
90
87
  "peerDependencies": {
@@ -95,5 +92,5 @@
95
92
  "pino": ">=7.0.0",
96
93
  "rxjs": "^7.0.0"
97
94
  },
98
- "gitHead": "ee430e86b76653e73a2ded21ef3f4c0755972023"
95
+ "gitHead": "f2cf9a710d64115dcdb6dbf57b7876d2a30fa0e2"
99
96
  }