@ai-matrx/content-ir-react 0.9.2 → 0.10.0
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/CHANGELOG.md +26 -0
- package/dist/index.cjs +19 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +19 -1
- package/dist/index.js.map +1 -1
- package/dist/resolver.cjs +19 -1
- package/dist/resolver.cjs.map +1 -1
- package/dist/resolver.d.cts +3 -0
- package/dist/resolver.d.ts +3 -0
- package/dist/resolver.js +19 -1
- package/dist/resolver.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -55,11 +55,15 @@ function errorFields(error) {
|
|
|
55
55
|
...error.stack === void 0 ? {} : { stack: error.stack }
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
|
+
var WARM_RETRY_DELAYS_MS = [1e3, 5e3, 15e3];
|
|
58
59
|
var ComponentResolver = class {
|
|
59
60
|
compiled = null;
|
|
60
61
|
db = /* @__PURE__ */ new Map();
|
|
61
62
|
warmPromise = null;
|
|
62
63
|
warmFailureLogged = false;
|
|
64
|
+
/** Consecutive warm-load failures — indexes WARM_RETRY_DELAYS_MS. */
|
|
65
|
+
warmFailures = 0;
|
|
66
|
+
warmRetryTimer = null;
|
|
63
67
|
/**
|
|
64
68
|
* True once a list load has RUN TO COMPLETION (success or failure), or once
|
|
65
69
|
* any rows have been ingested by any tier. Until then `resolve()` answering
|
|
@@ -326,6 +330,11 @@ var ComponentResolver = class {
|
|
|
326
330
|
this.warmPromise = loadAll().then((rows) => {
|
|
327
331
|
this.ingestDbRows(rows);
|
|
328
332
|
this.settled = true;
|
|
333
|
+
this.warmFailures = 0;
|
|
334
|
+
if (this.warmRetryTimer) {
|
|
335
|
+
clearTimeout(this.warmRetryTimer);
|
|
336
|
+
this.warmRetryTimer = null;
|
|
337
|
+
}
|
|
329
338
|
}).catch((error) => {
|
|
330
339
|
const message = `component-resolver warm load failed (compiled bootstrap still serving): ${describe(error)}`;
|
|
331
340
|
if (!this.warmFailureLogged) {
|
|
@@ -338,8 +347,17 @@ var ComponentResolver = class {
|
|
|
338
347
|
...errorFields(error),
|
|
339
348
|
raw: error
|
|
340
349
|
});
|
|
341
|
-
this.settled = true;
|
|
342
350
|
this.warmPromise = null;
|
|
351
|
+
this.warmFailures += 1;
|
|
352
|
+
const delay = WARM_RETRY_DELAYS_MS[this.warmFailures - 1] ?? null;
|
|
353
|
+
if (delay === null) {
|
|
354
|
+
this.settled = true;
|
|
355
|
+
} else if (!this.warmRetryTimer) {
|
|
356
|
+
this.warmRetryTimer = setTimeout(() => {
|
|
357
|
+
this.warmRetryTimer = null;
|
|
358
|
+
void this.ensureWarm();
|
|
359
|
+
}, delay);
|
|
360
|
+
}
|
|
343
361
|
});
|
|
344
362
|
}
|
|
345
363
|
return this.warmPromise;
|