Repository: typescript-eslint/tslint-to-eslint-config (ts)

Issue:
--comments throws EISDir when a directory is specified in TSConfig include
### 🐛 Bug Report

-   `tslint-to-eslint-config` version: 2.14.0
-   ESLint version: n/a
-   Node version: v20.2.0 (n/a)

#### Actual Behavior

```plaintext
$ npx tslint-to-eslint-config --comments

✨ 1 rule replaced with its ESLint equivalent. ✨

❗ 1 ESLint rule behaves differently from its TSLint counterpart ❗
  Check ./tslint-to-eslint-config.log for details.

⚡ 5 new packages are required for this ESLint configuration. ⚡
  npm install @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint eslint-config-prettier eslint-plugin-prefer-arrow --save-dev
❌ 1 error running tslint-to-eslint: ❌
  Error: EISDIR: illegal operation on a directory, read
```

#### Expected Behavior

Shouldn't crash.

#### Reproduction

```shell
mkdir cool
touch cool/index.ts
```

```jsonc
// tsconfig.json
{
  "include": ["cool"]
}
```

As reported by @hyperupcall in #1717.

Pull request:
fix: Do not show Errors from reading directories
<!--
👋 Hi, thanks for sending a PR to tslint-to-eslint-config! 💖
Please fill out all fields below to ensure your PR is reviewed quickly.
-->

## PR Checklist

