Skip to content

Commit 0058f89

Browse files
authored
Merge pull request #448 from lynchem/master
add eslint, custom search & fix mem leak
2 parents 35bbec0 + 53d5ba1 commit 0058f89

11 files changed

+4796
-213
lines changed

.eslintrc.json

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"env": {
3+
"browser": true,
4+
"es6": true,
5+
"node": true,
6+
"jquery": true
7+
},
8+
"parser": "@babel/eslint-parser",
9+
"parserOptions": {
10+
"requireConfigFile": false,
11+
"ecmaVersion": 2020,
12+
"ecmaFeatures": {
13+
"jsx": true
14+
},
15+
"sourceType": "module",
16+
"allowImportExportEverywhere": true
17+
},
18+
"extends": [
19+
"eslint:recommended",
20+
"plugin:prettier/recommended"
21+
],
22+
"plugins": [
23+
"prettier"
24+
],
25+
"rules": {
26+
"prettier/prettier": [
27+
"error",
28+
{
29+
"tabWidth": 2,
30+
"printWidth": 100,
31+
"trailingComma": "none",
32+
"singleQuote": true
33+
}
34+
],
35+
"space-before-function-paren:": 0
36+
}
37+
}

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.DS_Store
22
.build*
3-
.idea
3+
.idea
4+
node_modules

client/getPubSelector.js

+18-21
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
import { _ } from 'meteor/underscore';
22

33
function getPubSelector(
4-
selector,
5-
searchString,
6-
searchFields,
7-
searchCaseInsensitive,
8-
splitSearchByWhitespace,
9-
columns,
10-
tableColumns,
11-
) {
12-
4+
selector,
5+
searchString,
6+
searchFields,
7+
searchCaseInsensitive,
8+
splitSearchByWhitespace,
9+
columns,
10+
tableColumns
11+
) {
1312
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1413
// if search was invoked via .columns().search(), build a query off that
1514
// https://datatables.net/reference/api/columns().search()
1615
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17-
let searchColumns = _.filter(columns, column => {
16+
let searchColumns = _.filter(columns, (column) => {
1817
return column.search && column.search.value !== '';
1918
});
2019

@@ -26,12 +25,12 @@ function getPubSelector(
2625
if (searchColumns.length === 0) {
2726
// normalize search fields array to mirror the structure
2827
// as passed by the datatables ajax.data function
29-
searchColumns = _.map(searchFields, field => {
28+
searchColumns = _.map(searchFields, (field) => {
3029
return {
3130
data: field,
3231
search: {
33-
value: searchString
34-
}
32+
value: searchString,
33+
},
3534
};
3635
});
3736
}
@@ -43,7 +42,7 @@ function getPubSelector(
4342
searchCaseInsensitive,
4443
splitSearchByWhitespace,
4544
columns,
46-
tableColumns,
45+
tableColumns
4746
);
4847
}
4948

@@ -54,14 +53,14 @@ function createMongoSearchQuery(
5453
searchCaseInsensitive,
5554
splitSearchByWhitespace,
5655
columns,
57-
tableColumns,
56+
tableColumns
5857
) {
5958
// See if we can resolve the search string to a number,
6059
// in which case we use an extra query because $regex
6160
// matches string fields only.
6261
const searches = [];
6362

64-
_.each(searchColumns, field => {
63+
_.each(searchColumns, (field) => {
6564
// Get the column options from the Tabular.Table so we can check search options
6665
const column = _.findWhere(tableColumns, { data: field.data });
6766
const exactSearch = column && column.search && column.search.exact;
@@ -76,9 +75,7 @@ function createMongoSearchQuery(
7675
searchValue = [searchValue];
7776
}
7877

79-
_.each(searchValue, searchTerm => {
80-
const m1 = {};
81-
78+
_.each(searchValue, (searchTerm) => {
8279
// String search
8380
if (exactSearch) {
8481
if (numberSearch) {
@@ -111,9 +108,9 @@ function createMongoSearchQuery(
111108

112109
let result;
113110
if (typeof selector === 'object' && selector !== null) {
114-
result = {$and: [selector, {$or: searches}]};
111+
result = { $and: [selector, { $or: searches }] };
115112
} else if (searches.length > 1) {
116-
result = {$or: searches};
113+
result = { $or: searches };
117114
} else {
118115
result = searches[0] || {};
119116
}

0 commit comments

Comments
 (0)