Skip to content

Commit

Permalink
Use ESLint with prettier (#28)
Browse files Browse the repository at this point in the history
fixes #22
  • Loading branch information
kibertoad authored Jan 17, 2018
1 parent 0a423a6 commit 03bd0cc
Show file tree
Hide file tree
Showing 12 changed files with 1,809 additions and 541 deletions.
9 changes: 9 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"parser": "babel-eslint",
"plugins": [
"prettier"
],
"rules": {
"prettier/prettier": "error"
}
}
6 changes: 6 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"printWidth": 100,
"singleQuote": true,
"bracketSpacing": true,
"semi": true
}
100 changes: 56 additions & 44 deletions lib/FindQueryBuilder.js
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,8 @@ class FindQueryBuilder {
*
* @type {Object.<string, function>}
* @private
*/
*/

this._filters = Object.create(null);

/**
Expand All @@ -150,7 +151,6 @@ class FindQueryBuilder {
*/
this._inverseSpecialParameterMap = Object.create(null);


/**
* Cache for `PropertyRef` objects.
*
Expand All @@ -165,16 +165,19 @@ class FindQueryBuilder {
});

// Give default names for the special parameters.
_.each({
eager: 'eager',
rangeEnd: 'rangeEnd',
rangeStart: 'rangeStart',
orderBy: 'orderBy',
orderByAsc: 'orderByAsc',
orderByDesc: 'orderByDesc'
}, (parameterName, name) => {
this.specialParameter(name, parameterName);
});
_.each(
{
eager: 'eager',
rangeEnd: 'rangeEnd',
rangeStart: 'rangeStart',
orderBy: 'orderBy',
orderByAsc: 'orderByAsc',
orderByDesc: 'orderByDesc'
},
(parameterName, name) => {
this.specialParameter(name, parameterName);
}
);
}

/**
Expand All @@ -183,7 +186,8 @@ class FindQueryBuilder {
* This is true by default.
*
* @returns {FindQueryBuilder}
*/
*/

allowAll() {
this._allowAll = true;
this._allow = [];
Expand Down Expand Up @@ -348,12 +352,12 @@ class FindQueryBuilder {
return builder;
}

_parseQueryParameters (params) {
_parseQueryParameters(params) {
const parsed = [];

_.each(params, (value, key) => {
if (_.isArray(value)) {
return _.each(value, (value) => {
return _.each(value, value => {
parsed.push(new QueryParameter(value, key, this));
});
} else {
Expand All @@ -363,8 +367,8 @@ class FindQueryBuilder {

// Check that we only have allowed property references in the query parameters.
if (!this._allowAll) {
_.each(parsed, (param) => {
_.each(param.propertyRefs, (ref) => {
_.each(parsed, param => {
_.each(param.propertyRefs, ref => {
if (!this._allow[ref.str]) {
utils.throwError('Property reference "' + ref.str + '" not allowed');
}
Expand All @@ -379,17 +383,17 @@ class FindQueryBuilder {
// Array of Objection `Relation` subclass instances.
const relationsToJoin = [];

_.each(params, function (param) {
_.each(param.propertyRefs, (ref) => {
_.each(params, function(param) {
_.each(param.propertyRefs, ref => {
const rel = ref.relation;
if (rel && rel.isOneToOne()) {
relationsToJoin.push(rel);
}
});
});

_.each(_.uniq(relationsToJoin, 'name'), function (relation) {
relation.join(builder, {joinOperation: 'leftJoin'});
_.each(_.uniq(relationsToJoin, 'name'), function(relation) {
relation.join(builder, { joinOperation: 'leftJoin' });
});

if (!_.isEmpty(relationsToJoin)) {
Expand All @@ -400,26 +404,26 @@ class FindQueryBuilder {
_buildFilters(params, builder) {
const filterParams = _.filter(params, 'filter');

_.each(filterParams, (param) => {
_.each(filterParams, param => {
this._buildFilter(param, builder);
});
}

/**
* @private
*/
_buildFilter (param, builder) {
_buildFilter(param, builder) {
const refNames = _.keys(param.propertyRefs);

if (refNames.length === 1) {
const ref = param.propertyRefs[refNames[0]];
ref.buildFilter(param, builder);
} else {
// If there are multiple property refs, they are combined with an `OR` operator.
builder.where(function () {
builder.where(function() {
var builder = this;

_.each(param.propertyRefs, function (ref) {
_.each(param.propertyRefs, function(ref) {
ref.buildFilter(param, builder, 'or');
});
});
Expand All @@ -429,11 +433,10 @@ class FindQueryBuilder {
/**
* @private
*/
_buildOrderBy (params, builder) {

_buildOrderBy(params, builder) {
const self = this;

_.each(params, (param) => {
_.each(params, param => {
const orderType = param.specialParameter;
let dir = 'asc';

Expand All @@ -447,7 +450,9 @@ class FindQueryBuilder {
const rel = propertyRef.relation;
if (rel) {
if (!rel.isOneToOne()) {
utils.throwError("Can only order by model's own properties and by BelongsToOneRelation relations' properties");
utils.throwError(
"Can only order by model's own properties and by BelongsToOneRelation relations' properties"
);
}
const columnNameAlias = rel.name + _.capitalize(propertyRef.propertyName);
builder.select(propertyRef.fullColumnName() + ' as ' + columnNameAlias);
Expand All @@ -459,9 +464,9 @@ class FindQueryBuilder {
});
}

_buildRange (params, builder) {
var rangeStart = _.find(params, {specialParameter: 'rangeStart'});
var rangeEnd = _.find(params, {specialParameter: 'rangeEnd'});
_buildRange(params, builder) {
var rangeStart = _.find(params, { specialParameter: 'rangeStart' });
var rangeEnd = _.find(params, { specialParameter: 'rangeEnd' });

if (rangeStart && rangeEnd) {
rangeStart = _.parseInt(rangeStart.value);
Expand All @@ -473,10 +478,10 @@ class FindQueryBuilder {

builder.range(rangeStart, rangeEnd);
}
};
}

_buildEager(params, builder) {
var eager = _.find(params, {specialParameter: 'eager'});
var eager = _.find(params, { specialParameter: 'eager' });

if (!eager) {
return;
Expand All @@ -487,26 +492,33 @@ class FindQueryBuilder {
}

builder.eager(eager.value);
};
}

_parsePropertyRefs (refs) {
return _.reduce(refs, (output, ref) => {
output[ref] = this._parsePropertyRef(ref);
return output;
}, {});
};
_parsePropertyRefs(refs) {
return _.reduce(
refs,
(output, ref) => {
output[ref] = this._parsePropertyRef(ref);
return output;
},
{}
);
}

_parsePropertyRef (ref) {
_parsePropertyRef(ref) {
if (!this._propertyRefCache[ref]) {
this._propertyRefCache[ref] = new PropertyRef(ref, this);
}

return this._propertyRefCache[ref];
};
}
}

function toArray() {
return _(arguments).flattenDeep().compact().value();
return _(arguments)
.flattenDeep()
.compact()
.value();
}

module.exports = FindQueryBuilder;
Loading

0 comments on commit 03bd0cc

Please sign in to comment.