@halospv3/hce.shared-config
Version:
Automate commit message quality, changelogs, and CI/CD releases. Its `main` entry point is a Semantic Release config. Functions and classes are exposed for customization. An ESLint config, a Commitlint config, and addl. resources for .NET projects are als
98 lines (97 loc) • 2.16 kB
JavaScript
import eslint from "@eslint/js";
import { defineConfig, globalIgnores } from "eslint/config";
import "eslint";
import stylistic from "@stylistic/eslint-plugin";
import json from "@eslint/json";
import globals from "globals/globals.json" with { type: "json" };
import tseslint from "typescript-eslint";
//#region src/eslintConfig.ts
const globalIgnores$1 = globalIgnores([
"_tsout/**/*",
"_tsout/*",
"_tsout/",
"cjs/**/*",
"cjs/*/*",
"cjs/*",
"mjs/**/*",
"mjs/*",
"mjs/",
"node_modules/**/*",
"**/node_modules/**/*",
"**/*.tsbuildinfo",
"**/bin/**/*",
"**/obj/**/*",
".pnp.cjs",
".pnp.loader.mjs",
".yarn/sdks/**"
]);
const stylisticWarn = stylistic.configs.customize({
quoteProps: "as-needed",
semi: true,
indent: 2,
severity: "warn"
});
stylisticWarn.rules ??= {};
stylisticWarn.rules["@stylistic/no-extra-parens"] = [
"warn",
"all",
{
allowParensAfterCommentPattern: "@type|@satisfies",
nestedBinaryExpressions: false
}
];
stylisticWarn.rules["@stylistic/semi"] = [
"warn",
"always",
{
omitLastInOneLineBlock: false,
omitLastInOneLineClassBody: false
}
];
const config = defineConfig({
...json.configs.recommended,
name: "JSON Recommended",
files: ["**/*.json"],
ignores: ["**/.vscode/*.json"],
language: "json/json"
}, {
name: "JSON - Allow empty keys in package-lock.json",
files: ["**/package-lock.json"],
rules: { "json/no-empty-keys": "off" }
}, {
...json.configs.recommended,
name: "JSONC Recommended",
files: ["**/*.jsonc", "**/.vscode/*.json"],
language: "json/jsonc"
}, {
...json.configs.recommended,
name: "JSON5 Recommended",
files: ["**/*.json5"],
language: "json/json5"
}, {
name: "TSJS",
extends: [
eslint.configs.recommended,
...tseslint.configs.strictTypeChecked,
...tseslint.configs.stylisticTypeChecked,
stylisticWarn
],
files: [
"**/*.ts",
"**/*.cts",
"**/*.mts",
"**/*.js",
"**/*.cjs",
"**/*.mjs",
"**/*.jsx",
"**/*.tsx"
],
ignores: globalIgnores$1.ignores,
languageOptions: {
parserOptions: { projectService: true },
globals: globals.node
}
}, globalIgnores$1);
//#endregion
export { config as default };
//# sourceMappingURL=eslintConfig.mjs.map