
Research
/Security News
Contagious Interview Campaign Escalates With 67 Malicious npm Packages and New Malware Loader
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.
@aarongoldenthal/eslint-config-standard
Advanced tools
Custom ESLint configuration for all projects. Includes flat-config formatted configurations compatible with ESLint v9+ for the following:
Plugin Name | Config name | Rule Prefix |
---|---|---|
eslint | base-configs | none, core |
@eslint-community/eslint-plugin-eslint-comments | eslint-comments-config | comments |
eslint-plugin-jest | jest-config | jest |
eslint-plugin-jsdoc | jsdoc-config | jsdoc |
eslint-plugin-n | node-config | node |
eslint-plugin-playwright | playwright-config | playwright |
eslint-plugin-promise | promise-config | promise |
eslint-plugin-unicorn | unicorn-configs , esm-config | unicorn |
eslint-plugin-vitest | vitest-config | vitest |
As flat configs, the package defines all required plugins/configurations as
dependencies
. Since flat config allows flexibility in the rule prefixes (that
is, they don't have to match the plugin name), the rules prefixes are adapted
in some cases to be more intuitive or readable. Since they may be combined, and
flat config doesn't allow nested arrays of rules, file names that are singular
export a single config object (for example jsdoc-config
), and file names
that are plural export an array of config objects (for example base-configs
).
The core
prefix has only one rule, core/complexity
, that has a higher threshold.
This provides a secondary check for cases where the lower threshold in the complexity
rule is disabled, which otherwise allows unbounded complexity. Since re-use of core
rules is an experimental capability, this must be enabled with environment variable
ENABLE_ESLINT_CORE_RULE_DUPLICATES=true
.
Most rule configurations are applicable to files matching '**/*.{js,mjs,cjs}'
. The
following configurations are exceptions and are applicable to files as noted:
base-configs
sets sourceType
to commonjs
for *.js
/*.cjs
files and
module
for *.mjs
files.base-configs
includes a config that disables some rules for test files
matching any of the following test patterns (for example max-lines
,
max-lines-per-function
).jest-config
applies rules to files matching
'**/__tests__/**/*.{js,mjs,cjs}'
or '**/?(*.)+(spec|test).{js,mjs,cjs}'
.vitest-config
applies rules to files matching
'**/__tests__/**/*.{js,mjs}'
or '**/?(*.)+(spec|test).{js,mjs}'
.playwright-config
: applies rules to files matching '**/*.pwtest.{js,mjs,cjs}'
,
which differentiates them from Jest/Vitest test files.unicorn-configs
includes a config that disables some rules for test files
(matching any of the following test patterns), and applies some ESM-specific
rules only applicable to *.mjs
files.With ESLint v9 the majority of formatting rules are deprecated and removed from
base-configs
, but the eslint-config-prettier
package is included and can be
added to the config if prettier
is also being used to ensure it takes priority
for formatting.
There is also an esm-config
included for projects using ES modules instead of
CommonJS modules. This config sets sourceType
to module
for *.js
files and
includes unicorn-config
ESM-specific rules.
This module is now pure ESM, so must be called from an ESM file, either
eslint.config.js
(if the project is ESM) or eslint.config.mjs
(if the
project is CJS).
There is a recommended
configuration for CJS with all plugin configurations
enabled except vitest-config
(it does include jest-config
, and applies
ESM-specific rules to *.mjs files
). To configure eslint.config.mjs
with
this configuration:
import { defineConfig, globalIgnores } from 'eslint/config';
import recommendedConfig from '@aarongoldenthal/eslint-config-standard/recommended';
export default defineConfig([
recommendedConfig,
globalIgnores(['.vscode/**', 'archive/**', 'node_modules/**', 'coverage/**'])
]);
Note the optional ignores
config that can be added last to ignore certain
directories.
There is also a recommended-esm
configuration that's the same as the
recommended
config, but includes the vitest-config
instead of the
jest-config
, and also the esm-config
(applicable to *.js
files).
It can be configured with:
import { defineConfig, globalIgnores } from 'eslint/config';
import recommendedConfig from '@aarongoldenthal/eslint-config-standard/recommended-esm';
export default defineConfig([
recommendedConfig,
globalIgnores(['.vscode/**', 'archive/**', 'node_modules/**', 'coverage/**'])
]);
To configure eslint.config.js
with individual plugins, see the
recommended
or
recommended-esm
configurations as examples.
Notes:
base-configs
should be included after other configurations,
except esm-config
and prettier
, so those settings take precedence.jest-config
and vitest-config
have the same file applicability, so
only one should be used.esm-config
should be configured after all functional rules
to ensure the overridden settings take precedence.prettier
config should be included last to take priority in
disabling the applicable rules from all other configurations.FAQs
Standard ESLint configuration settings
We found that @aarongoldenthal/eslint-config-standard 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
/Security News
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.