@nestjs/core 11.1.25 → 11.1.27
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestjs/core",
|
|
3
|
-
"version": "11.1.
|
|
3
|
+
"version": "11.1.27",
|
|
4
4
|
"description": "Nest - modern, fast, powerful node.js web framework (@core)",
|
|
5
5
|
"author": "Kamil Mysliwiec",
|
|
6
6
|
"license": "MIT",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"uid": "2.0.2"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@nestjs/common": "11.1.
|
|
31
|
+
"@nestjs/common": "11.1.27"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@nestjs/common": "^11.0.0",
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"optional": true
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "660a1249e32e7701cdd7e5ccb20b7f695e721bce"
|
|
53
53
|
}
|
|
@@ -59,28 +59,49 @@ class RouterResponseController {
|
|
|
59
59
|
200;
|
|
60
60
|
return new Promise((resolve, reject) => {
|
|
61
61
|
let settled = false;
|
|
62
|
+
let closeRequested = false;
|
|
62
63
|
let subscription;
|
|
63
|
-
const
|
|
64
|
+
const disconnectSource = request.socket ?? response;
|
|
65
|
+
const cleanup = () => disconnectSource.removeListener('close', onClose);
|
|
66
|
+
const endStream = () => {
|
|
67
|
+
if (!stream.writableEnded) {
|
|
68
|
+
stream.end();
|
|
69
|
+
}
|
|
70
|
+
};
|
|
64
71
|
const onClose = () => {
|
|
65
|
-
if (settled) {
|
|
72
|
+
if (settled || closeRequested) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
closeRequested = true;
|
|
76
|
+
if (!subscription) {
|
|
77
|
+
cleanup();
|
|
66
78
|
return;
|
|
67
79
|
}
|
|
68
80
|
settled = true;
|
|
69
81
|
cleanup();
|
|
70
82
|
subscription?.unsubscribe();
|
|
71
|
-
|
|
72
|
-
stream.end();
|
|
73
|
-
}
|
|
83
|
+
endStream();
|
|
74
84
|
response.end();
|
|
75
85
|
resolve();
|
|
76
86
|
};
|
|
77
|
-
|
|
87
|
+
disconnectSource.once('close', onClose);
|
|
78
88
|
Promise.resolve(result)
|
|
79
89
|
.then(observableResult => {
|
|
80
90
|
if (settled) {
|
|
81
91
|
return;
|
|
82
92
|
}
|
|
83
93
|
this.assertObservable(observableResult);
|
|
94
|
+
if (closeRequested) {
|
|
95
|
+
const cleanupSubscription = observableResult.subscribe({
|
|
96
|
+
error: () => undefined,
|
|
97
|
+
});
|
|
98
|
+
cleanupSubscription.unsubscribe();
|
|
99
|
+
settled = true;
|
|
100
|
+
endStream();
|
|
101
|
+
response.end();
|
|
102
|
+
resolve();
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
84
105
|
stream.pipe(response, {
|
|
85
106
|
additionalHeaders: options?.additionalHeaders,
|
|
86
107
|
statusCode,
|
|
@@ -110,9 +131,7 @@ class RouterResponseController {
|
|
|
110
131
|
}
|
|
111
132
|
settled = true;
|
|
112
133
|
cleanup();
|
|
113
|
-
|
|
114
|
-
stream.end();
|
|
115
|
-
}
|
|
134
|
+
endStream();
|
|
116
135
|
reject(err);
|
|
117
136
|
},
|
|
118
137
|
complete: () => {
|
|
@@ -121,9 +140,7 @@ class RouterResponseController {
|
|
|
121
140
|
}
|
|
122
141
|
settled = true;
|
|
123
142
|
cleanup();
|
|
124
|
-
|
|
125
|
-
stream.end();
|
|
126
|
-
}
|
|
143
|
+
endStream();
|
|
127
144
|
resolve();
|
|
128
145
|
},
|
|
129
146
|
});
|
|
@@ -142,11 +159,16 @@ class RouterResponseController {
|
|
|
142
159
|
if (settled) {
|
|
143
160
|
return;
|
|
144
161
|
}
|
|
162
|
+
if (closeRequested) {
|
|
163
|
+
settled = true;
|
|
164
|
+
endStream();
|
|
165
|
+
response.end();
|
|
166
|
+
resolve();
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
145
169
|
settled = true;
|
|
146
170
|
cleanup();
|
|
147
|
-
|
|
148
|
-
stream.end();
|
|
149
|
-
}
|
|
171
|
+
endStream();
|
|
150
172
|
reject(err);
|
|
151
173
|
});
|
|
152
174
|
});
|