Socket
Socket
Sign inDemoInstall

gitrows

Package Overview
Dependencies
23
Maintainers
1
Versions
43
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.7.17 to 0.8.0

6

docs/api/06_filters.md

@@ -31,2 +31,8 @@ # Filters

You can also supply multiple expressions and values per field name. All expressions will be handled as logical `AND`. This is especially useful for selecting ranges:
```
https://api.gitrows.com/@github/gitrows/data/iris.json?petalLength=lt:1.5&petalLength=gt:1
```
## Aggregate Functions

@@ -33,0 +39,0 @@

@@ -19,2 +19,12 @@

```js
gitrows.get(path,{'some_numerical_field':'gt:10'});
```
You can also supply an array of expressions per field name. All expressions will be handled as logical `AND`. This is especially useful for selecting ranges:
```js
gitrows.get(path,{'some_numerical_field':['gt:10','lt:20']});
```
## Aggregate Functions

@@ -21,0 +31,0 @@

80

lib/util.js

@@ -22,42 +22,46 @@ const Util={

if (key.indexOf('$')==0) return;
let value=filter[key].toString();
if (value.indexOf(':')>-1){
value=value.split(':');
switch (value[0].toLowerCase()) {
case 'gt':
obj = obj.filter(item=>item[key]!==undefined&&item[key]>value[1]);
break;
case 'gte':
obj = obj.filter(item=>item[key]!==undefined&&item[key]>=value[1]);
break;
case 'lt':
obj = obj.filter(item=>item[key]!==undefined&&item[key]<value[1]);
break;
case 'lte':
obj = obj.filter(item=>item[key]!==undefined&&item[key]<=value[1]);
break;
case 'not':
obj = obj.filter(item=>item[key]!==undefined&&item[key]!=value[1]);
break;
case 'eq':
obj = obj.filter(item=>item[key]!==undefined&&item[key]==value[1]);
break;
case 'starts':
case '^':
obj = obj.filter(item=>item[key]!==undefined&&typeof item[key]=='string'&&item[key].toLowerCase().startsWith(value[1].toLowerCase()));
break;
case 'ends':
case '$':
obj = obj.filter(item=>item[key]!==undefined&&typeof item[key]=='string'&&item[key].toLowerCase().endsWith(value[1].toLowerCase()));
break;
case 'contains':
case '*':
obj = obj.filter(item=>item[key]!==undefined&&typeof item[key]=='string'&&~item[key].toLowerCase().indexOf(value[1].toLowerCase()));
break;
let values=filter[key];
if (!Array.isArray(values)) values=[values];
values.forEach((item, i) => {
let value=item.toString();
if (value.indexOf(':')>-1){
value=value.split(':');
switch (value[0].toLowerCase()) {
case 'gt':
obj = obj.filter(item=>item[key]!==undefined&&item[key]>value[1]);
break;
case 'gte':
obj = obj.filter(item=>item[key]!==undefined&&item[key]>=value[1]);
break;
case 'lt':
obj = obj.filter(item=>item[key]!==undefined&&item[key]<value[1]);
break;
case 'lte':
obj = obj.filter(item=>item[key]!==undefined&&item[key]<=value[1]);
break;
case 'not':
obj = obj.filter(item=>item[key]!==undefined&&item[key]!=value[1]);
break;
case 'eq':
obj = obj.filter(item=>item[key]!==undefined&&item[key]==value[1]);
break;
case 'starts':
case '^':
obj = obj.filter(item=>item[key]!==undefined&&typeof item[key]=='string'&&item[key].toLowerCase().startsWith(value[1].toLowerCase()));
break;
case 'ends':
case '$':
obj = obj.filter(item=>item[key]!==undefined&&typeof item[key]=='string'&&item[key].toLowerCase().endsWith(value[1].toLowerCase()));
break;
case 'contains':
case '*':
obj = obj.filter(item=>item[key]!==undefined&&typeof item[key]=='string'&&~item[key].toLowerCase().indexOf(value[1].toLowerCase()));
break;
default:
default:
}
} else
obj = obj.filter(item=>typeof item[key]!='undefined'&&item[key]==value);
}
} else
obj = obj.filter(item=>typeof item[key]!='undefined'&&item[key]==value);
});
});

@@ -64,0 +68,0 @@ return obj;

{
"name": "gitrows",
"version": "0.7.17",
"version": "0.8.0",
"description": "Use git repos as CRUD data storage",

@@ -5,0 +5,0 @@ "main": "gitrows.js",

@@ -441,2 +441,12 @@ [![@latest](https://img.shields.io/npm/v/gitrows.svg)](https://www.npmjs.com/package/gitrows)

```js
gitrows.get(path,{'some_numerical_field':'gt:10'});
```
You can also supply an array of expressions per field name. All expressions will be handled as logical `AND`. This is especially useful for selecting ranges:
```js
gitrows.get(path,{'some_numerical_field':['gt:10','lt:20']});
```
## Aggregate Functions

@@ -443,0 +453,0 @@

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc