http-request-manager 18.15.16 → 18.15.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.
@@ -6126,6 +6126,19 @@ class DbService extends Dexie {
6126
6126
  });
6127
6127
  return schema;
6128
6128
  }
6129
+ deleteAndReinitialize() {
6130
+ return from(Dexie.delete(this.storageDB).then(async () => {
6131
+ if (this.isOpen()) {
6132
+ this.close();
6133
+ }
6134
+ this.dbReady = this.init();
6135
+ await this.dbReady;
6136
+ return this.isOpen();
6137
+ })).pipe(catchError((err) => {
6138
+ console.error('[DB] deleteAndReinitialize failed:', err);
6139
+ return of(false);
6140
+ }));
6141
+ }
6129
6142
  cleanTableName(str) {
6130
6143
  return str
6131
6144
  .replace(/[^a-zA-Z0-9\s_]/g, '')
@@ -6273,10 +6286,26 @@ class DatabaseManagerService extends DbService {
6273
6286
  if (!this.isMissingObjectStoreError(error)) {
6274
6287
  throw error;
6275
6288
  }
6276
- // console.warn(`createTableRecords: Missing object store for '${tableName}'. Recreating table and retrying once...`, error);
6277
6289
  return recreateMissingTableAndRetry().pipe(catchError((retryError) => {
6278
- console.error(`createTableRecords: Retry failed for '${tableName}'`, retryError);
6279
- throw retryError;
6290
+ if (!this.isMissingObjectStoreError(retryError)) {
6291
+ console.error(`createTableRecords: Retry failed for '${tableName}'`, retryError);
6292
+ throw retryError;
6293
+ }
6294
+ console.warn(`createTableRecords: Table '${tableName}' still missing after retry. Deleting DB and reinitializing...`);
6295
+ return this.deleteAndReinitialize().pipe(switchMap((reinitialized) => {
6296
+ if (!reinitialized) {
6297
+ throw retryError;
6298
+ }
6299
+ const inferredSchema = this.inferSchemaFromRecords(insertRecords);
6300
+ if (!inferredSchema) {
6301
+ throw retryError;
6302
+ }
6303
+ const tableDef = TableSchemaDef.adapt({ table: tableName, schema: inferredSchema });
6304
+ return this.createDatabaseTable(tableDef).pipe(switchMap(() => writeRecords()));
6305
+ }), catchError((finalError) => {
6306
+ console.error(`createTableRecords: All retries exhausted for '${tableName}'`, finalError);
6307
+ throw finalError;
6308
+ }));
6280
6309
  }));
6281
6310
  }));
6282
6311
  }
@@ -6369,6 +6398,9 @@ class DatabaseManagerService extends DbService {
6369
6398
  return of(false);
6370
6399
  })).subscribe();
6371
6400
  }
6401
+ resetDatabase() {
6402
+ return this.deleteAndReinitialize();
6403
+ }
6372
6404
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatabaseManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6373
6405
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatabaseManagerService, providedIn: 'root' }); }
6374
6406
  }