fergies-inverted-index
Advanced tools
Comparing version 4.0.1 to 4.1.0
@@ -19,6 +19,6 @@ 'use strict'; | ||
key = { | ||
field: [ key.split(':')[0] ], | ||
value: { | ||
gte: key.split(':')[1], | ||
lte: key.split(':')[1] | ||
FIELD: [ key.split(':')[0] ], | ||
VALUE: { | ||
GTE: key.split(':')[1], | ||
LTE: key.split(':')[1] | ||
} | ||
@@ -29,5 +29,5 @@ }; | ||
key = { | ||
value: { | ||
gte: key, | ||
lte: key | ||
VALUE: { | ||
GTE: key, | ||
LTE: key | ||
} | ||
@@ -38,6 +38,6 @@ }; | ||
// key is object, but key.value is string | ||
if (isString(key.value)) { | ||
key.value = { | ||
gte: key.value, | ||
lte: key.value | ||
if (isString(key.VALUE)) { | ||
key.VALUE = { | ||
GTE: key.VALUE, | ||
LTE: key.VALUE | ||
}; | ||
@@ -49,7 +49,7 @@ } | ||
// tokens | ||
if (key.value.gte.slice(-1) !== ops.tokenAppend) { | ||
key.value.gte = key.value.gte + ops.tokenAppend; | ||
if (key.VALUE.GTE.slice(-1) !== ops.tokenAppend) { | ||
key.VALUE.GTE = key.VALUE.GTE + ops.tokenAppend; | ||
} | ||
if (key.value.lte.slice(-1) !== ops.tokenAppend) { | ||
key.value.lte = key.value.lte + ops.tokenAppend; | ||
if (key.VALUE.LTE.slice(-1) !== ops.tokenAppend) { | ||
key.VALUE.LTE = key.VALUE.LTE + ops.tokenAppend; | ||
} | ||
@@ -106,4 +106,4 @@ return key | ||
new Promise( | ||
resolve => ops.field // is a field specified? | ||
? resolve(isString(ops.field) ? [ ops.field ] : ops.field) // use specified field (if String push to Array) | ||
resolve => ops.FIELD // is a field specified? | ||
? resolve(isString(ops.FIELD) ? [ ops.FIELD ] : ops.FIELD) // use specified field (if String push to Array) | ||
: AVAILABLE_FIELDS() // else get ALL available fields from store | ||
@@ -114,4 +114,4 @@ .then(resolve)).then( | ||
fieldName => new Promise(resolve => db.createReadStream({ | ||
gte: fieldName + ':' + ops.value.gte, | ||
lte: fieldName + ':' + ops.value.lte + '○' | ||
gte: fieldName + ':' + ops.VALUE.GTE, | ||
lte: fieldName + ':' + ops.VALUE.LTE + '○' | ||
}).on('data', token => token.value.forEach(docId => { | ||
@@ -177,5 +177,5 @@ rs[docId] = [...(rs[docId] || []), token.key]; | ||
_id: [...result.reduce((acc, cur) => acc.add(cur._id), new Set())].sort(), | ||
value: { | ||
gte: key.value.gte.split(':').pop().replace(re, ''), | ||
lte: key.value.lte.split(':').pop().replace(re, '') | ||
VALUE: { | ||
GTE: key.VALUE.GTE.split(':').pop().replace(re, ''), | ||
LTE: key.VALUE.LTE.split(':').pop().replace(re, '') | ||
} | ||
@@ -234,7 +234,7 @@ }) | ||
const DIST = ops => getRange({ | ||
gte: ops.field + ':' + ((ops.value && ops.value.gte) || ''), | ||
lte: ops.field + ':' + ((ops.value && ops.value.lte) || '') + '○' | ||
gte: ops.FIELD + ':' + ((ops.VALUE && ops.VALUE.GTE) || ''), | ||
lte: ops.FIELD + ':' + ((ops.VALUE && ops.VALUE.LTE) || '') + '○' | ||
}).then(items => items.map(item => ({ | ||
field: item.split(/:(.+)/)[0], | ||
value: item.split(/:(.+)/)[1] | ||
FIELD: item.split(/:(.+)/)[0], | ||
VALUE: item.split(/:(.+)/)[1] | ||
}))); | ||
@@ -253,6 +253,6 @@ | ||
// use trav lib to find all leaf nodes with corresponding paths | ||
const invertDoc = function (obj) { | ||
var keys = []; | ||
const invertDoc = obj => { | ||
const keys = []; | ||
trav(obj).forEach(function (node) { | ||
var searchable = true; | ||
let searchable = true; | ||
this.path.forEach(item => { | ||
@@ -265,13 +265,11 @@ // make fields beginning with ! non-searchable | ||
if (searchable && this.isLeaf) { | ||
var key = this.path.join('.') + ':' + this.node; | ||
if (Array.isArray(this.parent.node)) { | ||
key = this.path.slice(0, this.path.length - 1).join('.') + ':' + this.node; | ||
} | ||
keys.push(key); | ||
keys.push(this.path | ||
// allowing numbers in path names create ambiguity with arrays | ||
// so just strip numbers from path names | ||
.filter(item => !Number.isInteger(+item)) | ||
.join('.') + ':' + this.node); | ||
} | ||
}); | ||
// Bump all _ids to strings. Prevents _id='0' causing problems amongst other things | ||
if (!isNaN(obj._id)) obj._id = obj._id + ''; | ||
return { | ||
_id: obj._id || incrementalId + '', // generate _id if not present | ||
_id: obj._id, | ||
keys: keys | ||
@@ -278,0 +276,0 @@ } |
@@ -15,6 +15,6 @@ import level from 'level'; | ||
key = { | ||
field: [ key.split(':')[0] ], | ||
value: { | ||
gte: key.split(':')[1], | ||
lte: key.split(':')[1] | ||
FIELD: [ key.split(':')[0] ], | ||
VALUE: { | ||
GTE: key.split(':')[1], | ||
LTE: key.split(':')[1] | ||
} | ||
@@ -25,5 +25,5 @@ }; | ||
key = { | ||
value: { | ||
gte: key, | ||
lte: key | ||
VALUE: { | ||
GTE: key, | ||
LTE: key | ||
} | ||
@@ -34,6 +34,6 @@ }; | ||
// key is object, but key.value is string | ||
if (isString(key.value)) { | ||
key.value = { | ||
gte: key.value, | ||
lte: key.value | ||
if (isString(key.VALUE)) { | ||
key.VALUE = { | ||
GTE: key.VALUE, | ||
LTE: key.VALUE | ||
}; | ||
@@ -45,7 +45,7 @@ } | ||
// tokens | ||
if (key.value.gte.slice(-1) !== ops.tokenAppend) { | ||
key.value.gte = key.value.gte + ops.tokenAppend; | ||
if (key.VALUE.GTE.slice(-1) !== ops.tokenAppend) { | ||
key.VALUE.GTE = key.VALUE.GTE + ops.tokenAppend; | ||
} | ||
if (key.value.lte.slice(-1) !== ops.tokenAppend) { | ||
key.value.lte = key.value.lte + ops.tokenAppend; | ||
if (key.VALUE.LTE.slice(-1) !== ops.tokenAppend) { | ||
key.VALUE.LTE = key.VALUE.LTE + ops.tokenAppend; | ||
} | ||
@@ -102,4 +102,4 @@ return key | ||
new Promise( | ||
resolve => ops.field // is a field specified? | ||
? resolve(isString(ops.field) ? [ ops.field ] : ops.field) // use specified field (if String push to Array) | ||
resolve => ops.FIELD // is a field specified? | ||
? resolve(isString(ops.FIELD) ? [ ops.FIELD ] : ops.FIELD) // use specified field (if String push to Array) | ||
: AVAILABLE_FIELDS() // else get ALL available fields from store | ||
@@ -110,4 +110,4 @@ .then(resolve)).then( | ||
fieldName => new Promise(resolve => db.createReadStream({ | ||
gte: fieldName + ':' + ops.value.gte, | ||
lte: fieldName + ':' + ops.value.lte + '○' | ||
gte: fieldName + ':' + ops.VALUE.GTE, | ||
lte: fieldName + ':' + ops.VALUE.LTE + '○' | ||
}).on('data', token => token.value.forEach(docId => { | ||
@@ -173,5 +173,5 @@ rs[docId] = [...(rs[docId] || []), token.key]; | ||
_id: [...result.reduce((acc, cur) => acc.add(cur._id), new Set())].sort(), | ||
value: { | ||
gte: key.value.gte.split(':').pop().replace(re, ''), | ||
lte: key.value.lte.split(':').pop().replace(re, '') | ||
VALUE: { | ||
GTE: key.VALUE.GTE.split(':').pop().replace(re, ''), | ||
LTE: key.VALUE.LTE.split(':').pop().replace(re, '') | ||
} | ||
@@ -230,7 +230,7 @@ }) | ||
const DIST = ops => getRange({ | ||
gte: ops.field + ':' + ((ops.value && ops.value.gte) || ''), | ||
lte: ops.field + ':' + ((ops.value && ops.value.lte) || '') + '○' | ||
gte: ops.FIELD + ':' + ((ops.VALUE && ops.VALUE.GTE) || ''), | ||
lte: ops.FIELD + ':' + ((ops.VALUE && ops.VALUE.LTE) || '') + '○' | ||
}).then(items => items.map(item => ({ | ||
field: item.split(/:(.+)/)[0], | ||
value: item.split(/:(.+)/)[1] | ||
FIELD: item.split(/:(.+)/)[0], | ||
VALUE: item.split(/:(.+)/)[1] | ||
}))); | ||
@@ -249,6 +249,6 @@ | ||
// use trav lib to find all leaf nodes with corresponding paths | ||
const invertDoc = function (obj) { | ||
var keys = []; | ||
const invertDoc = obj => { | ||
const keys = []; | ||
trav(obj).forEach(function (node) { | ||
var searchable = true; | ||
let searchable = true; | ||
this.path.forEach(item => { | ||
@@ -261,13 +261,11 @@ // make fields beginning with ! non-searchable | ||
if (searchable && this.isLeaf) { | ||
var key = this.path.join('.') + ':' + this.node; | ||
if (Array.isArray(this.parent.node)) { | ||
key = this.path.slice(0, this.path.length - 1).join('.') + ':' + this.node; | ||
} | ||
keys.push(key); | ||
keys.push(this.path | ||
// allowing numbers in path names create ambiguity with arrays | ||
// so just strip numbers from path names | ||
.filter(item => !Number.isInteger(+item)) | ||
.join('.') + ':' + this.node); | ||
} | ||
}); | ||
// Bump all _ids to strings. Prevents _id='0' causing problems amongst other things | ||
if (!isNaN(obj._id)) obj._id = obj._id + ''; | ||
return { | ||
_id: obj._id || incrementalId + '', // generate _id if not present | ||
_id: obj._id, | ||
keys: keys | ||
@@ -274,0 +272,0 @@ } |
{ | ||
"name": "fergies-inverted-index", | ||
"version": "4.0.1", | ||
"version": "4.1.0", | ||
"description": "An inverted index that allows javascript objects to be easily serialised and retrieved using promises and map-reduce", | ||
@@ -5,0 +5,0 @@ "main": "dist/fergies-inverted-index.cjs.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
34420
828