
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
eslint-plugin-preferred-import
Advanced tools
This ESLint plugin replaces imports written with relative paths with alias paths from the tsconfig.json file, ensuring that the correct paths are used. Therefore, this plugin does not fix incorrect paths, but rather modifies the paths to use the appropriate aliases.
First, install ESLint:
npm i eslint --save-dev
Next, install eslint-plugin-preferred-import
:
npm i eslint-plugin-preferred-import --save-dev
ts-import
ruleHere is a suggested ESLint configuration for ESLint 9+:
// eslint.config.mjs
import eslint from '@eslint/js'
import tseslint from 'typescript-eslint'
import preferredImport from 'eslint-plugin-preferred-import'
export default tseslint.config(
eslint.configs.recommended,
tseslint.configs.recommendedTypeChecked,
{
files: ['**/*.{ts,tsx}'],
languageOptions: {
parserOptions: {
projectService: true, // Automatically finds the nearest tsconfig for each file
},
},
plugins: { 'preferred-import': preferredImport },
rules: {
'preferred-import/ts-imports': 'error',
},
},
{ ignores: ['**/node_modules/**','**/dist/**','**/.next/**','**/.turbo/**'] },
)
Here is a suggested ESLint configuration for ESLint 8 and below:
{
parser: '@typescript-eslint/parser', // Should be used ts-eslint parser
plugins: [..., 'preferred-import'], // Add 'preferred-import' next to old plugins
overrides: [
// Add rules into overrides
{
files: ['src/**/*.{ts,tsx}'],
parser: '@typescript-eslint/parser',
parserOptions: {
project: ['./tsconfig.json']
},
rules: {
'preferred-import/ts-imports': 'error'
}
}
],
}
The ts-imports rule checks for replaceable paths based on the basePath and paths fields in the tsconfig.json file, and it is auto-fixable.
js-imports
ruleHere is a suggested ESLint configuration:
const path = require('path')
module.exports = {
plugins: [..., 'preferred-import'], // Add 'preferred-import' next to old plugins
rules: {
// Add your rule config to the rules, resolveAlias should be same value with webpack alias
'preferred-import/js-imports': ['error', {
'resolveAlias': {
'utils': path.resolve(__dirname, 'src/utils'),
'reducer$': path.resolve(__dirname, 'src/reducer'),
}
}]
}
}
The js-imports rule checks for replaceable paths based on the configuration provided in the rules object, and it is auto-fixable.
ts-imports
: Checks for replaceable paths based on basePath
and paths
field in tsconfig.json, and is auto-fixable.
js-imports
: Checks for replaceable paths based on configuration provided in the rules object, and is auto-fixable.
BSD License
FAQs
Lint rule to autofix unpreferred imports
The npm package eslint-plugin-preferred-import receives a total of 110 weekly downloads. As such, eslint-plugin-preferred-import popularity was classified as not popular.
We found that eslint-plugin-preferred-import demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.