diff --git a/package.json b/package.json index faa2003..f4a22ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eslint-config-connorjs", - "version": "1.0.0-alpha.6", + "version": "1.0.0-alpha.7", "description": "My (@connorjs) preferred ESLint configuration. With ESLint flat config.", "keywords": [ "eslint", @@ -31,7 +31,7 @@ "eslint": "eslint -f pretty .", "eslint:fix": "npm run eslint -- --fix", "prepare": "is-ci || husky husky", - "prepublishOnly": "npm run release", + "prepublishOnly": "npm run ci-build", "prettier": "prettier -c '**/*.{cjs,js,json}'", "prettier:fix": "npm run prettier -- -w" }, diff --git a/src/javascript-and-typescript.js b/src/javascript-and-typescript.js index c053bdf..eed2e6b 100644 --- a/src/javascript-and-typescript.js +++ b/src/javascript-and-typescript.js @@ -11,9 +11,10 @@ const tsOnlyExtensions = `{cts,ts,tsx}`; // https://typescript-eslint.io/rules/member-ordering/#default-configuration const defaultMemberOrder = - tseslint.plugin.rules[`member-ordering`].defaultOptions[0].default; + tseslint.plugin.rules[`member-ordering`].defaultOptions[0].default + .memberTypes; -/** @type {import('@typescript-eslint/utils').TSESLint.FlatConfig.Config} */ +/** @type {import("eslint").Linter.FlatConfig} */ const tsLanguageOptions = { files: [`**/*.${tsOnlyExtensions}`], languageOptions: { @@ -96,8 +97,6 @@ export const javascriptAndTypescript = tseslint.config( "@typescript-eslint": tseslint.plugin, }, rules: { - ...tseslint.configs.recommendedTypeChecked, - ...tseslint.configs.stylisticTypeChecked, "@typescript-eslint/consistent-type-definitions": [`error`, `type`], // Prefer type! // Also see `sort-keys`. "@typescript-eslint/member-ordering": [ @@ -119,6 +118,8 @@ export const javascriptAndTypescript = tseslint.config( ], }, }, + ...restrictToTsExtensions(tseslint.configs.recommendedTypeChecked), + ...restrictToTsExtensions(tseslint.configs.stylisticTypeChecked), { // Dedicated import configuration files: [`**/*.${jsAndTsExtensions}`], @@ -189,3 +190,17 @@ export const javascriptAndTypescript = tseslint.config( }, }, ); + +/** + * Restrict `typescript-eslint` config to TS extensions. + * + * @param config {import("typescript-eslint").TSESLint.FlatConfig.ConfigArray} + * + * @returns {import("typescript-eslint").TSESLint.FlatConfig.ConfigArray} modified configs. + */ +function restrictToTsExtensions(config) { + return config.map((config) => ({ + files: [`**/*.${tsOnlyExtensions}`], + ...config, + })); +}