-   [x] Addresses an existing issue: fixes #1720
-   [x] That issue was marked as [`status: accepting prs`](https://github.com/typescript-eslint/tslint-to-eslint-config/labels/status%3A%20accepting%20prs)

## Overview

If a `tsconfig.json` contains something like the following:

```ts
{
    "include": ["cool"]
}
```

Then, an error shows up, for example, when using `--comments`:

```text
✨ 143 rules replaced with their ESLint equivalents. ✨

⚡ 1 new package is required for this ESLint configuration. ⚡
  npm install eslint-config-prettier --save-dev
❌ 1 error running tslint-to-eslint: ❌
  Error: EISDIR: illegal operation on a directory, read
```

According to the [TypeScript docs](https://www.typescriptlang.org/tsconfig#include), a directory entry for `include` is valid:

> If the last path segment in a pattern does not contain a file extension or wildcard charater, then it is treated as a directory, and files with supported extensions inside that directory are included (e.g. .ts, .tsx, and .d.ts by default, with .js and .jsx if [allowJs](https://www.typescriptlang.org/tsconfig#allowJs) is set to true).

This fixes that case.

Patch:
diff --git a/README.md b/README.md
index 60105b1..46de4ce 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@ Consider taking a peek at the relevant documentation: 🤔
 
 ## Usage
 
-> ⚠ Coming from Angular? Use **[angular-eslint](https://github.com/angular-eslint/angular-eslint#migrating-an-angular-cli-project-from-codelyzer-and-tslint)** instead to coordinate around this tool and others.
+> ⚠ Coming from Angular? Use **[angular-eslint](https://github.com/angular-eslint/angular-eslint/blob/main/docs/MIGRATING_FROM_TSLINT.md)** instead to coordinate around this tool and others.
 
 ```shell
 npx tslint-to-eslint-config
diff --git a/package-lock.json b/package-lock.json
index 1855982..3e67c3d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -24,19 +24,19 @@
                 "tslint-to-eslint-config": "bin/tslint-to-eslint-config"
             },
             "devDependencies": {
-                "@swc/core": "1.3.90",
+                "@swc/core": "1.3.92",
                 "@swc/jest": "0.2.29",
                 "@types/eslint-config-prettier": "6.11.1",
                 "@types/glob": "8.1.0",
                 "@types/json5": "0.0.30",
                 "@types/lodash": "4.14.199",
                 "@types/minimatch": "5.1.2",
-                "@types/node": "18.18.1",
+                "@types/node": "18.18.4",
                 "@typescript-eslint/eslint-plugin": "5.53.0",
                 "@typescript-eslint/parser": "5.53.0",
                 "ansi-regex": "6.0.1",
                 "cross-env": "7.0.3",
-                "eslint": "8.50.0",
+                "eslint": "8.51.0",
                 "eslint-plugin-simple-import-sort": "10.0.0",
                 "husky": "8.0.3",
                 "jest": "27.5.1",
@@ -687,9 +687,9 @@
             }
         },
         "node_modules/@eslint/js": {
-            "version": "8.50.0",
-            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz",
-            "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==",
+            "version": "8.51.0",
+            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz",
+            "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==",
             "engines": {
                 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
             }
@@ -1321,9 +1321,9 @@
             }
         },
         "node_modules/@swc/core": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.90.tgz",
-            "integrity": "sha512-wptBxP4PldOnhmyDVj8qUcn++GRqyw1qc9wOTGtPNHz8cpuTfdfIgYGlhI4La0UYqecuaaIfLfokyuNePOMHPg==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.92.tgz",
+            "integrity": "sha512-vx0vUrf4YTEw59njOJ46Ha5i0cZTMYdRHQ7KXU29efN1MxcmJH2RajWLPlvQarOP1ab9iv9cApD7SMchDyx2vA==",
             "dev": true,
             "hasInstallScript": true,
             "dependencies": {
@@ -1338,16 +1338,16 @@
                 "url": "https://opencollective.com/swc"
             },
             "optionalDependencies": {
-                "@swc/core-darwin-arm64": "1.3.90",
-                "@swc/core-darwin-x64": "1.3.90",
-                "@swc/core-linux-arm-gnueabihf": "1.3.90",
-                "@swc/core-linux-arm64-gnu": "1.3.90",
-                "@swc/core-linux-arm64-musl": "1.3.90",
-                "@swc/core-linux-x64-gnu": "1.3.90",
-                "@swc/core-linux-x64-musl": "1.3.90",
-                "@swc/core-win32-arm64-msvc": "1.3.90",
-                "@swc/core-win32-ia32-msvc": "1.3.90",
-                "@swc/core-win32-x64-msvc": "1.3.90"
+                "@swc/core-darwin-arm64": "1.3.92",
+                "@swc/core-darwin-x64": "1.3.92",
+                "@swc/core-linux-arm-gnueabihf": "1.3.92",
+                "@swc/core-linux-arm64-gnu": "1.3.92",
+                "@swc/core-linux-arm64-musl": "1.3.92",
+                "@swc/core-linux-x64-gnu": "1.3.92",
+                "@swc/core-linux-x64-musl": "1.3.92",
+                "@swc/core-win32-arm64-msvc": "1.3.92",
+                "@swc/core-win32-ia32-msvc": "1.3.92",
+                "@swc/core-win32-x64-msvc": "1.3.92"
             },
             "peerDependencies": {
                 "@swc/helpers": "^0.5.0"
@@ -1359,9 +1359,9 @@
             }
         },
         "node_modules/@swc/core-darwin-arm64": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.90.tgz",
-            "integrity": "sha512-he0w74HvcoufE6CZrB/U/VGVbc7021IQvYrn1geMACnq/OqMBqjdczNtdNfJAy87LZ4AOUjHDKEIjsZZu7o8nQ==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.92.tgz",
+            "integrity": "sha512-v7PqZUBtIF6Q5Cp48gqUiG8zQQnEICpnfNdoiY3xjQAglCGIQCjJIDjreZBoeZQZspB27lQN4eZ43CX18+2SnA==",
             "cpu": [
                 "arm64"
             ],
@@ -1375,9 +1375,9 @@
             }
         },
         "node_modules/@swc/core-darwin-x64": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.90.tgz",
-            "integrity": "sha512-hKNM0Ix0qMlAamPe0HUfaAhQVbZEL5uK6Iw8v9ew0FtVB4v7EifQ9n41wh+yCj0CjcHBPEBbQU0P6mNTxJu/RQ==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.92.tgz",
+            "integrity": "sha512-Q3XIgQfXyxxxms3bPN+xGgvwk0TtG9l89IomApu+yTKzaIIlf051mS+lGngjnh9L0aUiCp6ICyjDLtutWP54fw==",
             "cpu": [
                 "x64"
             ],
@@ -1391,9 +1391,9 @@
             }
         },
         "node_modules/@swc/core-linux-arm-gnueabihf": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.90.tgz",
-            "integrity": "sha512-HumvtrqTWE8rlFuKt7If0ZL7145H/jVc4AeziVjcd+/ajpqub7IyfrLCYd5PmKMtfeSVDMsxjG0BJ0HLRxrTJA==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.92.tgz",
+            "integrity": "sha512-tnOCoCpNVXC+0FCfG84PBZJyLlz0Vfj9MQhyhCvlJz9hQmvpf8nTdKH7RHrOn8VfxtUBLdVi80dXgIFgbvl7qA==",
             "cpu": [
                 "arm"
             ],
@@ -1407,9 +1407,9 @@
             }
         },
         "node_modules/@swc/core-linux-arm64-gnu": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.90.tgz",
-            "integrity": "sha512-tA7DqCS7YCwngwXZQeqQhhMm8BbydpaABw8Z/EDQ7KPK1iZ1rNjZw+aWvSpmNmEGmH1RmQ9QDS9mGRDp0faAeg==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.92.tgz",
+            "integrity": "sha512-lFfGhX32w8h1j74Iyz0Wv7JByXIwX11OE9UxG+oT7lG0RyXkF4zKyxP8EoxfLrDXse4Oop434p95e3UNC3IfCw==",
             "cpu": [
                 "arm64"
             ],
@@ -1423,9 +1423,9 @@
             }
         },
         "node_modules/@swc/core-linux-arm64-musl": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.90.tgz",
-            "integrity": "sha512-p2Vtid5BZA36fJkNUwk5HP+HJlKgTru+Ghna7pRe45ghKkkRIUk3fhkgudEvfKfhT+3AvP+GTVQ+T9k0gc9S8w==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.92.tgz",
+            "integrity": "sha512-rOZtRcLj57MSAbiecMsqjzBcZDuaCZ8F6l6JDwGkQ7u1NYR57cqF0QDyU7RKS1Jq27Z/Vg21z5cwqoH5fLN+Sg==",
             "cpu": [
                 "arm64"
             ],
@@ -1439,9 +1439,9 @@
             }
         },
         "node_modules/@swc/core-linux-x64-gnu": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.90.tgz",
-            "integrity": "sha512-J6pDtWaulYGXuANERuvv4CqmUbZOQrRZBCRQGZQJ6a86RWpesZqckBelnYx48wYmkgvMkF95Y3xbI3WTfoSHzw==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.92.tgz",
+            "integrity": "sha512-qptoMGnBL6v89x/Qpn+l1TH1Y0ed+v0qhNfAEVzZvCvzEMTFXphhlhYbDdpxbzRmCjH6GOGq7Y+xrWt9T1/ARg==",
             "cpu": [
                 "x64"
             ],
@@ -1455,9 +1455,9 @@
             }
         },
         "node_modules/@swc/core-linux-x64-musl": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.90.tgz",
-            "integrity": "sha512-3Gh6EA3+0K+l3MqnRON7h5bZ32xLmfcVM6QiHHJ9dBttq7YOEeEoMOCdIPMaQxJmK1VfLgZCsPYRd66MhvUSkw==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.92.tgz",
+            "integrity": "sha512-g2KrJ43bZkCZHH4zsIV5ErojuV1OIpUHaEyW1gf7JWKaFBpWYVyubzFPvPkjcxHGLbMsEzO7w/NVfxtGMlFH/Q==",
             "cpu": [
                 "x64"
             ],
@@ -1471,9 +1471,9 @@
             }
         },
         "node_modules/@swc/core-win32-arm64-msvc": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.90.tgz",
-            "integrity": "sha512-BNaw/iJloDyaNOFV23Sr53ULlnbmzSoerTJ10v0TjSZOEIpsS0Rw6xOK1iI0voDJnRXeZeWRSxEC9DhefNtN/g==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.92.tgz",
+            "integrity": "sha512-3MCRGPAYDoQ8Yyd3WsCMc8eFSyKXY5kQLyg/R5zEqA0uthomo0m0F5/fxAJMZGaSdYkU1DgF73ctOWOf+Z/EzQ==",
             "cpu": [
                 "arm64"
             ],
@@ -1487,9 +1487,9 @@
             }
         },
         "node_modules/@swc/core-win32-ia32-msvc": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.90.tgz",
-            "integrity": "sha512-SiyTethWAheE/JbxXCukAAciU//PLcmVZ2ME92MRuLMLmOhrwksjbaa7ukj9WEF3LWrherhSqTXnpj3VC1l/qw==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.92.tgz",
+            "integrity": "sha512-zqTBKQhgfWm73SVGS8FKhFYDovyRl1f5dTX1IwSKynO0qHkRCqJwauFJv/yevkpJWsI2pFh03xsRs9HncTQKSA==",
             "cpu": [
                 "ia32"
             ],
@@ -1503,9 +1503,9 @@
             }
         },
         "node_modules/@swc/core-win32-x64-msvc": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.90.tgz",
-            "integrity": "sha512-OpWAW5ljKcPJ3SQ0pUuKqYfwXv7ssIhVgrH9XP9ONtdgXKWZRL9hqJQkcL55FARw/gDjKanoCM47wsTNQL+ZZA==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.92.tgz",
+            "integrity": "sha512-41bE66ddr9o/Fi1FBh0sHdaKdENPTuDpv1IFHxSg0dJyM/jX8LbkjnpdInYXHBxhcLVAPraVRrNsC4SaoPw2Pg==",
             "cpu": [
                 "x64"
             ],
@@ -1670,9 +1670,9 @@
             "dev": true
         },
         "node_modules/@types/node": {
-            "version": "18.18.1",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.1.tgz",
-            "integrity": "sha512-3G42sxmm0fF2+Vtb9TJQpnjmP+uKlWvFa8KoEGquh4gqRmoUG/N0ufuhikw6HEsdG2G2oIKhog1GCTfz9v5NdQ==",
+            "version": "18.18.4",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.4.tgz",
+            "integrity": "sha512-t3rNFBgJRugIhackit2mVcLfF6IRc0JE4oeizPQL8Zrm8n2WY/0wOdpOPhdtG0V9Q2TlW/axbF1MJ6z+Yj/kKQ==",
             "dev": true
         },
         "node_modules/@types/prettier": {
@@ -2845,14 +2845,14 @@
             }
         },
         "node_modules/eslint": {
-            "version": "8.50.0",
-            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz",
-            "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==",
+            "version": "8.51.0",
+            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz",
+            "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==",
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.2.0",
                 "@eslint-community/regexpp": "^4.6.1",
                 "@eslint/eslintrc": "^2.1.2",
-                "@eslint/js": "8.50.0",
+                "@eslint/js": "8.51.0",
                 "@humanwhocodes/config-array": "^0.11.11",
                 "@humanwhocodes/module-importer": "^1.0.1",
                 "@nodelib/fs.walk": "^1.2.8",
@@ -7489,9 +7489,9 @@
             }
         },
         "@eslint/js": {
-            "version": "8.50.0",
-            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz",
-            "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ=="
+            "version": "8.51.0",
+            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz",
+            "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg=="
         },
         "@humanwhocodes/config-array": {
             "version": "0.11.11",
@@ -7988,92 +7988,92 @@
             }
         },
         "@swc/core": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.90.tgz",
-            "integrity": "sha512-wptBxP4PldOnhmyDVj8qUcn++GRqyw1qc9wOTGtPNHz8cpuTfdfIgYGlhI4La0UYqecuaaIfLfokyuNePOMHPg==",
-            "dev": true,
-            "requires": {
-                "@swc/core-darwin-arm64": "1.3.90",
-                "@swc/core-darwin-x64": "1.3.90",
-                "@swc/core-linux-arm-gnueabihf": "1.3.90",
-                "@swc/core-linux-arm64-gnu": "1.3.90",
-                "@swc/core-linux-arm64-musl": "1.3.90",
-                "@swc/core-linux-x64-gnu": "1.3.90",
-                "@swc/core-linux-x64-musl": "1.3.90",
-                "@swc/core-win32-arm64-msvc": "1.3.90",
-                "@swc/core-win32-ia32-msvc": "1.3.90",
-                "@swc/core-win32-x64-msvc": "1.3.90",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.92.tgz",
+            "integrity": "sha512-vx0vUrf4YTEw59njOJ46Ha5i0cZTMYdRHQ7KXU29efN1MxcmJH2RajWLPlvQarOP1ab9iv9cApD7SMchDyx2vA==",
+            "dev": true,
+            "requires": {
+                "@swc/core-darwin-arm64": "1.3.92",
+                "@swc/core-darwin-x64": "1.3.92",
+                "@swc/core-linux-arm-gnueabihf": "1.3.92",
+                "@swc/core-linux-arm64-gnu": "1.3.92",
+                "@swc/core-linux-arm64-musl": "1.3.92",
+                "@swc/core-linux-x64-gnu": "1.3.92",
+                "@swc/core-linux-x64-musl": "1.3.92",
+                "@swc/core-win32-arm64-msvc": "1.3.92",
+                "@swc/core-win32-ia32-msvc": "1.3.92",
+                "@swc/core-win32-x64-msvc": "1.3.92",
                 "@swc/counter": "^0.1.1",
                 "@swc/types": "^0.1.5"
             }
         },
         "@swc/core-darwin-arm64": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.90.tgz",
-            "integrity": "sha512-he0w74HvcoufE6CZrB/U/VGVbc7021IQvYrn1geMACnq/OqMBqjdczNtdNfJAy87LZ4AOUjHDKEIjsZZu7o8nQ==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.92.tgz",
+            "integrity": "sha512-v7PqZUBtIF6Q5Cp48gqUiG8zQQnEICpnfNdoiY3xjQAglCGIQCjJIDjreZBoeZQZspB27lQN4eZ43CX18+2SnA==",
             "dev": true,
             "optional": true
         },
         "@swc/core-darwin-x64": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.90.tgz",
-            "integrity": "sha512-hKNM0Ix0qMlAamPe0HUfaAhQVbZEL5uK6Iw8v9ew0FtVB4v7EifQ9n41wh+yCj0CjcHBPEBbQU0P6mNTxJu/RQ==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.92.tgz",
+            "integrity": "sha512-Q3XIgQfXyxxxms3bPN+xGgvwk0TtG9l89IomApu+yTKzaIIlf051mS+lGngjnh9L0aUiCp6ICyjDLtutWP54fw==",
             "dev": true,
             "optional": true
         },
         "@swc/core-linux-arm-gnueabihf": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.90.tgz",
-            "integrity": "sha512-HumvtrqTWE8rlFuKt7If0ZL7145H/jVc4AeziVjcd+/ajpqub7IyfrLCYd5PmKMtfeSVDMsxjG0BJ0HLRxrTJA==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.92.tgz",
+            "integrity": "sha512-tnOCoCpNVXC+0FCfG84PBZJyLlz0Vfj9MQhyhCvlJz9hQmvpf8nTdKH7RHrOn8VfxtUBLdVi80dXgIFgbvl7qA==",
             "dev": true,
             "optional": true
         },
         "@swc/core-linux-arm64-gnu": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.90.tgz",
-            "integrity": "sha512-tA7DqCS7YCwngwXZQeqQhhMm8BbydpaABw8Z/EDQ7KPK1iZ1rNjZw+aWvSpmNmEGmH1RmQ9QDS9mGRDp0faAeg==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.92.tgz",
+            "integrity": "sha512-lFfGhX32w8h1j74Iyz0Wv7JByXIwX11OE9UxG+oT7lG0RyXkF4zKyxP8EoxfLrDXse4Oop434p95e3UNC3IfCw==",
             "dev": true,
             "optional": true
         },
         "@swc/core-linux-arm64-musl": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.90.tgz",
-            "integrity": "sha512-p2Vtid5BZA36fJkNUwk5HP+HJlKgTru+Ghna7pRe45ghKkkRIUk3fhkgudEvfKfhT+3AvP+GTVQ+T9k0gc9S8w==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.92.tgz",
+            "integrity": "sha512-rOZtRcLj57MSAbiecMsqjzBcZDuaCZ8F6l6JDwGkQ7u1NYR57cqF0QDyU7RKS1Jq27Z/Vg21z5cwqoH5fLN+Sg==",
             "dev": true,
             "optional": true
         },
         "@swc/core-linux-x64-gnu": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.90.tgz",
-            "integrity": "sha512-J6pDtWaulYGXuANERuvv4CqmUbZOQrRZBCRQGZQJ6a86RWpesZqckBelnYx48wYmkgvMkF95Y3xbI3WTfoSHzw==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.92.tgz",
+            "integrity": "sha512-qptoMGnBL6v89x/Qpn+l1TH1Y0ed+v0qhNfAEVzZvCvzEMTFXphhlhYbDdpxbzRmCjH6GOGq7Y+xrWt9T1/ARg==",
             "dev": true,
             "optional": true
         },
         "@swc/core-linux-x64-musl": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.90.tgz",
-            "integrity": "sha512-3Gh6EA3+0K+l3MqnRON7h5bZ32xLmfcVM6QiHHJ9dBttq7YOEeEoMOCdIPMaQxJmK1VfLgZCsPYRd66MhvUSkw==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.92.tgz",
+            "integrity": "sha512-g2KrJ43bZkCZHH4zsIV5ErojuV1OIpUHaEyW1gf7JWKaFBpWYVyubzFPvPkjcxHGLbMsEzO7w/NVfxtGMlFH/Q==",
             "dev": true,
             "optional": true
         },
         "@swc/core-win32-arm64-msvc": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.90.tgz",
-            "integrity": "sha512-BNaw/iJloDyaNOFV23Sr53ULlnbmzSoerTJ10v0TjSZOEIpsS0Rw6xOK1iI0voDJnRXeZeWRSxEC9DhefNtN/g==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.92.tgz",
+            "integrity": "sha512-3MCRGPAYDoQ8Yyd3WsCMc8eFSyKXY5kQLyg/R5zEqA0uthomo0m0F5/fxAJMZGaSdYkU1DgF73ctOWOf+Z/EzQ==",
             "dev": true,
             "optional": true
         },
         "@swc/core-win32-ia32-msvc": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.90.tgz",
-            "integrity": "sha512-SiyTethWAheE/JbxXCukAAciU//PLcmVZ2ME92MRuLMLmOhrwksjbaa7ukj9WEF3LWrherhSqTXnpj3VC1l/qw==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.92.tgz",
+            "integrity": "sha512-zqTBKQhgfWm73SVGS8FKhFYDovyRl1f5dTX1IwSKynO0qHkRCqJwauFJv/yevkpJWsI2pFh03xsRs9HncTQKSA==",
             "dev": true,
             "optional": true
         },
         "@swc/core-win32-x64-msvc": {
-            "version": "1.3.90",
-            "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.90.tgz",
-            "integrity": "sha512-OpWAW5ljKcPJ3SQ0pUuKqYfwXv7ssIhVgrH9XP9ONtdgXKWZRL9hqJQkcL55FARw/gDjKanoCM47wsTNQL+ZZA==",
+            "version": "1.3.92",
+            "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.92.tgz",
+            "integrity": "sha512-41bE66ddr9o/Fi1FBh0sHdaKdENPTuDpv1IFHxSg0dJyM/jX8LbkjnpdInYXHBxhcLVAPraVRrNsC4SaoPw2Pg==",
             "dev": true,
             "optional": true
         },
@@ -8220,9 +8220,9 @@
             "dev": true
         },
         "@types/node": {
-            "version": "18.18.1",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.1.tgz",
-            "integrity": "sha512-3G42sxmm0fF2+Vtb9TJQpnjmP+uKlWvFa8KoEGquh4gqRmoUG/N0ufuhikw6HEsdG2G2oIKhog1GCTfz9v5NdQ==",
+            "version": "18.18.4",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.4.tgz",
+            "integrity": "sha512-t3rNFBgJRugIhackit2mVcLfF6IRc0JE4oeizPQL8Zrm8n2WY/0wOdpOPhdtG0V9Q2TlW/axbF1MJ6z+Yj/kKQ==",
             "dev": true
         },
         "@types/prettier": {
@@ -9065,14 +9065,14 @@
             }
         },
         "eslint": {
-            "version": "8.50.0",
-            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz",
-            "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==",
+            "version": "8.51.0",
+            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz",
+            "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==",
             "requires": {
                 "@eslint-community/eslint-utils": "^4.2.0",
                 "@eslint-community/regexpp": "^4.6.1",
                 "@eslint/eslintrc": "^2.1.2",
-                "@eslint/js": "8.50.0",
+                "@eslint/js": "8.51.0",
                 "@humanwhocodes/config-array": "^0.11.11",
                 "@humanwhocodes/module-importer": "^1.0.1",
                 "@nodelib/fs.walk": "^1.2.8",
diff --git a/package.json b/package.json
index 5ebffd1..5f0652e 100644
--- a/package.json
+++ b/package.json
@@ -22,19 +22,19 @@
         "typescript": "4.9.5"
     },
     "devDependencies": {
-        "@swc/core": "1.3.90",
+        "@swc/core": "1.3.92",
         "@swc/jest": "0.2.29",
         "@types/eslint-config-prettier": "6.11.1",
         "@types/glob": "8.1.0",
         "@types/json5": "0.0.30",
         "@types/lodash": "4.14.199",
         "@types/minimatch": "5.1.2",
-        "@types/node": "18.18.1",
+        "@types/node": "18.18.4",
         "@typescript-eslint/eslint-plugin": "5.53.0",
         "@typescript-eslint/parser": "5.53.0",
         "ansi-regex": "6.0.1",
         "cross-env": "7.0.3",
-        "eslint": "8.50.0",
+        "eslint": "8.51.0",
         "eslint-plugin-simple-import-sort": "10.0.0",
         "husky": "8.0.3",
         "jest": "27.5.1",
diff --git a/src/adapters/fileSystem.stub.ts b/src/adapters/fileSystem.stub.ts
index 678432b..e10337f 100644
--- a/src/adapters/fileSystem.stub.ts
+++ b/src/adapters/fileSystem.stub.ts
@@ -1,8 +1,9 @@
 import { FileSystem } from "../adapters/fileSystem";
 import { fn } from "../fn";
 
-export const createStubFileSystem = ({ data = {}, exists = true } = {}) => ({
+export const createStubFileSystem = ({ data = {}, exists = true, isDir = false } = {}) => ({
     fileExists: async () => exists,
+    directoryExists: async () => exists && isDir,
     readFile: async () => data,
     writeFile: fn<FileSystem["writeFile"]>(),
 });
diff --git a/src/adapters/fileSystem.ts b/src/adapters/fileSystem.ts
index 2b5f825..08a9434 100644
--- a/src/adapters/fileSystem.ts
+++ b/src/adapters/fileSystem.ts
@@ -1,5 +1,6 @@
 export type FileSystem = {
     fileExists: (filePath: string) => Promise<boolean>;
-    readFile: (filePath: string) => Promise<Error | string>;
-    writeFile: (filePath: string, contents: string) => Promise<Error | undefined>;
+    directoryExists: (filePath: string) => Promise<boolean>;
+    readFile: (filePath: string) => Promise<NodeJS.ErrnoException | string>;
+    writeFile: (filePath: string, contents: string) => Promise<NodeJS.ErrnoException | undefined>;
 };
diff --git a/src/adapters/fsFileSystem.ts b/src/adapters/fsFileSystem.ts
index 7e29dfd..774f2c2 100644
--- a/src/adapters/fsFileSystem.ts
+++ b/src/adapters/fsFileSystem.ts
@@ -11,6 +11,14 @@ export const fsFileSystem: FileSystem = {
             return false;
         }
     },
+    directoryExists: async (filePath: string) => {
+        try {
+            const stat = await fs.promises.stat(filePath);
+            return stat.isDirectory();
+        } catch (error) {
+            return false;
+        }
+    },
     readFile: async (filePath: string) => {
         try {
             return (await fs.promises.readFile(filePath)).toString();
diff --git a/src/api/dependencies.ts b/src/api/dependencies.ts
index 37269d0..a9fd554 100644
--- a/src/api/dependencies.ts
+++ b/src/api/dependencies.ts
@@ -121,6 +121,7 @@ export const findOriginalConfigurationsDependencies: FindOriginalConfigurationsD
 
 export const collectCommentFileNamesDependencies: CollectCommentFileNamesDependencies = {
     findTypeScriptConfiguration: bind(findTypeScriptConfiguration, findConfigurationDependencies),
+    fileSystem: fsFileSystem,
 };
 
 export const extractGlobPathsDependencies: ExtractGlobPathsDependencies = {
diff --git a/src/comments/collectCommentFileNames.ts b/src/comments/collectCommentFileNames.ts
index eef3e58..570dcd5 100644
--- a/src/comments/collectCommentFileNames.ts
+++ b/src/comments/collectCommentFileNames.ts
@@ -1,3 +1,4 @@
+import { FileSystem } from "../adapters/fileSystem";
 import { SansDependencies } from "../binding";
 import {
     findTypeScriptConfiguration,
@@ -7,6 +8,7 @@ import { uniqueFromSources } from "../utils";
 
 export type CollectCommentFileNamesDependencies = {
     findTypeScriptConfiguration: SansDependencies<typeof findTypeScriptConfiguration>;
+    fileSystem: Pick<FileSystem, "directoryExists">;
 };
 
 export type CommentFileNames = {
@@ -26,12 +28,27 @@ export const collectCommentFileNames = async (
             );
         }
 
+        const includeList = uniqueFromSources(
+            typescriptConfiguration.files,
+            typescriptConfiguration.include,
+        );
+
+        // Remove directories specified in the include list. Ignore
+        // Errors as they'll be handled when reading the file.
+        const includeListFiles = (
+            await Promise.all(includeList.map(dependencies.fileSystem.directoryExists))
+        )
+            .map((isDirectory, i) => {
+                if (isDirectory) {
+                    return null;
+                }
+                return includeList[i];
+            })
+            .filter((item): item is string => typeof item === "string");
+
         return {
             exclude: typescriptConfiguration.exclude,
-            include: uniqueFromSources(
-                typescriptConfiguration.files,
-                typescriptConfiguration.include,
-            ),
+            include: includeListFiles,
         };
     }
 
diff --git a/src/converters/lintConfigs/rules/ruleConverters/only-arrow-functions.ts b/src/converters/lintConfigs/rules/ruleConverters/only-arrow-functions.ts
index 7a83b8a..a6c300f 100644
--- a/src/converters/lintConfigs/rules/ruleConverters/only-arrow-functions.ts
+++ b/src/converters/lintConfigs/rules/ruleConverters/only-arrow-functions.ts
@@ -3,13 +3,9 @@ import { RuleConverter } from "../ruleConverter";
 export const convertOnlyArrowFunctions: RuleConverter = (tslintRule) => {
     const notices: string[] = [];
 
-    if (tslintRule.ruleArguments.includes("allow-declarations")) {
-        notices.push("ESLint does not support allowing standalone function declarations.");
-    }
-
     if (tslintRule.ruleArguments.includes("allow-named-functions")) {
         notices.push(
-            "ESLint does not support allowing named functions defined with the function keyword.",
+            "ESLint (eslint-plugin-prefer-arrow plugin) does not support allowing named functions defined with the function keyword.",
         );
     }
 
@@ -17,6 +13,13 @@ export const convertOnlyArrowFunctions: RuleConverter = (tslintRule) => {
         rules: [
             {
                 ...(notices.length !== 0 && { notices }),
+                ruleArguments: [
+                    {
+                        ...(tslintRule.ruleArguments.includes("allow-declarations") && {
+                            allowStandaloneDeclarations: true,
+                        }),
+                    },
+                ],
                 ruleName: "prefer-arrow/prefer-arrow-functions",
             },
         ],


Test patch:
diff --git a/src/comments/collectCommentFileNames.test.ts b/src/comments/collectCommentFileNames.test.ts
index 137b0b2..010837c 100644
--- a/src/comments/collectCommentFileNames.test.ts
+++ b/src/comments/collectCommentFileNames.test.ts
@@ -1,5 +1,7 @@
 import { describe, expect, it } from "@jest/globals";
 
+import { createStubFileSystem } from "../adapters/fileSystem.stub";
+import { fsFileSystem as fileSystem } from "../adapters/fsFileSystem";
 import { collectCommentFileNames } from "./collectCommentFileNames";
 
 const stubFoundConfiguration = {
@@ -10,7 +12,10 @@ describe("collectCommentFileNames", () => {
     it("returns an error result when filePathGlobs is true and typescriptConfiguration is undefined", async () => {
         const findTypeScriptConfiguration = async () => stubFoundConfiguration;
 
-        const result = await collectCommentFileNames({ findTypeScriptConfiguration }, true);
+        const result = await collectCommentFileNames(
+            { findTypeScriptConfiguration, fileSystem },
+            true,
+        );
 
         expect(result).toEqual(expect.any(Error));
     });
@@ -22,7 +27,7 @@ describe("collectCommentFileNames", () => {
         };
 
         const result = await collectCommentFileNames(
-            { findTypeScriptConfiguration },
+            { findTypeScriptConfiguration, fileSystem },
             true,
             typescriptConfiguration,
         );
@@ -35,7 +40,7 @@ describe("collectCommentFileNames", () => {
         const filePathGlobs = ["a.ts"];
 
         const result = await collectCommentFileNames(
-            { findTypeScriptConfiguration },
+            { findTypeScriptConfiguration, fileSystem },
             filePathGlobs,
         );
 
@@ -51,7 +56,7 @@ describe("collectCommentFileNames", () => {
         const filePathGlobs = "a.ts";
 
         const result = await collectCommentFileNames(
-            { findTypeScriptConfiguration },
+            { findTypeScriptConfiguration, fileSystem },
             filePathGlobs,
         );
 
@@ -65,7 +70,7 @@ describe("collectCommentFileNames", () => {
         const findTypeScriptConfiguration = async () => error;
 
         const result = await collectCommentFileNames(
-            { findTypeScriptConfiguration },
+            { findTypeScriptConfiguration, fileSystem },
             "tsconfig.json",
         );
 
@@ -76,7 +81,7 @@ describe("collectCommentFileNames", () => {
         const findTypeScriptConfiguration = async () => stubFoundConfiguration;
 
         const result = await collectCommentFileNames(
-            { findTypeScriptConfiguration },
+            { findTypeScriptConfiguration, fileSystem },
             "tsconfig.json",
         );
 
@@ -84,4 +89,22 @@ describe("collectCommentFileNames", () => {
             include: ["a.ts"],
         });
     });
+
+    it("returns only files when filePathGlobs includes directories", async () => {
+        const findTypeScriptConfiguration = async () => ({
+            include: ["directory"],
+        });
+
+        const result = await collectCommentFileNames(
+            {
+                findTypeScriptConfiguration,
+                fileSystem: createStubFileSystem({ isDir: true }),
+            },
+            "tsconfig.json",
+        );
+
+        expect(result).toEqual({
+            include: [],
+        });
+    });
 });
diff --git a/src/converters/comments/convertFileComments.test.ts b/src/converters/comments/convertFileComments.test.ts
index 0e94c70..24fa14a 100644
--- a/src/converters/comments/convertFileComments.test.ts
+++ b/src/converters/comments/convertFileComments.test.ts
@@ -6,7 +6,7 @@ import { createStubConverter } from "../lintConfigs/rules/ruleConverter.stubs";
 import { convertFileComments, ConvertFileCommentsDependencies } from "./convertFileComments";
 
 const createStubDependencies = (
-    readFileResult: Error | string,
+    readFileResult: NodeJS.ErrnoException | string,
 ): ConvertFileCommentsDependencies => ({
     converters: new Map([
         ["ts-a", createStubConverter(["es-a"])],
diff --git a/src/converters/lintConfigs/rules/ruleConverters/tests/only-arrow-functions.test.ts b/src/converters/lintConfigs/rules/ruleConverters/tests/only-arrow-functions.test.ts
index e26cd8b..55f6cc7 100644
--- a/src/converters/lintConfigs/rules/ruleConverters/tests/only-arrow-functions.test.ts
+++ b/src/converters/lintConfigs/rules/ruleConverters/tests/only-arrow-functions.test.ts
@@ -12,6 +12,7 @@ describe("convertOnlyArrowFunctions", () => {
             plugins: ["eslint-plugin-prefer-arrow"],
             rules: [
                 {
+                    ruleArguments: [{}],
                     ruleName: "prefer-arrow/prefer-arrow-functions",
                 },
             ],
@@ -27,7 +28,11 @@ describe("convertOnlyArrowFunctions", () => {
             plugins: ["eslint-plugin-prefer-arrow"],
             rules: [
                 {
-                    notices: ["ESLint does not support allowing standalone function declarations."],
+                    ruleArguments: [
+                        {
+                            allowStandaloneDeclarations: true,
+                        },
+                    ],
                     ruleName: "prefer-arrow/prefer-arrow-functions",
                 },
             ],
@@ -44,8 +49,9 @@ describe("convertOnlyArrowFunctions", () => {
             rules: [
                 {
                     notices: [
-                        "ESLint does not support allowing named functions defined with the function keyword.",
+                        "ESLint (eslint-plugin-prefer-arrow plugin) does not support allowing named functions defined with the function keyword.",
                     ],
+                    ruleArguments: [{}],
                     ruleName: "prefer-arrow/prefer-arrow-functions",
                 },
             ],
@@ -62,8 +68,12 @@ describe("convertOnlyArrowFunctions", () => {
             rules: [
                 {
                     notices: [
-                        "ESLint does not support allowing standalone function declarations.",
-                        "ESLint does not support allowing named functions defined with the function keyword.",
+                        "ESLint (eslint-plugin-prefer-arrow plugin) does not support allowing named functions defined with the function keyword.",
+                    ],
+                    ruleArguments: [
+                        {
+                            allowStandaloneDeclarations: true,
+                        },
                     ],
                     ruleName: "prefer-arrow/prefer-arrow-functions",
                 },