gm-qwen 2.0.806 → 2.0.808
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/bin/bootstrap.js +12 -6
- package/gm.json +1 -1
- package/package.json +1 -1
package/bin/bootstrap.js
CHANGED
|
@@ -173,8 +173,10 @@ function fetchToFile(url, destPath, expectedTotal) {
|
|
|
173
173
|
const append = res.statusCode === 206 && existing > 0;
|
|
174
174
|
const out = fs.createWriteStream(destPath, { flags: append ? 'a' : 'w' });
|
|
175
175
|
let bytes = append ? existing : 0;
|
|
176
|
-
let
|
|
176
|
+
let lastStderr = Date.now();
|
|
177
177
|
let lastByte = Date.now();
|
|
178
|
+
const fetchStart = Date.now();
|
|
179
|
+
obsEvent('bootstrap', 'fetch.start', { url, resume_from: existing, status: res.statusCode });
|
|
178
180
|
const stallTimer = setInterval(() => {
|
|
179
181
|
if (Date.now() - lastByte > STALL_TIMEOUT_MS) {
|
|
180
182
|
clearInterval(stallTimer);
|
|
@@ -184,15 +186,19 @@ function fetchToFile(url, destPath, expectedTotal) {
|
|
|
184
186
|
res.on('data', c => {
|
|
185
187
|
bytes += c.length;
|
|
186
188
|
lastByte = Date.now();
|
|
187
|
-
if (Date.now() -
|
|
189
|
+
if (Date.now() - lastStderr > 5000) {
|
|
188
190
|
const pct = expectedTotal ? ` ${Math.floor(bytes / expectedTotal * 100)}%` : '';
|
|
189
|
-
|
|
190
|
-
|
|
191
|
+
try { process.stderr.write(`[plugkit-bootstrap] downloading: ${(bytes / 1048576).toFixed(1)} MiB${pct}\n`); } catch (_) {}
|
|
192
|
+
lastStderr = Date.now();
|
|
191
193
|
}
|
|
192
194
|
});
|
|
193
195
|
res.pipe(out);
|
|
194
|
-
out.on('finish', () => {
|
|
195
|
-
|
|
196
|
+
out.on('finish', () => {
|
|
197
|
+
clearInterval(stallTimer);
|
|
198
|
+
obsEvent('bootstrap', 'fetch.end', { url, bytes, dur_ms: Date.now() - fetchStart, ok: true });
|
|
199
|
+
out.close(() => resolve(bytes));
|
|
200
|
+
});
|
|
201
|
+
out.on('error', err => { clearInterval(stallTimer); obsEvent('bootstrap', 'fetch.end', { url, bytes, dur_ms: Date.now() - fetchStart, ok: false, err: String(err.message || err) }); reject(err); });
|
|
196
202
|
res.on('error', err => { clearInterval(stallTimer); reject(err); });
|
|
197
203
|
res.on('end', () => clearInterval(stallTimer));
|
|
198
204
|
});
|
package/gm.json
CHANGED