@u3u/eslint-config
Version:
My ESLint config
170 lines (164 loc) • 5.15 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/base.ts
var base_exports = {};
__export(base_exports, {
default: () => base_default
});
module.exports = __toCommonJS(base_exports);
// src/rules/newline-blocks.ts
var blockLike = ["block-like", "multiline-expression"];
var returnLike = ["return", "throw", "break", "continue", "debugger"];
var singlelineVars = ["singleline-const", "singleline-let", "singleline-var"];
var multilineVars = ["multiline-const", "multiline-let", "multiline-var"];
var newlineBlocks = [
// newline-before-blocks
{ blankLine: "always", next: [...blockLike, ...returnLike], prev: "*" },
// newline-after-blocks
{ blankLine: "always", next: "*", prev: [...blockLike, ...multilineVars] },
// newline-after-directive
{ blankLine: "always", next: "*", prev: "directive" },
{ blankLine: "any", next: "directive", prev: "directive" },
// newline-after-import
{ blankLine: "always", next: "*", prev: "import" },
{ blankLine: "any", next: "import", prev: "import" },
// newline-after-var
{ blankLine: "always", next: "*", prev: singlelineVars },
{ blankLine: "any", next: singlelineVars, prev: singlelineVars }
];
// src/utils/define-config.ts
var defineConfig = (config) => {
return config;
};
// src/base.ts
var base_default = defineConfig({
extends: ["prettier", "plugin:arrow-return-style/recommended"],
ignorePatterns: [
//
".next",
"*.min.*",
"build",
"coverage",
"dist",
"out",
"output",
"public"
// 'temp',
],
parserOptions: {
ecmaFeatures: { jsx: true },
ecmaVersion: "latest",
sourceType: "module"
},
plugins: [
//
"ext",
"only-warn",
"perfectionist",
"prefer-arrow-functions",
"sort-class-members",
"sort-destructure-keys",
"sort-exports",
"sort-keys"
],
reportUnusedDisableDirectives: true,
rules: {
curly: ["warn", "multi-or-nest", "consistent"],
"dot-notation": ["warn", { allowKeywords: false }],
eqeqeq: "warn",
"ext/lines-between-object-properties": ["warn", "always", { exceptBetweenSingleLines: true }],
// 'lines-around-comment': ['warn', linesAroundComment],
"lines-between-class-members": "warn",
"no-else-return": "warn",
"no-lonely-if": "warn",
"no-unneeded-ternary": "warn",
"no-useless-computed-key": "warn",
"no-useless-rename": "warn",
"no-useless-return": "warn",
"no-var": "warn",
"object-shorthand": "warn",
"padding-line-between-statements": [
"warn",
...newlineBlocks,
{
blankLine: "always",
next: ["cjs-export"],
prev: "*"
}
],
"perfectionist/sort-array-includes": ["warn", { "spread-last": true }],
"perfectionist/sort-classes": [
"warn",
{
groups: [
"static-property",
"private-property",
"property",
"constructor",
"static-method",
"private-method",
"method",
"unknown"
]
}
],
"perfectionist/sort-maps": "warn",
"prefer-arrow-callback": "warn",
"prefer-arrow-functions/prefer-arrow-functions": "warn",
"prefer-const": ["warn", { destructuring: "all", ignoreReadBeforeAssign: true }],
"prefer-exponentiation-operator": "warn",
"prefer-object-has-own": "warn",
"prefer-object-spread": "warn",
"prefer-template": "warn",
quotes: ["warn", "single", { avoidEscape: true }],
// 'sort-class-members/sort-class-members': [
// 'warn',
// {
// accessorPairPositioning: 'getThenSet',
// order: [
// '[static-properties]',
// '[static-methods]',
// '[properties]',
// '[conventional-private-properties]',
// 'constructor',
// '[methods]',
// '[conventional-private-methods]',
// ],
// },
// ],
"sort-destructure-keys/sort-destructure-keys": "warn",
"sort-exports/sort-exports": ["warn", { sortExportKindFirst: "type" }],
"sort-keys/sort-keys-fix": "warn",
"spaced-comment": [
"warn",
"always",
{
block: { balanced: true },
markers: ["/"]
}
],
yoda: "warn"
}
});
// fix-cjs-exports
if (module.exports.default) {
Object.assign(module.exports.default, module.exports);
module.exports = module.exports.default;
delete module.exports.default;
}
;