diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-06-23 22:16:03 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-06-23 22:16:03 +0200 |
commit | 859a9e72e1e0431d729e429865d6272e2fb03ff7 (patch) | |
tree | 85c36750a947733d7fc93947557f2635799b5b0e /packages/idb-bridge/src/util | |
parent | a4e4125cca8644703d7cff527a39c1a5a9842eba (diff) | |
download | wallet-core-859a9e72e1e0431d729e429865d6272e2fb03ff7.tar.xz |
idb: more tests working
Diffstat (limited to 'packages/idb-bridge/src/util')
-rw-r--r-- | packages/idb-bridge/src/util/cmp.ts | 2 | ||||
-rw-r--r-- | packages/idb-bridge/src/util/valueToKey.ts | 88 |
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; |