@nxtedition/lib 23.3.19 → 23.3.21
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 +3 -1
- package/http.js +8 -5
- package/package.json +1 -1
- package/rxjs/combineMap.d.ts +6 -0
- package/trace.js +15 -15
package/app.js
CHANGED
|
@@ -272,7 +272,9 @@ export function makeApp(appConfig, onTerminate) {
|
|
|
272
272
|
try {
|
|
273
273
|
fs.mkdirSync('./.nxt', { recursive: true })
|
|
274
274
|
} catch (err) {
|
|
275
|
-
|
|
275
|
+
if (err.code !== 'EACCES') {
|
|
276
|
+
logger.warn({ err }, 'failed to create ./nxt dir')
|
|
277
|
+
}
|
|
276
278
|
}
|
|
277
279
|
|
|
278
280
|
let toobusy
|
package/http.js
CHANGED
|
@@ -65,12 +65,10 @@ export class Context {
|
|
|
65
65
|
return this.#userAgent
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
/** @deprecated */
|
|
69
68
|
get method() {
|
|
70
69
|
return this.#req.method
|
|
71
70
|
}
|
|
72
71
|
|
|
73
|
-
/** @deprecated */
|
|
74
72
|
get url() {
|
|
75
73
|
if (this.#url === undefined) {
|
|
76
74
|
this.#url = requestTarget(this.#req)
|
|
@@ -78,8 +76,11 @@ export class Context {
|
|
|
78
76
|
return this.#url
|
|
79
77
|
}
|
|
80
78
|
|
|
81
|
-
/** @deprecated */
|
|
82
79
|
set url(value) {
|
|
80
|
+
if (value instanceof URL) {
|
|
81
|
+
value = value.toString()
|
|
82
|
+
}
|
|
83
|
+
|
|
83
84
|
if (typeof value !== 'string') {
|
|
84
85
|
throw new Error('url must be a string')
|
|
85
86
|
}
|
|
@@ -89,14 +90,16 @@ export class Context {
|
|
|
89
90
|
this.#query = undefined
|
|
90
91
|
}
|
|
91
92
|
|
|
92
|
-
/** @deprecated */
|
|
93
93
|
get query() {
|
|
94
94
|
if (this.#query === undefined) {
|
|
95
|
-
this.#query =
|
|
95
|
+
this.#query =
|
|
96
|
+
this.url.search.length > 1 ? Object.freeze(querystring.parse(this.url.search.slice(1))) : {}
|
|
96
97
|
}
|
|
97
98
|
return this.#query
|
|
98
99
|
}
|
|
99
100
|
|
|
101
|
+
set query(value) {}
|
|
102
|
+
|
|
100
103
|
get logger() {
|
|
101
104
|
return this.#logger
|
|
102
105
|
}
|
package/package.json
CHANGED
package/trace.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { threadId } from 'node:worker_threads'
|
|
2
|
-
import { Pool } from 'undici'
|
|
2
|
+
import { request, Pool } from '@nxtedition/nxt-undici'
|
|
3
3
|
import fp from 'lodash/fp.js'
|
|
4
4
|
|
|
5
5
|
const maxInt = 2147483647
|
|
@@ -23,20 +23,22 @@ export function makeTrace({
|
|
|
23
23
|
|
|
24
24
|
let pending = 0
|
|
25
25
|
|
|
26
|
+
const flushInterval = setInterval(flushTraces, 10e3)
|
|
27
|
+
|
|
26
28
|
const client = new Pool(Array.isArray(url) ? url[0] : url, {
|
|
27
29
|
keepAliveTimeout: 10 * 60e3,
|
|
28
30
|
pipelining: 4,
|
|
29
31
|
connections: 4,
|
|
30
32
|
})
|
|
31
33
|
|
|
32
|
-
|
|
34
|
+
logger?.info({ url }, 'trace')
|
|
33
35
|
|
|
34
36
|
destroyers?.push(async () => {
|
|
35
37
|
clearInterval(flushInterval)
|
|
38
|
+
await client.close()
|
|
36
39
|
while (traceData) {
|
|
37
40
|
await flushTraces()
|
|
38
41
|
}
|
|
39
|
-
await client.close()
|
|
40
42
|
})
|
|
41
43
|
|
|
42
44
|
let traceData = ''
|
|
@@ -50,18 +52,16 @@ export function makeTrace({
|
|
|
50
52
|
|
|
51
53
|
try {
|
|
52
54
|
pending += data.length
|
|
53
|
-
await
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
})
|
|
64
|
-
.then(({ body }) => body.dump())
|
|
55
|
+
await request({
|
|
56
|
+
path: '/_bulk',
|
|
57
|
+
method: 'POST',
|
|
58
|
+
idempotent: true,
|
|
59
|
+
headers: HEADERS,
|
|
60
|
+
headersTimeout: 60e3,
|
|
61
|
+
bodyTimeout: 60e3,
|
|
62
|
+
body: data,
|
|
63
|
+
dispatcher: client,
|
|
64
|
+
}).then(({ body }) => body.dump())
|
|
65
65
|
} catch (err) {
|
|
66
66
|
logger.error({ err }, 'trace failed')
|
|
67
67
|
} finally {
|