Skip to content

Commit

Permalink
🐛 Fix TypeScript
Browse files Browse the repository at this point in the history
Fixes TypeScript config following `typescript-eslint` upgrade.
  • Loading branch information
connorjs committed May 11, 2024
1 parent b260f5c commit cb81f55
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down Expand Up @@ -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"
},
Expand Down
23 changes: 19 additions & 4 deletions src/javascript-and-typescript.js
Original file line number Diff line number Diff line change
Expand Up @@ -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<import("@typescript-eslint/utils").ParserOptions>} */
const tsLanguageOptions = {
files: [`**/*.${tsOnlyExtensions}`],
languageOptions: {
Expand Down Expand Up @@ -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": [
Expand All @@ -119,6 +118,8 @@ export const javascriptAndTypescript = tseslint.config(
],
},
},
...restrictToTsExtensions(tseslint.configs.recommendedTypeChecked),
...restrictToTsExtensions(tseslint.configs.stylisticTypeChecked),
{
// Dedicated import configuration
files: [`**/*.${jsAndTsExtensions}`],
Expand Down Expand Up @@ -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,
}));
}

0 comments on commit cb81f55

Please sign in to comment.