@camstack/types 0.1.16 → 0.1.17

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.
@@ -247,6 +247,18 @@ export declare abstract class BaseAddon<TConfig extends object = Record<string,
247
247
  * (e.g. from older versions) without polluting the typed config.
248
248
  */
249
249
  protected resolveConfig(): Promise<void>;
250
+ /**
251
+ * Wrap `ctx.settings.readAddonStore()` with a short retry budget so a
252
+ * transient settings-store outage (mid-restart of sqlite-settings, tsx-watch
253
+ * swap, or any race where the SqliteSettingsBackend is between shutdown and
254
+ * re-initialize) doesn't propagate up into `initialize()` and leave the
255
+ * addon permanently broken.
256
+ *
257
+ * Retry only the two known infra fingerprints. Anything else propagates so
258
+ * real bugs surface immediately. After the budget expires we fall back to
259
+ * `{}` (defaults) — the addon's first successful patch will rehydrate.
260
+ */
261
+ private readAddonStoreWithRetry;
250
262
  }
251
263
  /**
252
264
  * Normalize an `ICamstackAddon.initialize()` return value into the
@@ -1 +1 @@
1
- {"version":3,"file":"base-addon.d.ts","sourceRoot":"","sources":["../../src/addon/base-addon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-addon.d.ts","sourceRoot":"","sources":["../../src/addon/base-addon.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -545,7 +545,7 @@ class BaseAddon {
545
545
  * (e.g. from older versions) without polluting the typed config.
546
546
  */
547
547
  async resolveConfig() {
548
- const stored = await this._ctx?.settings?.readAddonStore() ?? {};
548
+ const stored = await this.readAddonStoreWithRetry();
549
549
  const resolved = { ...this.defaults };
550
550
  for (const key of Object.keys(this.defaults)) {
551
551
  const storedValue = stored[key];
@@ -558,6 +558,39 @@ class BaseAddon {
558
558
  }
559
559
  this._config = resolved;
560
560
  }
561
+ /**
562
+ * Wrap `ctx.settings.readAddonStore()` with a short retry budget so a
563
+ * transient settings-store outage (mid-restart of sqlite-settings, tsx-watch
564
+ * swap, or any race where the SqliteSettingsBackend is between shutdown and
565
+ * re-initialize) doesn't propagate up into `initialize()` and leave the
566
+ * addon permanently broken.
567
+ *
568
+ * Retry only the two known infra fingerprints. Anything else propagates so
569
+ * real bugs surface immediately. After the budget expires we fall back to
570
+ * `{}` (defaults) — the addon's first successful patch will rehydrate.
571
+ */
572
+ async readAddonStoreWithRetry() {
573
+ const settings = this._ctx?.settings;
574
+ if (!settings) return {};
575
+ const delaysMs = [150, 350, 600, 900];
576
+ let lastErr;
577
+ for (let attempt = 0; attempt <= delaysMs.length; attempt++) {
578
+ try {
579
+ return await settings.readAddonStore() ?? {};
580
+ } catch (err) {
581
+ lastErr = err;
582
+ const msg = err instanceof Error ? err.message : String(err);
583
+ const transient = msg.includes("SqliteSettingsBackend not initialized") || msg.includes("provider not available");
584
+ if (!transient) throw err;
585
+ if (attempt === delaysMs.length) break;
586
+ await new Promise((r) => setTimeout(r, delaysMs[attempt]));
587
+ }
588
+ }
589
+ this._ctx?.logger?.warn?.("readAddonStore: settings-store unavailable after retries — using defaults", {
590
+ meta: { error: lastErr instanceof Error ? lastErr.message : String(lastErr) }
591
+ });
592
+ return {};
593
+ }
561
594
  }
562
595
  function normalizeAddonInitResult(result) {
563
596
  if (result == null) return;