summaryrefslogtreecommitdiff
path: root/packages/idb-bridge/src/util/canInjectKey.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/idb-bridge/src/util/canInjectKey.ts')
-rw-r--r--packages/idb-bridge/src/util/canInjectKey.ts50
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;