summaryrefslogtreecommitdiff
path: root/packages/idb-bridge/src/util/makeStoreKeyValue.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/idb-bridge/src/util/makeStoreKeyValue.ts')
-rw-r--r--packages/idb-bridge/src/util/makeStoreKeyValue.ts24
1 files changed, 18 insertions, 6 deletions
diff --git a/packages/idb-bridge/src/util/makeStoreKeyValue.ts b/packages/idb-bridge/src/util/makeStoreKeyValue.ts
index 4850cec26..4f45e0d8a 100644
--- a/packages/idb-bridge/src/util/makeStoreKeyValue.ts
+++ b/packages/idb-bridge/src/util/makeStoreKeyValue.ts
@@ -63,10 +63,14 @@ export function makeStoreKeyValue(
updatedKeyGenerator = currentKeyGenerator + 1;
} else if (typeof maybeInlineKey === "number") {
key = maybeInlineKey;
- updatedKeyGenerator = maybeInlineKey;
+ if (maybeInlineKey >= currentKeyGenerator) {
+ updatedKeyGenerator = maybeInlineKey + 1;
+ } else {
+ updatedKeyGenerator = currentKeyGenerator;
+ }
} else {
key = maybeInlineKey;
- updatedKeyGenerator = currentKeyGenerator + 1;
+ updatedKeyGenerator = currentKeyGenerator;
}
return {
key: key,
@@ -84,9 +88,17 @@ export function makeStoreKeyValue(
};
}
} else {
- // (no, no, yes)
- // (no, no, no)
- throw new DataError();
+ if (autoIncrement) {
+ // (no, no, yes)
+ return {
+ key: currentKeyGenerator,
+ value: value,
+ updatedKeyGenerator: currentKeyGenerator + 1,
+ }
+ } else {
+ // (no, no, no)
+ throw new DataError();
+ }
}
}
-} \ No newline at end of file
+}