Skip to content

Commit 54da9ca

Browse files
authored
Remove direct dependency on lodash (#2184)
1 parent ac51d40 commit 54da9ca

File tree

8 files changed

+1603
-8
lines changed

8 files changed

+1603
-8
lines changed

Diff for: package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
"lint:md": "markdownlint \"**/*.md\"",
2727
"lint:package-json": "npmPkgJsonLint .",
2828
"run-rules-on-codebase": "node ./test/run-rules-on-codebase/lint.mjs",
29+
"bundle-lodash": "echo \"export {defaultsDeep, camelCase, kebabCase, snakeCase, upperFirst, lowerFirst} from 'lodash-es';\" | npx esbuild --bundle --outfile=rules/utils/lodash.js --format=cjs",
2930
"smoke": "eslint-remote-tester --config ./test/smoke/eslint-remote-tester.config.js",
3031
"test": "npm-run-all --continue-on-error lint test:*",
3132
"test:js": "c8 ava"
@@ -54,7 +55,6 @@
5455
"indent-string": "^4.0.0",
5556
"is-builtin-module": "^3.2.1",
5657
"jsesc": "^3.0.2",
57-
"lodash": "^4.17.21",
5858
"pluralize": "^8.0.0",
5959
"read-pkg-up": "^7.0.1",
6060
"regexp-tree": "^0.1.27",
@@ -114,6 +114,7 @@
114114
"ignores": [
115115
".cache-eslint-remote-tester",
116116
"eslint-remote-tester-results",
117+
"rules/utils/lodash.js",
117118
"test/integration/{fixtures,fixtures-local}/**"
118119
],
119120
"rules": {

Diff for: rules/ast/is-method-call.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
'use strict';
2-
const {pick} = require('lodash');
32
const isMemberExpression = require('./is-member-expression.js');
43
const {isCallExpression} = require('./call-or-new-expression.js');
54

@@ -46,11 +45,16 @@ function isMethodCall(node, options) {
4645

4746
return (
4847
isCallExpression(node, {
49-
...pick(options, ['argumentsLength', 'minimumArguments', 'maximumArguments', 'allowSpreadElement']),
48+
argumentsLength: options.argumentsLength,
49+
minimumArguments: options.minimumArguments,
50+
maximumArguments: options.maximumArguments,
51+
allowSpreadElement: options.allowSpreadElement,
5052
optional: optionalCall,
5153
})
5254
&& isMemberExpression(node.callee, {
53-
...pick(options, ['object', 'objects', 'computed']),
55+
object: options.object,
56+
objects: options.objects,
57+
computed: options.computed,
5458
property: method,
5559
properties: methods,
5660
optional: optionalMember,

Diff for: rules/custom-error-definition.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
'use strict';
2-
const {upperFirst} = require('lodash');
2+
const {upperFirst} = require('./utils/lodash.js');
33

44
const MESSAGE_ID_INVALID_EXPORT = 'invalidExport';
55
const messages = {

Diff for: rules/filename-case.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
22
const path = require('node:path');
3-
const {camelCase, kebabCase, snakeCase, upperFirst} = require('lodash');
3+
const {camelCase, kebabCase, snakeCase, upperFirst} = require('./utils/lodash.js');
44
const cartesianProductSamples = require('./utils/cartesian-product-samples.js');
55

66
const MESSAGE_ID = 'filename-case';

Diff for: rules/import-style.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
'use strict';
2-
const {defaultsDeep} = require('lodash');
2+
const {defaultsDeep} = require('./utils/lodash.js');
33
const {getStringIfConstant} = require('@eslint-community/eslint-utils');
44
const {isCallExpression} = require('./ast/index.js');
55

Diff for: rules/prevent-abbreviations.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
'use strict';
22
const path = require('node:path');
3-
const {defaultsDeep, upperFirst, lowerFirst} = require('lodash');
3+
const {defaultsDeep, upperFirst, lowerFirst} = require('./utils/lodash.js');
44
const avoidCapture = require('./utils/avoid-capture.js');
55
const cartesianProductSamples = require('./utils/cartesian-product-samples.js');
66
const isShorthandPropertyValue = require('./utils/is-shorthand-property-value.js');

0 commit comments

Comments
 (0)