Skip to content

Commit

Permalink
Use whitespace as delimiter like Qiita
Browse files Browse the repository at this point in the history
  • Loading branch information
ryamaguchi0220 committed Dec 4, 2020
1 parent 5c5cbee commit b989226
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 59 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ This module is perfect for integrating complex search (like Qiita search) into y
| Query for not-equality | `-user:sampleuser` |
| Query for values greater than another value | `stocks:>10`, `stocks:>=10` |
| Query for values less than another value | `stocks:<100`, `stocks:<=100` |
| Query for multiple conditions | `tag:JavaScript+created:>=2020-01-01` |
| Query for multiple conditions | `tag:JavaScript created:>=2020-01-01` |

### How to use it?

Expand All @@ -30,7 +30,7 @@ Parse a query string:
```js
var qiitable = require("qiitable");

var query = qiitable.Query('tag:Javascript+created:>=2020-01-01').parse();
var query = qiitable.Query('tag:Javascript created:>=2020-01-01').parse();
```

Filter and customize queries using `QueryBuilder`:
Expand All @@ -50,7 +50,7 @@ builder.field('created', {
builder.reject('email');

// Parse queries (return a Query object)
builder.parse('tag:JavaScript+stocks:>=10created:>=2020-01-01')
builder.parse('tag:JavaScript stocks:>=10 created:>=2020-01-01')
```

### Origin
Expand Down
2 changes: 1 addition & 1 deletion lib/engine.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
var _ = require('lodash');

var GROUP_DELIMITER = /(?:[^+"]+|"[^"]*")+/g;
var GROUP_DELIMITER = /(?:[^\s"]+|"[^"]*")+/g;
var FILTER_DELIMITER = ":";
var NOT_QUALIFIER = "-";
var INVERT = {
Expand Down
2 changes: 1 addition & 1 deletion lib/query.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Query.prototype.parse = function() {

this.allGroups = _.chain(engine.splitInGroup(that.querystring))
.map(function(group) {
return engine.parseGroup(group.trim(), that.opts);
return engine.parseGroup(group, that.opts);
})
.value();
this.groups = engine.filterFields(this.allGroups, this.opts)
Expand Down
58 changes: 4 additions & 54 deletions test/parse.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ describe('Query#parse', function() {
});

it('can parse multiple conditions', function() {
assertQuery('user:sampleuser+tag:JavaScript', [
assertQuery('user:sampleuser tag:JavaScript', [
{
field: 'user',
operator: '=',
Expand Down Expand Up @@ -110,7 +110,7 @@ describe('Query#parse', function() {
});

it('can parse - (not-qualifier)', function() {
assertQuery("-user:sampleuser+stocks:>10",[
assertQuery("-user:sampleuser stocks:>10",[
{
field: 'user',
operator: '!=',
Expand All @@ -128,19 +128,7 @@ describe('Query#parse', function() {
]);
});

it('single quotation marks are removed', function() {
assertQuery("'user':'sample user'", [
{
operator: '=',
field: 'user',
value: 'sample user',
originalField: 'user',
invalid: false
}
]);
});

it('double quotation marks are removed', function() {
it('quotation marks are removed', function() {
assertQuery('"user":"sample user"', [
{
operator: '=',
Expand All @@ -152,44 +140,6 @@ describe('Query#parse', function() {
]);
});

it('white spaces are trimed', function() {
assertQuery(" tag:JavaScript + stocks:>10 ",[
{
field: 'tag',
operator: '=',
value: 'JavaScript',
originalField: 'tag',
invalid: false
},
{
field: 'stocks',
operator: '>',
value: '10',
originalField: 'stocks',
invalid: false
}
]);
});

it('white spaces with quotation marks are not trimed', function() {
assertQuery("' tag':'JavaScript '+' stocks':'10 '",[
{
field: ' tag',
operator: '=',
value: 'JavaScript ',
originalField: ' tag',
invalid: false
},
{
field: ' stocks',
operator: '=',
value: '10 ',
originalField: ' stocks',
invalid: false
}
]);
});

it('invalid is true if :(filter delimiter) is not specified', function() {
assertQuery('usersampleuser',[
{
Expand Down Expand Up @@ -220,7 +170,7 @@ describe('Query#parse', function() {
});

it('can detect non-complete queries', function() {
var q = filterable.Query('user:sampleuser+invalid:test', { rejected: ['invalid'] }).parse();
var q = filterable.Query('user:sampleuser invalid:test', { rejected: ['invalid'] }).parse();
assert.equal(q.isComplete(), false);
});
});

0 comments on commit b989226

Please # to comment.