Lodash Internal pickByCallback Module
The `lodash._pickbycallback` package provides a modularized export of Lodash's internal `pickByCallback` utility function. This package, currently at version 3.0.0, represents an older strategy for consuming individual Lodash functions as standalone CommonJS modules. It was designed to address bundle size concerns in environments where importing the entire Lodash library was undesirable. However, this approach is now considered legacy. The main `lodash` package is currently at v4.18.1 and offers more efficient modularization methods like `lodash-es` for ESM environments or direct per-method imports (e.g., `require('lodash/pickBy')`) that support modern tree-shaking bundlers. This specific sub-package has not received updates since its initial v3.0.0 release, meaning it lacks bug fixes and security patches applied to the main Lodash library in its v4.x releases.
Common errors
-
TypeError: pickByCallback is not a function
cause The `lodash._pickbycallback` package is a CommonJS module. This error often occurs when attempting to use ES module `import` syntax or incorrect destructuring (e.g., `import { pickByCallback } from '...'`) which results in `undefined`.fixEnsure you are using the CommonJS `require` syntax: `const pickByCallback = require('lodash._pickbycallback');`. -
SyntaxError: Cannot use import statement outside a module
cause You are trying to `import` this package in a CommonJS context (e.g., a `.js` file without `"type": "module"` in `package.json` or a `.cjs` file). This package is natively CommonJS.fixChange the import statement to a CommonJS `require` statement: `const pickByCallback = require('lodash._pickbycallback');`.
Warnings
- breaking This `lodash._pickbycallback` package is based on Lodash v3.x. The main Lodash library introduced significant breaking changes in v4.0.0, including changes to how `pick` and `pickBy` predicates receive arguments (initially not passing the key). Using this v3 package in a v4+ Lodash environment can lead to unexpected behavior or API mismatches.
- deprecated This 'per-method' package (`lodash._pickbycallback`) represents an outdated modularization strategy for Lodash. Its use is discouraged, and these packages are slated for removal in Lodash v5. Modern applications should prefer importing specific functions directly from the main `lodash` package or using `lodash-es` for better tree-shaking and maintainability.
- gotcha This package, being stuck at v3.0.0, does not include security patches or bug fixes released in later versions of the main Lodash library. For example, critical prototype pollution vulnerabilities fixed in `lodash@4.18.0` via `_.unset` and `_.omit` are not addressed in this package. Using outdated dependencies can expose your application to known security flaws.
Install
-
npm install lodash._pickbycallback -
yarn add lodash._pickbycallback -
pnpm add lodash._pickbycallback
Imports
- pickByCallback
var pickByCallback = require('lodash._pickbycallback'); - pickByCallback
import { pickByCallback } from 'lodash._pickbycallback';import pickByCallback from 'lodash._pickbycallback';
Quickstart
const pickByCallback = require('lodash._pickbycallback');
const users = {
'fred': { 'user': 'fred', 'active': false },
'barney': { 'user': 'barney', 'active': true },
'pebbles': { 'user': 'pebbles', 'active': false }
};
const activeUsers = pickByCallback(users, (value) => value.active);
console.log(activeUsers);
// Expected output: { barney: { user: 'barney', active: true } }
const numbers = {
'a': 1,
'b': 0,
'c': undefined
};
// Note: `pickByCallback` (equivalent to `_.pickBy`) by default treats 0, false, null, undefined as falsey and filters them.
const truthyNumbers = pickByCallback(numbers, (value) => !!value);
console.log(truthyNumbers);
// Expected output: { a: 1 }