Skip to content

Commit

Permalink
Implement has() and hasMany() (#18)
Browse files Browse the repository at this point in the history
Ref: Level/community#142
Category: addition
  • Loading branch information
vweevers authored Jan 5, 2025
1 parent f832018 commit fbad527
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,7 @@ class MemoryLevel extends AbstractLevel {
permanence: false,
createIfMissing: false,
errorIfExists: false,
has: true,
encodings: { [storeEncoding]: true },
signals: {
// Would have no value here because the operations are synchronous
Expand Down Expand Up @@ -327,6 +328,20 @@ class MemoryLevel extends AbstractLevel {
return keys.map(getFromThis, tree)
}

async _has (key, options) {
const tree = options.snapshot != null
? options.snapshot[kTree]
: this[kTree]
return tree.get(key) !== undefined
}

async _hasMany (keys, options) {
const tree = options.snapshot != null
? options.snapshot[kTree]
: this[kTree]
return keys.map(has, tree)
}

async _del (key, options) {
this[kTree] = this[kTree].remove(key)
}
Expand Down Expand Up @@ -423,3 +438,7 @@ function getFromThis (key) {
function isRangeOption (k) {
return rangeOptions.has(k)
}

function has (key) {
return this.get(key) !== undefined
}

0 comments on commit fbad527

Please sign in to comment.