From 562473a718cad8bb002cd19de9d690791e5d9a40 Mon Sep 17 00:00:00 2001 From: Labhansh Agrawal Date: Sun, 23 Jul 2023 22:35:14 +0530 Subject: [PATCH] cleanup lodash usage --- .eslintrc.json | 14 +++++++------- app/config/init.ts | 4 ++-- app/config/migrate.ts | 4 ++-- lib/components/split-pane.tsx | 4 ++-- lib/components/term.tsx | 3 ++- package.json | 2 ++ yarn.lock | 9 ++++++++- 7 files changed, 25 insertions(+), 15 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 0f9dec0d..5659f1e4 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -3,7 +3,8 @@ "react", "prettier", "@typescript-eslint", - "eslint-comments" + "eslint-comments", + "lodash" ], "extends": [ "eslint:recommended", @@ -93,12 +94,11 @@ "@typescript-eslint/no-unsafe-assignment": "off", "@typescript-eslint/no-unsafe-member-access": "off", "@typescript-eslint/restrict-template-expressions": "off", - "@typescript-eslint/consistent-type-imports": [ - "error", - { - "disallowTypeAnnotations": false - } - ] + "@typescript-eslint/consistent-type-imports": [ "error", { "disallowTypeAnnotations": false } ], + "lodash/prop-shorthand": [ "error", "always" ], + "lodash/import-scope": [ "error", "method" ], + "lodash/collection-return": "error", + "lodash/collection-method-value": "error" } }, { diff --git a/app/config/init.ts b/app/config/init.ts index 00a58bbd..33d4e3e6 100644 --- a/app/config/init.ts +++ b/app/config/init.ts @@ -2,7 +2,7 @@ import vm from 'vm'; import notify from '../notify'; import mapKeys from '../utils/map-keys'; import type {parsedConfig, rawConfig, configOptions} from '../../lib/config'; -import _ from 'lodash'; +import merge from 'lodash/merge'; const _extract = (script?: vm.Script): Record => { const module: Record = {}; @@ -44,7 +44,7 @@ const _init = (userCfg: rawConfig, defaultCfg: rawConfig): parsedConfig => { if (!conf.profiles.map((p) => p.name).includes(conf.defaultProfile)) { conf.defaultProfile = conf.profiles[0].name; } - return _.merge({}, defaultCfg.config, conf); + return merge({}, defaultCfg.config, conf); } else { notify('Error reading configuration: `config` key is missing'); return defaultCfg.config || ({} as configOptions); diff --git a/app/config/migrate.ts b/app/config/migrate.ts index b74a2603..a56b0796 100644 --- a/app/config/migrate.ts +++ b/app/config/migrate.ts @@ -3,7 +3,7 @@ import {builders, namedTypes} from 'ast-types'; import * as babelParser from 'recast/parsers/babel'; import {copy, copySync, existsSync, readFileSync, writeFileSync} from 'fs-extra'; import {dirname, resolve} from 'path'; -import _ from 'lodash'; +import merge from 'lodash/merge'; import notify from '../notify'; import {_extractDefault} from './init'; @@ -166,7 +166,7 @@ export const migrateHyper3Config = () => { try { const legacyCfgRaw = readFileSync(legacyCfgPath, 'utf8'); const legacyCfgData = _extractDefault(legacyCfgRaw); - newCfgData = _.merge({}, defaultCfgData, legacyCfgData); + newCfgData = merge({}, defaultCfgData, legacyCfgData); const pluginCode = configToPlugin(legacyCfgRaw); if (pluginCode) { diff --git a/lib/components/split-pane.tsx b/lib/components/split-pane.tsx index 6efb9bd8..0b979755 100644 --- a/lib/components/split-pane.tsx +++ b/lib/components/split-pane.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import _ from 'lodash'; +import sum from 'lodash/sum'; import type {SplitPaneProps} from '../hyper'; export default class SplitPane extends React.PureComponent { @@ -40,7 +40,7 @@ export default class SplitPane extends React.PureComponent