
Research
/Security News
9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.
@arcticicestudio/eslint-config-base
Advanced tools
The Arctic Ice Studio JavaScript Style Guide base rules as an extensible shared ESLint configuration
The Arctic Ice Studio JavaScript Style Guide base rules as an extensible shared ESLint configuration.
This package implements the base rules of the Arctic Ice Studio JavaScript style guide as an extensible ESLint configuration with plugin support for Prettier.
To enable support for React and JSX A11Y plugin rules as well as compatibility integrations for other projects like Prettier, use the shareable rule configuration package @arcticicestudio/eslint-config.
Note that this package uses npm version 7.7.0 or higher as the main package manager, but the documentations also include instructions to work with Yarn (classic / v1).
Add the package as development dependency to your project:
# With npm...
npm install --save-dev @arcticicestudio/eslint-config-base
# or Yarn.
yarn add --dev @arcticicestudio/eslint-config-base
Note that peer dependencies, like the remark-lint package itself, are only installed automatically when using a npm version equal or higher than 7.0.0, otherwise they must be installed separately like described in the peer dependencies section below.
See the Node distribution index for more information about which npm version is bundled with which Node version.
Next to all base ESLint rules, the default export also contains rules related to ECMAScript 6+ including the import and export features as well as compatibility integrations for other projects like Prettier.
Therefore this package depends on the eslint-plugin-import, eslint-plugin-prettier, prettier and eslint packages that are defined as peer dependencies.
>=7.0.0As of npm version 7.0.0, peer dependencies are installed automatically and does not require any additional steps.
>=5.0.0 <7.0.0For npm version equal to or higher than 5.0.0 (pre-bundled with Node.js 8) but less than 7.0.0, all peer dependencies can be auto-installed using the pre-bundled npx package:
npx install-peerdeps --dev @arcticicestudio/eslint-config-base
<5.0.0If you’re using a npm version less than 5.0.0, the npx package is not pre-bundled, but users can either simply install the npx package globally to run the above command or use the install-peerdeps helper package locally/globally to let it handle the installation of all peer dependencies:
# Install and use the "install-peerdeps" helper package locally...
npm install install-peerdeps
./node_modules/.bin/install-peerdeps --dev @arcticicestudio/eslint-config-base
# ...or globally.
npm install --global install-peerdeps
install-peerdeps --dev @arcticicestudio/eslint-config-base
To install all peer dependencies manually without npx or any helper package, the npm info command can be used to get a list of all packages and their versions:
# List the names and versions of all peer dependencies...
npm info "@arcticicestudio/eslint-config-base" peerDependencies
# ...and install each listed package manually.
npm install PACKAGE@VERSION
If you’re not using npm but Yarn, peer dependencies can be installed by either adding them manually or using the install-peerdeps helper package:
# Either add all packages manually by listing all required names and their versions and install them manually...
yarn info @arcticicestudio/eslint-config-base peerDependencies
yarn add --dev remark-lint #...
# ...or use the "install-peerdeps" helper package.
yarn add --dev install-peerdeps
yarn run install-peerdeps --dev @arcticicestudio/eslint-config-base
This package provides a shareable configuration preset that can be used by extending the ESLint configuration file. Add @arcticicestudio/eslint-config-base and/or any of the additional entry points to the extends array in your .eslintrc configuration file:
module.exports = {
extends: [
/* Provides support for all ESLint core rules. */
"@arcticicestudio/eslint-config-base",
/*
* Optional entry point to enable support for projects using Prettier.
* Note that this must always be placed after the `@arcticicestudio/eslint-config-base` preset to take precedence,
* otherwise it won't prevent errors due to useless and possibly conflicting rules!
*/
"@arcticicestudio/eslint-config-base/prettier",
],
};
This package provides multiple entry points that can be composed especially for the projects they are used in:
@arcticicestudio/eslint-config-base — The default entry point that support for all ESLint core rules.@arcticicestudio/eslint-config-base/prettier — Entry point to enable support for Prettier through eslint-plugin-prettier and the officially recommended Prettier ESLint configuration eslint-config-prettier. It disables possibly conflicting rules and rules that definitely not needed when using Prettier for code formatting. There is also additional support when Prettier is used for React based projects by extending the special prettier/react configuration that also disables specific react/ and JSX rules. See the @arcticicestudio/eslint-config package to use React specific rules. Note that this configuration should always be placed after @arcticicestudio/eslint-config-base in order to override conflicting rules, otherwise the @arcticicestudio/eslint-config-base preset will take precedence leaving conflicting rules untouched!Please read the contribution guidelines of the Arctic Ice Studio JavaScript style guide project for detailed information.
Copyright © 2018-present Arctic Ice Studio and Sven Greb
0.11.0
⇅ [Show all commits][237]
↠ To run async code in a React [useEffect Hook][242] the [official React Hook FAQ section about how to fetch data][241] recommends and [shows in a demo][234] how to define a scoped fat arrow function and run it immediately. Unfortunately this collided with the [@typescript/no-floating-promises][238] rule because the returned Promise of the called function must not be handled anymore.
useEffect(() => {
const init = async () => {
try {
const data = await fetchData();
setInitialized(isInit);
if (data) initStores(data);
} catch (err) {
handleError(err);
}
};
// This will trigger the "@typescript/no-floating-promises" rule because the returned "Promise" is not handled.
init();
}, [fetchData, handleError, initStores, setInitialized]);
Explicitly disabling the rule for these specific code lines would have been an option, but it is recommended to [use the void operator instead][240].
// ...
// This will trigger the "no-void" rule because the "void" operator is currently not allowed as a statement.
void init();
// ...
However, the [no-void][235] rule did not allow the void operator to be used as statement which resulted in this rule to also throw an error.
To resolve both problems, the [allowAsStatement option][236] of the no-void rule has been enabled.
Also see [typescript-eslint/typescript-eslint#1184][239] where this solution is also recommended by one of the @typescript-eslint package maintainers.
FAQs
The Arctic Ice Studio JavaScript Style Guide base rules as an extensible shared ESLint configuration
The npm package @arcticicestudio/eslint-config-base receives a total of 1 weekly downloads. As such, @arcticicestudio/eslint-config-base popularity was classified as not popular.
We found that @arcticicestudio/eslint-config-base demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers 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
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.