diff options
author | Florian Dold <florian@dold.me> | 2021-02-24 17:33:07 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-02-24 17:33:07 +0100 |
commit | 564e4f8710388ab2ae40c959c497f2e0260199ed (patch) | |
tree | 1d9f1b835bf6580977158f5eee133f8fa39f67d4 /packages/idb-bridge/src/util/canInjectKey.ts | |
parent | bc7956c2ba685e459c94204ca30f85eef881d0ac (diff) | |
download | wallet-core-564e4f8710388ab2ae40c959c497f2e0260199ed.tar.gz wallet-core-564e4f8710388ab2ae40c959c497f2e0260199ed.tar.bz2 wallet-core-564e4f8710388ab2ae40c959c497f2e0260199ed.zip |
idb: encapsulate non-JSON data correctly
Diffstat (limited to 'packages/idb-bridge/src/util/canInjectKey.ts')
-rw-r--r-- | packages/idb-bridge/src/util/canInjectKey.ts | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/packages/idb-bridge/src/util/canInjectKey.ts b/packages/idb-bridge/src/util/canInjectKey.ts deleted file mode 100644 index 09ecbd3ad..000000000 --- a/packages/idb-bridge/src/util/canInjectKey.ts +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright 2017 Jeremy Scheff - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - or implied. See the License for the specific language governing - permissions and limitations under the License. -*/ - -import { IDBKeyPath } from "../idbtypes"; - -// http://w3c.github.io/IndexedDB/#check-that-a-key-could-be-injected-into-a-value -const canInjectKey = (keyPath: IDBKeyPath, value: any) => { - if (Array.isArray(keyPath)) { - // tslint:disable-next-line max-line-length - throw new Error( - "The key paths used in this section are always strings and never sequences, since it is not possible to create a object store which has a key generator and also has a key path that is a sequence.", - ); - } - - const identifiers = keyPath.split("."); - if (identifiers.length === 0) { - throw new Error("Assert: identifiers is not empty"); - } - identifiers.pop(); - - for (const identifier of identifiers) { - if (typeof value !== "object" && !Array.isArray(value)) { - return false; - } - - const hop = value.hasOwnProperty(identifier); - if (!hop) { - return true; - } - - value = value[identifier]; - } - - return typeof value === "object" || Array.isArray(value); -}; - -export default canInjectKey; |