summaryrefslogtreecommitdiff
path: root/packages/idb-bridge/src/util
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2019-06-23 22:16:03 +0200
committerFlorian Dold <florian.dold@gmail.com>2019-06-23 22:16:03 +0200
commit859a9e72e1e0431d729e429865d6272e2fb03ff7 (patch)
tree85c36750a947733d7fc93947557f2635799b5b0e /packages/idb-bridge/src/util
parenta4e4125cca8644703d7cff527a39c1a5a9842eba (diff)
downloadwallet-core-859a9e72e1e0431d729e429865d6272e2fb03ff7.tar.gz
wallet-core-859a9e72e1e0431d729e429865d6272e2fb03ff7.tar.bz2
wallet-core-859a9e72e1e0431d729e429865d6272e2fb03ff7.zip
idb: more tests working
Diffstat (limited to 'packages/idb-bridge/src/util')
-rw-r--r--packages/idb-bridge/src/util/cmp.ts2
-rw-r--r--packages/idb-bridge/src/util/valueToKey.ts88
2 files changed, 46 insertions, 44 deletions
diff --git a/packages/idb-bridge/src/util/cmp.ts b/packages/idb-bridge/src/util/cmp.ts
index 9d0dc99a2..078c0a9bd 100644
--- a/packages/idb-bridge/src/util/cmp.ts
+++ b/packages/idb-bridge/src/util/cmp.ts
@@ -39,6 +39,8 @@ const getType = (x: any) => {
// https://w3c.github.io/IndexedDB/#compare-two-keys
const compareKeys = (first: any, second: any): -1 | 0 | 1 => {
+ console.log("comparing keys", first, second);
+
if (second === undefined) {
throw new TypeError();
}
diff --git a/packages/idb-bridge/src/util/valueToKey.ts b/packages/idb-bridge/src/util/valueToKey.ts
index 3a9e36786..85c8c409f 100644
--- a/packages/idb-bridge/src/util/valueToKey.ts
+++ b/packages/idb-bridge/src/util/valueToKey.ts
@@ -14,57 +14,57 @@
permissions and limitations under the License.
*/
-
import { DataError } from "./errors";
import { Key } from "./types";
// https://w3c.github.io/IndexedDB/#convert-a-value-to-a-input
function valueToKey(input: any, seen?: Set<object>): Key | Key[] {
- if (typeof input === "number") {
- if (isNaN(input)) {
- throw new DataError();
- }
- return input;
- } else if (input instanceof Date) {
- const ms = input.valueOf();
- if (isNaN(ms)) {
- throw new DataError();
- }
- return new Date(ms);
- } else if (typeof input === "string") {
- return input;
- } else if (
- input instanceof ArrayBuffer ||
- (typeof ArrayBuffer !== "undefined" &&
- ArrayBuffer.isView &&
- ArrayBuffer.isView(input))
- ) {
- if (input instanceof ArrayBuffer) {
- return new Uint8Array(input).buffer;
- }
- return new Uint8Array(input.buffer).buffer;
- } else if (Array.isArray(input)) {
- if (seen === undefined) {
- seen = new Set();
- } else if (seen.has(input)) {
- throw new DataError();
- }
- seen.add(input);
+ if (typeof input === "number") {
+ if (isNaN(input)) {
+ throw new DataError();
+ }
+ return input;
+ } else if (input instanceof Date) {
+ const ms = input.valueOf();
+ if (isNaN(ms)) {
+ throw new DataError();
+ }
+ return new Date(ms);
+ } else if (typeof input === "string") {
+ return input;
+ } else if (
+ input instanceof ArrayBuffer ||
+ (typeof ArrayBuffer !== "undefined" &&
+ ArrayBuffer.isView &&
+ ArrayBuffer.isView(input))
+ ) {
+ if (input instanceof ArrayBuffer) {
+ return new Uint8Array(input).buffer;
+ }
+ return new Uint8Array(input.buffer).buffer;
+ } else if (Array.isArray(input)) {
+ if (seen === undefined) {
+ seen = new Set();
+ } else if (seen.has(input)) {
+ throw new DataError();
+ }
+ seen.add(input);
- const keys = [];
- for (let i = 0; i < input.length; i++) {
- const hop = input.hasOwnProperty(i);
- if (!hop) {
- throw new DataError();
- }
- const entry = input[i];
- const key = valueToKey(entry, seen);
- keys.push(key);
- }
- return keys;
- } else {
+ const keys = [];
+ for (let i = 0; i < input.length; i++) {
+ const hop = input.hasOwnProperty(i);
+ if (!hop) {
throw new DataError();
+ }
+ const entry = input[i];
+ const key = valueToKey(entry, seen);
+ keys.push(key);
}
-};
+ return keys;
+ } else {
+
+ throw new DataError();
+ }
+}
export default valueToKey;