Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Lodash for utility functions #541

Merged
merged 4 commits into from
Nov 19, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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