summaryrefslogtreecommitdiff
path: root/packages/idb-bridge/src/BridgeIDBKeyRange.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/idb-bridge/src/BridgeIDBKeyRange.ts')
-rw-r--r--packages/idb-bridge/src/BridgeIDBKeyRange.ts131
1 files changed, 0 insertions, 131 deletions
diff --git a/packages/idb-bridge/src/BridgeIDBKeyRange.ts b/packages/idb-bridge/src/BridgeIDBKeyRange.ts
deleted file mode 100644
index d2eaa2d1b..000000000
--- a/packages/idb-bridge/src/BridgeIDBKeyRange.ts
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- Copyright 2019 Florian Dold
- 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 compareKeys from "./util/cmp";
-import { DataError } from "./util/errors";
-import { Key } from "./util/types";
-import valueToKey from "./util/valueToKey";
-
-// http://www.w3.org/TR/2015/REC-IndexedDB-20150108/#range-concept
-/** @public */
-export class BridgeIDBKeyRange {
- public static only(value: Key) {
- if (arguments.length === 0) {
- throw new TypeError();
- }
- value = valueToKey(value);
- return new BridgeIDBKeyRange(value, value, false, false);
- }
-
- static lowerBound(lower: Key, open: boolean = false) {
- if (arguments.length === 0) {
- throw new TypeError();
- }
- lower = valueToKey(lower);
- return new BridgeIDBKeyRange(lower, undefined, open, true);
- }
-
- static upperBound(upper: Key, open: boolean = false) {
- if (arguments.length === 0) {
- throw new TypeError();
- }
- upper = valueToKey(upper);
- return new BridgeIDBKeyRange(undefined, upper, true, open);
- }
-
- static bound(
- lower: Key,
- upper: Key,
- lowerOpen: boolean = false,
- upperOpen: boolean = false,
- ) {
- if (arguments.length < 2) {
- throw new TypeError();
- }
-
- const cmpResult = compareKeys(lower, upper);
- if (cmpResult === 1 || (cmpResult === 0 && (lowerOpen || upperOpen))) {
- throw new DataError();
- }
-
- lower = valueToKey(lower);
- upper = valueToKey(upper);
- return new BridgeIDBKeyRange(lower, upper, lowerOpen, upperOpen);
- }
-
- readonly lower: Key | undefined;
- readonly upper: Key | undefined;
- readonly lowerOpen: boolean;
- readonly upperOpen: boolean;
-
- constructor(
- lower: Key | undefined,
- upper: Key | undefined,
- lowerOpen: boolean,
- upperOpen: boolean,
- ) {
- this.lower = lower;
- this.upper = upper;
- this.lowerOpen = lowerOpen;
- this.upperOpen = upperOpen;
- }
-
- // https://w3c.github.io/IndexedDB/#dom-idbkeyrange-includes
- includes(key: Key) {
- if (arguments.length === 0) {
- throw new TypeError();
- }
- key = valueToKey(key);
-
- if (this.lower !== undefined) {
- const cmpResult = compareKeys(this.lower, key);
-
- if (cmpResult === 1 || (cmpResult === 0 && this.lowerOpen)) {
- return false;
- }
- }
- if (this.upper !== undefined) {
- const cmpResult = compareKeys(this.upper, key);
-
- if (cmpResult === -1 || (cmpResult === 0 && this.upperOpen)) {
- return false;
- }
- }
- return true;
- }
-
- toString() {
- return "[object IDBKeyRange]";
- }
-
- static _valueToKeyRange(value: any, nullDisallowedFlag: boolean = false) {
- if (value instanceof BridgeIDBKeyRange) {
- return value;
- }
-
- if (value === null || value === undefined) {
- if (nullDisallowedFlag) {
- throw new DataError();
- }
- return new BridgeIDBKeyRange(undefined, undefined, false, false);
- }
-
- const key = valueToKey(value);
-
- return BridgeIDBKeyRange.only(key);
- }
-}