@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.
- package/app.js +11 -9
- package/numa.js +15 -9
- 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
|
-
|
|
191
|
-
|
|
192
|
-
|
|
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
|
|
60
|
-
|
|
61
|
-
}
|
|
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.
|
|
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.
|
|
53
|
+
"@nxtedition/nxt-undici": "^7.1.9",
|
|
54
54
|
"@nxtedition/sched": "^1.0.2",
|
|
55
|
-
"@nxtedition/template": "^1.0.
|
|
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": "
|
|
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.
|
|
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
|
-
"
|
|
82
|
-
"
|
|
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.
|
|
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": "
|
|
95
|
+
"gitHead": "f2cf9a710d64115dcdb6dbf57b7876d2a30fa0e2"
|
|
99
96
|
}
|