From a4e4125cca8644703d7cff527a39c1a5a9842eba Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Fri, 21 Jun 2019 19:18:36 +0200 Subject: idb: tests working --- packages/idb-bridge/src/util/getIndexKeys.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 packages/idb-bridge/src/util/getIndexKeys.ts (limited to 'packages/idb-bridge/src/util/getIndexKeys.ts') diff --git a/packages/idb-bridge/src/util/getIndexKeys.ts b/packages/idb-bridge/src/util/getIndexKeys.ts new file mode 100644 index 000000000..416cf9ea2 --- /dev/null +++ b/packages/idb-bridge/src/util/getIndexKeys.ts @@ -0,0 +1,28 @@ +import { Key, Value, KeyPath } from "./types"; +import extractKey from "./extractKey"; +import valueToKey from "./valueToKey"; + +export function getIndexKeys( + value: Value, + keyPath: KeyPath, + multiEntry: boolean, +): Key[] { + if (multiEntry && Array.isArray(keyPath)) { + const keys = []; + for (const subkeyPath of keyPath) { + const key = extractKey(subkeyPath, value); + try { + const k = valueToKey(key); + keys.push(k); + } catch { + // Ignore invalid subkeys + } + } + return keys; + } else { + let key = extractKey(keyPath, value); + return [valueToKey(key)]; + } +} + +export default getIndexKeys; -- cgit v1.2.3