dexie 3.0.0 → 3.0.1

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/dist/dexie.mjs CHANGED
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * By David Fahlander, david.fahlander@gmail.com
6
6
  *
7
- * Version 3.0.0, Sun May 03 2020
7
+ * Version 3.0.1, Thu May 07 2020
8
8
  *
9
9
  * http://dexie.org
10
10
  *
@@ -799,31 +799,6 @@ props(DexiePromise, {
799
799
  values.map(function (value) { return DexiePromise.resolve(value).then(resolve, reject); });
800
800
  });
801
801
  },
802
- allSettled: function () {
803
- var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);
804
- return new DexiePromise(function (resolve) {
805
- if (possiblePromises.length === 0)
806
- resolve([]);
807
- var remaining = possiblePromises.length;
808
- var results = new Array(remaining);
809
- possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return results[i] = { status: "fulfilled", value: value }; }, function (reason) { return results[i] = { status: "rejected", reason: reason }; })
810
- .then(function () { return --remaining || resolve(results); }); });
811
- });
812
- },
813
- any: function () {
814
- var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);
815
- return new DexiePromise(function (resolve, reject) {
816
- if (possiblePromises.length === 0)
817
- reject(new AggregateError([]));
818
- var remaining = possiblePromises.length;
819
- var failures = new Array(remaining);
820
- possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return resolve(value); }, function (failure) {
821
- failures[i] = failure;
822
- if (!--remaining)
823
- reject(new AggregateError(failures));
824
- }); });
825
- });
826
- },
827
802
  PSD: {
828
803
  get: function () { return PSD; },
829
804
  set: function (value) { return PSD = value; }
@@ -855,6 +830,35 @@ props(DexiePromise, {
855
830
  });
856
831
  }
857
832
  });
833
+ if (NativePromise) {
834
+ if (NativePromise.allSettled)
835
+ setProp(DexiePromise, "allSettled", function () {
836
+ var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);
837
+ return new DexiePromise(function (resolve) {
838
+ if (possiblePromises.length === 0)
839
+ resolve([]);
840
+ var remaining = possiblePromises.length;
841
+ var results = new Array(remaining);
842
+ possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return results[i] = { status: "fulfilled", value: value }; }, function (reason) { return results[i] = { status: "rejected", reason: reason }; })
843
+ .then(function () { return --remaining || resolve(results); }); });
844
+ });
845
+ });
846
+ if (NativePromise.any && typeof AggregateError !== 'undefined')
847
+ setProp(DexiePromise, "any", function () {
848
+ var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);
849
+ return new DexiePromise(function (resolve, reject) {
850
+ if (possiblePromises.length === 0)
851
+ reject(new AggregateError([]));
852
+ var remaining = possiblePromises.length;
853
+ var failures = new Array(remaining);
854
+ possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return resolve(value); }, function (failure) {
855
+ failures[i] = failure;
856
+ if (!--remaining)
857
+ reject(new AggregateError(failures));
858
+ }); });
859
+ });
860
+ });
861
+ }
858
862
  function executePromiseTask(promise, fn) {
859
863
  try {
860
864
  fn(function (value) {
@@ -1178,8 +1182,10 @@ function switchToZone(targetZone, bEnteringZone) {
1178
1182
  GlobalPromise_1.race = targetEnv.race;
1179
1183
  GlobalPromise_1.resolve = targetEnv.resolve;
1180
1184
  GlobalPromise_1.reject = targetEnv.reject;
1181
- GlobalPromise_1.allSettled = targetEnv.allSettled;
1182
- GlobalPromise_1.any = targetEnv.any;
1185
+ if (targetEnv.allSettled)
1186
+ GlobalPromise_1.allSettled = targetEnv.allSettled;
1187
+ if (targetEnv.any)
1188
+ GlobalPromise_1.any = targetEnv.any;
1183
1189
  }
1184
1190
  }
1185
1191
  }
@@ -1293,7 +1299,7 @@ function tempTransaction(db, mode, storeNames, fn) {
1293
1299
  }
1294
1300
  }
1295
1301
 
1296
- var DEXIE_VERSION = '3.0.0';
1302
+ var DEXIE_VERSION = '3.0.1';
1297
1303
  var maxString = String.fromCharCode(65535);
1298
1304
  var minKey = -Infinity;
1299
1305
  var INVALID_KEY_ARGUMENT = "Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.";
@@ -3214,7 +3220,12 @@ function setApiOnPlace(db, objs, tableNames, dbschema) {
3214
3220
  objs.forEach(function (obj) {
3215
3221
  if (!(tableName in obj)) {
3216
3222
  if (obj === db.Transaction.prototype || obj instanceof db.Transaction) {
3217
- setProp(obj, tableName, { get: function () { return this.table(tableName); } });
3223
+ setProp(obj, tableName, {
3224
+ get: function () { return this.table(tableName); },
3225
+ set: function (value) {
3226
+ defineProperty(this, tableName, { value: value, writable: true, configurable: true, enumerable: true });
3227
+ }
3228
+ });
3218
3229
  }
3219
3230
  else {
3220
3231
  obj[tableName] = new db.Table(tableName, schema);
@@ -3533,26 +3544,28 @@ function createVersionConstructor(db) {
3533
3544
 
3534
3545
  var databaseEnumerator;
3535
3546
  function DatabaseEnumerator(indexedDB) {
3536
- var getDatabaseNamesNative = indexedDB && (indexedDB.getDatabaseNames || indexedDB.webkitGetDatabaseNames);
3547
+ var hasDatabasesNative = indexedDB && typeof indexedDB.databases === 'function';
3537
3548
  var dbNamesTable;
3538
- if (!getDatabaseNamesNative) {
3549
+ if (!hasDatabasesNative) {
3539
3550
  var db = new Dexie(DBNAMES_DB, { addons: [] });
3540
3551
  db.version(1).stores({ dbnames: 'name' });
3541
3552
  dbNamesTable = db.table('dbnames');
3542
3553
  }
3543
3554
  return {
3544
3555
  getDatabaseNames: function () {
3545
- return getDatabaseNamesNative ? new DexiePromise(function (resolve, reject) {
3546
- var req = getDatabaseNamesNative.call(indexedDB);
3547
- req.onsuccess = function (event) { return resolve(slice(event.target.result, 0)); };
3548
- req.onerror = eventRejectHandler(reject);
3549
- }) : dbNamesTable.toCollection().primaryKeys();
3556
+ return hasDatabasesNative
3557
+ ?
3558
+ DexiePromise.resolve(indexedDB.databases()).then(function (infos) { return infos
3559
+ .map(function (info) { return info.name; })
3560
+ .filter(function (name) { return name !== DBNAMES_DB; }); })
3561
+ :
3562
+ dbNamesTable.toCollection().primaryKeys();
3550
3563
  },
3551
3564
  add: function (name) {
3552
- return !getDatabaseNamesNative && name !== DBNAMES_DB && dbNamesTable.put({ name: name }).catch(nop);
3565
+ return !hasDatabasesNative && name !== DBNAMES_DB && dbNamesTable.put({ name: name }).catch(nop);
3553
3566
  },
3554
3567
  remove: function (name) {
3555
- return !getDatabaseNamesNative && name !== DBNAMES_DB && dbNamesTable.delete(name).catch(nop);
3568
+ return !hasDatabasesNative && name !== DBNAMES_DB && dbNamesTable.delete(name).catch(nop);
3556
3569
  }
3557
3570
  };
3558
3571
  }