Skip to content

Commit

Permalink
feat: more work on the configs
Browse files Browse the repository at this point in the history
Signed-off-by: prisis <[email protected]>
  • Loading branch information
prisis committed Jan 6, 2025
1 parent 3a9b982 commit 1c758b6
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 30 deletions.
25 changes: 15 additions & 10 deletions packages/eslint-config/src/config/plugins/astro.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
import type { OptionsFiles, OptionsOverrides, OptionsStylistic, TypedFlatConfigItem } from "../../types";
import interopDefault from "../../utils/interop-default";
import type {
OptionsFiles,
OptionsOverrides,
OptionsStylistic,
TypedFlatConfigItem,
} from "../../types";
import { createConfig } from "../../utils/create-config";
import interopDefault from "../../utils/interop-default";

export default createConfig<OptionsOverrides & OptionsStylistic & OptionsFiles>("astro", async (config, oFiles): Promise<TypedFlatConfigItem[]> => {
export default createConfig<OptionsFiles & OptionsOverrides & OptionsStylistic>("astro", async (config, oFiles): Promise<TypedFlatConfigItem[]> => {
const { files = oFiles, overrides = {}, stylistic = true } = config;

const [pluginAstro, parserAstro, parserTs] = await Promise.all([
Expand Down Expand Up @@ -48,14 +53,14 @@ export default createConfig<OptionsOverrides & OptionsStylistic & OptionsFiles>(
"astro/semi": "off",
"astro/valid-compile": "error",

...(stylistic
...stylistic
? {
"@stylistic/indent": "off",
"@stylistic/jsx-closing-tag-location": "off",
"@stylistic/jsx-one-expression-per-line": "off",
"@stylistic/no-multiple-empty-lines": "off",
}
: {}),
"@stylistic/indent": "off",
"@stylistic/jsx-closing-tag-location": "off",
"@stylistic/jsx-one-expression-per-line": "off",
"@stylistic/no-multiple-empty-lines": "off",
}
: {},

...overrides,
},
Expand Down
6 changes: 4 additions & 2 deletions packages/eslint-config/src/config/plugins/formatters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@ const mergePrettierOptions = (options: VendoredPrettierOptions, overrides: Vendo
};
};

// eslint-disable-next-line sonarjs/cognitive-complexity
const formatters = async (options: OptionsFormatters, stylistic: StylisticConfig): Promise<TypedFlatConfigItem[]> => {
if (options.slidev && options.markdown !== true && options.markdown !== "prettier")
throw new Error("`slidev` option only works when `markdown` is enabled with `prettier`");
if (options.slidev && options.markdown !== true && options.markdown !== "prettier") {
throw new Error("`slidev` option only works when `markdown` is enabled with `prettier`");
}

const { indent, quotes, semi } = {
...StylisticConfigDefaults,
Expand Down
4 changes: 2 additions & 2 deletions packages/eslint-config/src/config/plugins/imports.ts
Original file line number Diff line number Diff line change
Expand Up @@ -373,14 +373,14 @@ export default createConfig<OptionsCwd & OptionsFiles & OptionsOverrides & Optio
},
settings: {
// Append 'ts' extensions to 'import/extensions' setting
"import/extensions": [...getFilesGlobs("js_and_ts"), ...getFilesGlobs("jsx_and_tsx")].map(ext => ext.replace("**/*", "")),
"import/extensions": [...getFilesGlobs("js_and_ts"), ...getFilesGlobs("jsx_and_tsx")].map(extension => extension.replace("**/*", "")),

// Resolve type definition packages
"import/external-module-folders": ["node_modules", "node_modules/@types"],

// Apply special parsing for TypeScript files
"import/parsers": {
"@typescript-eslint/parser": getFilesGlobs("ts").map(ext => ext.replace("**/*", "")),
"@typescript-eslint/parser": getFilesGlobs("ts").map(extension => extension.replace("**/*", "")),
},

...tsconfigPath
Expand Down
6 changes: 3 additions & 3 deletions packages/eslint-config/src/config/plugins/jsdoc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ export default createConfig<OptionsFiles & OptionsPackageJson & OptionsStylistic
const jsdocPlugin = await interopDefault(import("eslint-plugin-jsdoc"));

const hasTypescript = hasPackageJsonAnyDependency(packageJson, ["typescript"]);
const hasTsDocPlugin = hasPackageJsonAnyDependency(packageJson, ["eslint-plugin-tsdoc"]);
const hasTsDocumentPlugin = hasPackageJsonAnyDependency(packageJson, ["eslint-plugin-tsdoc"]);

if (hasTsDocPlugin) {
if (hasTsDocumentPlugin) {
console.info("\nFound eslint-plugin-tsdoc as dependency, disabling the jsdoc rules for *.ts and *.tsx files.");
}

Expand Down Expand Up @@ -40,7 +40,7 @@ export default createConfig<OptionsFiles & OptionsPackageJson & OptionsStylistic
},
];

if (hasTypescript && !hasTsDocPlugin) {
if (hasTypescript && !hasTsDocumentPlugin) {
rules.push({
files,
name: "anolilab/jsdoc/ts-rules",
Expand Down
8 changes: 4 additions & 4 deletions packages/eslint-config/src/config/plugins/markdown.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { mergeProcessors, processorPassThrough } from "eslint-merge-processors";

import type { OptionsComponentExts, OptionsFiles, OptionsOverrides } from "../../types";
import type { OptionsComponentExts as OptionsComponentExtensions, OptionsFiles, OptionsOverrides } from "../../types";
import { createConfig, getFilesGlobs } from "../../utils/create-config";
import interopDefault from "../../utils/interop-default";
import parserPlain from "../../utils/parser-plain";

export default createConfig<OptionsComponentExts & OptionsFiles & OptionsOverrides>("markdown", async (config, oFiles) => {
const { componentExts = [], files = oFiles, overrides } = config;
export default createConfig<OptionsComponentExtensions & OptionsFiles & OptionsOverrides>("markdown", async (config, oFiles) => {
const { componentExts: componentExtensions = [], files = oFiles, overrides } = config;

const markdown = await interopDefault(import("@eslint/markdown"));

Expand Down Expand Up @@ -37,7 +37,7 @@ export default createConfig<OptionsComponentExts & OptionsFiles & OptionsOverrid
},
},
{
files: ["**/*.md/**/*.?([cm])[jt]s?(x)", ...componentExts.map(ext => `**/*.md/**/*.${ext}`)],
files: ["**/*.md/**/*.?([cm])[jt]s?(x)", ...componentExtensions.map(extension => `**/*.md/**/*.${extension}`)],
languageOptions: {
parserOptions: {
ecmaFeatures: {
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-config/src/config/plugins/promise.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { fixupConfigRules, fixupPluginRules } from "@eslint/compat";
import { fixupPluginRules } from "@eslint/compat";

import type { OptionsFiles, OptionsOverrides } from "../../types";
import { createConfig } from "../../utils/create-config";
Expand Down
16 changes: 8 additions & 8 deletions packages/eslint-config/src/config/plugins/unocss.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,16 @@ const unocss = async (options: OptionsUnoCSS): Promise<TypedFlatConfigItem[]> =>
},
rules: {
"unocss/order": "warn",
...(attributify
...attributify
? {
"unocss/order-attributify": "warn",
}
: {}),
...(strict
"unocss/order-attributify": "warn",
}
: {},
...strict
? {
"unocss/blocklist": "error",
}
: {}),
"unocss/blocklist": "error",
}
: {},
},
},
];
Expand Down

0 comments on commit 1c758b6

Please sign in to comment.