Skip to content

Commit

Permalink
feat: add extend function helper (#793)
Browse files Browse the repository at this point in the history
  • Loading branch information
Hazmi35 authored Jan 26, 2024
1 parent 313e167 commit ffa6d82
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 6 deletions.
22 changes: 16 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,24 @@ export default [...common, ...modules, ...node, ...prettier];
<summary>Extending rules</summary>
<br>

```js
import { common, modules, node, stylistic, typescript } from "@hazmi35/eslint-config";
Extending rules using the extend function is recommended.

export default [...common, ...modules, ...node, ...stylistic, ...typescript, {
rules: {
"@typescript-eslint/no-unnecessary-condition": "off"
```js
import { common, extend, modules, node, stylistic, typescript } from "./index.js";

export default [...common, ...modules, ...node, ...stylistic, ...extend(typescript, [
{
rule: "@typescript-eslint/no-unnecessary-condition",
option: [
"warn",
{
allowConstantLoopConditions: false
}
]
// or
option: "off"
}
}];
])];
```
</details>

Expand Down
17 changes: 17 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,20 @@ export { default as node } from "./conf/node.js";
export { default as prettier } from "./conf/prettier.js";
export { default as stylistic } from "./conf/stylistic.js";
export { default as typescript } from "./conf/typescript.js";

/**
* @param {import("eslint").Linter.FlatConfig[]} config
* @param {{ rule: string, option: ["off" | "warn" | "error", object] }[]} rulesAndOptions
* @returns {import("eslint").Linter.FlatConfig[]}
* @example extend(config, [{ rule: "no-console", option: ["warn", { allow: ["warn", "error"] }] }])
*/
export function extend(config, rulesAndOptions) {
return config.map(c => {
if (c.rules) {
for (const { rule, option } of rulesAndOptions) {
c.rules[rule] = option;
}
}
return c;
});
}

0 comments on commit ffa6d82

Please sign in to comment.