New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

bloomrun

Package Overview
Dependencies
Maintainers
2
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bloomrun - npm Package Compare versions

Comparing version 0.3.4 to 0.4.0

8

bloomrun.js

@@ -100,9 +100,9 @@ 'use strict'

BloomRun.prototype.lookup = function (pattern) {
var iterator = new Iterator(this, pattern)
BloomRun.prototype.lookup = function (pattern, opts) {
var iterator = new Iterator(this, pattern, opts)
return iterator.next()
}
BloomRun.prototype.list = function (pattern) {
var iterator = new Iterator(this, pattern)
BloomRun.prototype.list = function (pattern, opts) {
var iterator = new Iterator(this, pattern, opts)
var list = []

@@ -109,0 +109,0 @@ var current = null

@@ -6,5 +6,6 @@ 'use strict'

function Iterator (parent, obj) {
function Iterator (parent, obj, opts) {
if (!(this instanceof Iterator)) {
return new Iterator(this, parent)
// this is parent
return new Iterator(this, parent, obj)
}

@@ -14,4 +15,9 @@

this.pattern = obj
this.onlyPatterns = opts && opts.patterns
this.buckets = matchingBuckets(parent._buckets, obj, parent._properties)
if (obj) {
this.buckets = matchingBuckets(parent._buckets, obj, parent._properties)
} else {
this.buckets = parent._buckets
}

@@ -31,4 +37,8 @@ this.i = 0

if (deepPartialMatch(current.pattern, this.pattern)) {
match = current.payload
if (!this.pattern || deepPartialMatch(current.pattern, this.pattern)) {
if (this.onlyPatterns) {
match = current.pattern
} else {
match = current.payload
}
}

@@ -35,0 +45,0 @@

{
"name": "bloomrun",
"version": "0.3.4",
"version": "0.4.0",
"description": "JS object pattern matching, powered by bloom filters",

@@ -27,3 +27,2 @@ "main": "bloomrun.js",

"faucet": "0.0.1",
"nanite-drain": "^0.1.0",
"patrun": "^0.4.4",

@@ -30,0 +29,0 @@ "pre-commit": "^1.1.1",

@@ -86,3 +86,3 @@ [![logo][logo-url]][npm-url]

<a name="lookup"></a>
### instance.lookup(obj)
### instance.lookup(obj [, opts])

@@ -94,5 +94,9 @@ Looks up the first entry that matches the given obj. A match happens

Options:
* `patterns: true`, if you want to retrieve only patterns, not
payloads
-------------------------------------------------------
<a name="iterator"></a>
### instance.iterator(obj)
### instance.iterator(obj [, opts])

@@ -102,10 +106,20 @@ Returns an iterator, which is an object with a `next` method. `next`

are no more.
If `obj` is null, all patterns/payload will be returned.
Options:
* `patterns: true`, if you want to retrieve only patterns, not
payloads
-------------------------------------------------------
<a name="list"></a>
### instance.list(obj)
### instance.list(obj [, opts])
Returns all patterns that matches the object. If a payload was provided
this will be returned instead of the pattern.
If `obj` is null, all patterns/payload will be returned.
Options:
* `patterns: true`, if you want to retrieve only patterns, not
payloads
## Acknowledgements

@@ -112,0 +126,0 @@

@@ -5,3 +5,2 @@ 'use strict'

var bloomrun = require('./')
var drain = require('nanite-drain')

@@ -155,5 +154,6 @@ test('null is returned if pattern is not found', function (t) {

var pattern = { group: '123', userId: 'ABC' }
var payloadOne = drain(function (msg, done) { done() })
var payloadTwo = drain(function (msg, done) { done() })
function payloadOne () { }
function payloadTwo () { }
instance.add(pattern, payloadOne)

@@ -189,1 +189,85 @@ instance.add(pattern, payloadTwo)

})
test('patterns can be listed while using payloads', function (t) {
t.plan(1)
var instance = bloomrun()
var pattern1 = { group: '123', userId: 'ABC' }
var pattern2 = { group: '123', userId: 'DEF' }
function payloadOne () { }
function payloadTwo () { }
instance.add(pattern1, payloadOne)
instance.add(pattern2, payloadTwo)
t.deepEqual(instance.list({ group: '123' }, { patterns: true }), [pattern1, pattern2])
})
test('patterns can be looked up while using payloads', function (t) {
t.plan(1)
var instance = bloomrun()
var pattern1 = { group: '123', userId: 'ABC' }
var pattern2 = { group: '123', userId: 'DEF' }
function payloadOne () { }
function payloadTwo () { }
instance.add(pattern1, payloadOne)
instance.add(pattern2, payloadTwo)
t.equal(instance.lookup({ group: '123' }, { patterns: true }), pattern1)
})
test('iterators can be used to fetch only patterns', function (t) {
t.plan(3)
var instance = bloomrun()
var pattern1 = { group: '123', userId: 'ABC' }
var pattern2 = { group: '123', userId: 'DEF' }
function payloadOne () { }
function payloadTwo () { }
instance.add(pattern1, payloadOne)
instance.add(pattern2, payloadTwo)
var iterator = instance.iterator({ group: '123' }, { patterns: true })
t.equal(iterator.next(), pattern1)
t.equal(iterator.next(), pattern2)
t.equal(iterator.next(), null)
})
test('listing all payloads', function (t) {
t.plan(1)
var instance = bloomrun()
var pattern1 = { group: '123', userId: 'ABC' }
var pattern2 = { group: '123', userId: 'DEF' }
function payloadOne () { }
function payloadTwo () { }
instance.add(pattern1, payloadOne)
instance.add(pattern2, payloadTwo)
t.deepEqual(instance.list(), [payloadOne, payloadTwo])
})
test('listing all patterns', function (t) {
t.plan(1)
var instance = bloomrun()
var pattern1 = { group: '123', userId: 'ABC' }
var pattern2 = { group: '123', userId: 'DEF' }
function payloadOne () { }
function payloadTwo () { }
instance.add(pattern1, payloadOne)
instance.add(pattern2, payloadTwo)
t.deepEqual(instance.list(null, { patterns: true }), [pattern1, pattern2])
})
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc