private _getKeyCountForRange()

in src/InMemoryProvider.ts [845:873]


  private _getKeyCountForRange(
    keyLowRange: KeyType,
    keyHighRange: KeyType,
    lowRangeExclusive?: boolean,
    highRangeExclusive?: boolean
  ): number {
    const keyLow = serializeKeyToString(keyLowRange, this._keyPath);
    const keyHigh = serializeKeyToString(keyHighRange, this._keyPath);
    const iterator = this._indexTree.entries();
    let keyCount = 0;
    for (const item of iterator) {
      const key = item.key;
      if (key === undefined) {
        continue;
      }

      if (
        (key > keyLow || (key === keyLow && !lowRangeExclusive)) &&
        (key < keyHigh || (key === keyHigh && !highRangeExclusive))
      ) {
        if (this.isUniqueIndex()) {
          keyCount++;
        } else {
          keyCount += item.value?.length || 0;
        }
      }
    }
    return keyCount;
  }