Skip to content

Commit

Permalink
Use Lodash for utility functions (#541)
Browse files Browse the repository at this point in the history
  • Loading branch information
daffl authored Nov 19, 2019
1 parent e5e417b commit 47fc9d5
Show file tree
Hide file tree
Showing 27 changed files with 62 additions and 412 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ sudo: false
language: node_js
node_js:
- 'node'
- '8'
- 12
36 changes: 0 additions & 36 deletions TODO.md

This file was deleted.

26 changes: 4 additions & 22 deletions lib/common/_pluck.js
Original file line number Diff line number Diff line change
@@ -1,30 +1,12 @@

const getByDot = require('./get-by-dot');
const setByDot = require('./set-by-dot');
const pick = require('lodash/pick');

module.exports = function (items, fieldNames) {
if (!Array.isArray(items)) {
return _pluckItem(items, fieldNames);
return pick(items, fieldNames);
}

const pluckedItems = [];

(Array.isArray(items) ? items : [items]).forEach(item => {
pluckedItems.push(_pluckItem(item, fieldNames));
});
const pluckedItems = (Array.isArray(items) ? items : [items])
.map(item => pick(item, fieldNames));

return pluckedItems;
};

function _pluckItem (item, fieldNames) {
const plucked = {};

fieldNames.forEach(fieldName => {
const value = fieldName in item ? item[fieldName] : getByDot(item, fieldName);
if (value !== undefined) { // prevent setByDot creating nested empty objects
if (fieldName in item) { plucked[fieldName] = value; } else { setByDot(plucked, fieldName, value); }
}
});

return plucked;
}
3 changes: 1 addition & 2 deletions lib/common/_set-fields.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

const setByDot = require('./set-by-dot');
const setByDot = require('lodash/set');

module.exports = function (items /* modified */, fieldValue, fieldNames, defaultFieldName) {
const value = typeof fieldValue === 'function' ? fieldValue() : fieldValue;
Expand Down
2 changes: 1 addition & 1 deletion lib/common/_transform-items.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

const getByDot = require('./get-by-dot');
const getByDot = require('lodash/get');

module.exports = function (items /* modified */, fieldNames, transformer) {
(Array.isArray(items) ? items : [items]).forEach(item => {
Expand Down
19 changes: 0 additions & 19 deletions lib/common/exists-by-dot.js

This file was deleted.

13 changes: 0 additions & 13 deletions lib/common/get-by-dot.js

This file was deleted.

37 changes: 0 additions & 37 deletions lib/common/set-by-dot.js

This file was deleted.

4 changes: 2 additions & 2 deletions lib/services/calling-params.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

const getByDot = require('../common/get-by-dot');
const setByDot = require('../common/set-by-dot');
const getByDot = require('lodash/get');
const setByDot = require('lodash/set');

const stndAuthProps = ['provider', 'authenticated', 'user']; // feathers-authentication
// App wide defaults
Expand Down
8 changes: 1 addition & 7 deletions lib/services/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,11 @@ const debug = require('./debug');
const deleteByDot = require('../common/delete-by-dot');
const dePopulate = require('./de-populate');
const disablePagination = require('./disable-pagination');
const disallow = require('./disallow');
const discard = require('./discard');
const disallow = require('./disallow');
const discardQuery = require('./discard-query');
const existsByDot = require('../common/exists-by-dot');
const fastJoin = require('./fast-join');
const fgraphql = require('./fgraphql');
const getByDot = require('../common/get-by-dot');
const getItems = require('./get-items');
const isProvider = require('./is-provider');
const keep = require('./keep');
Expand All @@ -36,7 +34,6 @@ const runHook = require('./run-hook');
const runParallel = require('./run-parallel');
const sequelizeConvert = require('./sequelize-convert');
const serialize = require('./serialize');
const setByDot = require('../common/set-by-dot');
const setNow = require('./set-now');
const setSlug = require('./set-slug');
const sifter = require('./sifter');
Expand Down Expand Up @@ -68,10 +65,8 @@ module.exports = Object.assign({
disallow,
discard,
discardQuery,
existsByDot,
fastJoin,
fgraphql,
getByDot,
getItems,
isProvider,
keep,
Expand All @@ -91,7 +86,6 @@ module.exports = Object.assign({
runParallel,
sequelizeConvert,
serialize,
setByDot,
setNow,
setSlug,
sifter,
Expand Down
7 changes: 4 additions & 3 deletions lib/services/keep-in-array.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
const errors = require('@feathersjs/errors');
const getByDot = require('lodash/get');
const setByDot = require('lodash/set');
const existsByDot = require('lodash/has');

const getItems = require('./get-items');
const existsByDot = require('../common/exists-by-dot');
const getByDot = require('../common/get-by-dot');
const setByDot = require('../common/set-by-dot');

module.exports = function (field, fieldNames) {
return context => {
Expand Down
6 changes: 3 additions & 3 deletions lib/services/keep-query-in-array.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
const checkContext = require('./check-context');
const errors = require('@feathersjs/errors');
const existsByDot = require('../common/exists-by-dot');
const getByDot = require('../common/get-by-dot');
const setByDot = require('../common/set-by-dot');
const getByDot = require('lodash/get');
const setByDot = require('lodash/set');
const existsByDot = require('lodash/has');

module.exports = function (field, fieldNames) {
return context => {
Expand Down
7 changes: 4 additions & 3 deletions lib/services/keep.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
const getByDot = require('lodash/get');
const setByDot = require('lodash/set');
const existsByDot = require('lodash/has');

const checkContextIf = require('./check-context-if');
const getItems = require('./get-items');
const replaceItems = require('./replace-items');
const existsByDot = require('../common/exists-by-dot');
const getByDot = require('../common/get-by-dot');
const setByDot = require('../common/set-by-dot');

module.exports = function (...fieldNames) {
return context => {
Expand Down
4 changes: 2 additions & 2 deletions lib/services/lower-case.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@

const setByDot = require('lodash/set');
const errors = require('@feathersjs/errors');

const _transformItems = require('../common/_transform-items');
const checkContextIf = require('./check-context-if');
const getItems = require('./get-items');
const setByDot = require('../common/set-by-dot');

module.exports = function (...fieldNames) {
return context => {
Expand Down
6 changes: 3 additions & 3 deletions lib/services/populate.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

const getByDot = require('lodash/get');
const setByDot = require('lodash/set');
const errors = require('@feathersjs/errors');
const getByDot = require('../common/get-by-dot');
const setByDot = require('../common/set-by-dot');

const getItems = require('./get-items');
const replaceItems = require('./replace-items');

Expand Down
2 changes: 1 addition & 1 deletion lib/services/prevent-changes.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const existsByDot = require('lodash/has');

const existsByDot = require('../common/exists-by-dot');
const deleteByDot = require('../common/delete-by-dot');
const checkContext = require('./check-context');
const errors = require('@feathersjs/errors');
Expand Down
6 changes: 3 additions & 3 deletions lib/services/required.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@

const getByDot = require('lodash/get');
const errors = require('@feathersjs/errors');
const existsByDot = require('lodash/has');

const checkContext = require('./check-context');
const getItems = require('./get-items');
const getByDot = require('../common/get-by-dot');
const existsByDot = require('../common/exists-by-dot');

module.exports = function (...fieldNames) {
return context => {
Expand Down
4 changes: 2 additions & 2 deletions lib/services/serialize.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
const getByDot = require('lodash/get');
const setByDot = require('lodash/set');

const getByDot = require('../common/get-by-dot');
const getItems = require('./get-items');
const replaceItems = require('./replace-items');
const setByDot = require('../common/set-by-dot');
const deleteByDot = require('../common/delete-by-dot');

module.exports = function (schema1) {
Expand Down
3 changes: 1 addition & 2 deletions lib/services/set-slug.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@

const setByDot = require('lodash/set');
const errors = require('@feathersjs/errors');
const setByDot = require('../common/set-by-dot');

module.exports = function (slug, field) {
return context => {
Expand Down
Loading

0 comments on commit 47fc9d5

Please sign in to comment.