diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index ce1022b..0000000 --- a/.eslintignore +++ /dev/null @@ -1,8 +0,0 @@ -# Ignore all config files in the root folder -leaky-ships/*.config.js - -# Ignore the whole __tests__ folder -leaky-ships/__tests__ - -# Allow all other files in folders -leaky-ships/!*/ diff --git a/leaky-ships/.eslintrc.cjs b/leaky-ships/.eslintrc.cjs index 30ddef1..59112f9 100644 --- a/leaky-ships/.eslintrc.cjs +++ b/leaky-ships/.eslintrc.cjs @@ -1,15 +1,13 @@ module.exports = { parser: "@typescript-eslint/parser", parserOptions: { - project: "./tsconfig.json", + project: ["./tsconfig.eslint.json", "./tsconfig.json"], + tsconfigRootDir: __dirname, }, - plugins: ["@typescript-eslint"], + plugins: ["@typescript-eslint", "solid"], extends: [ "plugin:solid/typescript", "plugin:@typescript-eslint/recommended", "prettier", ], - rules: { - "@typescript-eslint/consistent-type-imports": "warn", - }, } diff --git a/leaky-ships/jest-puppeteer.config.js b/leaky-ships/jest-puppeteer.config.cjs similarity index 100% rename from leaky-ships/jest-puppeteer.config.js rename to leaky-ships/jest-puppeteer.config.cjs diff --git a/leaky-ships/package.json b/leaky-ships/package.json index 50e7efe..a730f53 100644 --- a/leaky-ships/package.json +++ b/leaky-ships/package.json @@ -35,7 +35,6 @@ "solid-js": "^1.7.11", "solid-start": "^0.3.2", "solid-zustand": "^1.7.0", - "typescript": "5.1.6", "unique-names-generator": "^4.7.1", "zod": "3.21.1", "zod-prisma-types": "^2.7.9" @@ -46,8 +45,10 @@ "@types/node": "^18.17.5", "@types/nodemailer": "^6.4.9", "@types/web-bluetooth": "^0.0.16", + "@typescript-eslint/eslint-plugin": "^6.4.0", "autoprefixer": "^10.4.15", "dotenv": "^16.3.1", + "eslint": "^8.47.0", "eslint-config-prettier": "^8.10.0", "eslint-plugin-solid": "^0.12.1", "postcss": "^8.4.27", @@ -57,6 +58,7 @@ "sass": "^1.65.1", "solid-start-node": "^0.3.2", "tailwindcss": "^3.3.3", + "typescript": "^5.1.6", "vite": "^4.4.9" } } diff --git a/leaky-ships/pnpm-lock.yaml b/leaky-ships/pnpm-lock.yaml index 879d778..e3fa8e2 100644 --- a/leaky-ships/pnpm-lock.yaml +++ b/leaky-ships/pnpm-lock.yaml @@ -77,9 +77,6 @@ dependencies: solid-zustand: specifier: ^1.7.0 version: 1.7.0(solid-js@1.7.11)(zustand@4.4.1) - typescript: - specifier: 5.1.6 - version: 5.1.6 unique-names-generator: specifier: ^4.7.1 version: 4.7.1 @@ -106,12 +103,18 @@ devDependencies: '@types/web-bluetooth': specifier: ^0.0.16 version: 0.0.16 + '@typescript-eslint/eslint-plugin': + specifier: ^6.4.0 + version: 6.4.0(@typescript-eslint/parser@6.4.0)(eslint@8.47.0)(typescript@5.1.6) autoprefixer: specifier: ^10.4.15 version: 10.4.15(postcss@8.4.27) dotenv: specifier: ^16.3.1 version: 16.3.1 + eslint: + specifier: ^8.47.0 + version: 8.47.0 eslint-config-prettier: specifier: ^8.10.0 version: 8.10.0(eslint@8.47.0) @@ -139,6 +142,9 @@ devDependencies: tailwindcss: specifier: ^3.3.3 version: 3.3.3 + typescript: + specifier: ^5.1.6 + version: 5.1.6 vite: specifier: ^4.4.9 version: 4.4.9(@types/node@18.17.5)(sass@1.65.1) @@ -2081,6 +2087,56 @@ packages: resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} dev: true + /@typescript-eslint/eslint-plugin@6.4.0(@typescript-eslint/parser@6.4.0)(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-62o2Hmc7Gs3p8SLfbXcipjWAa6qk2wZGChXG2JbBtYpwSRmti/9KHLqfbLs9uDigOexG+3PaQ9G2g3201FWLKg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.6.2 + '@typescript-eslint/parser': 6.4.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.4.0 + '@typescript-eslint/type-utils': 6.4.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.4.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.4.0 + debug: 4.3.4 + eslint: 8.47.0 + graphemer: 1.4.0 + ignore: 5.2.4 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.1(typescript@5.1.6) + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.4.0(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-I1Ah1irl033uxjxO9Xql7+biL3YD7w9IU8zF+xlzD/YxY6a4b7DYA08PXUUCbm2sEljwJF6ERFy2kTGAGcNilg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.4.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.4.0 + debug: 4.3.4 + eslint: 8.47.0 + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2089,11 +2145,44 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true + /@typescript-eslint/scope-manager@6.4.0: + resolution: {integrity: sha512-TUS7vaKkPWDVvl7GDNHFQMsMruD+zhkd3SdVW0d7b+7Zo+bd/hXJQ8nsiUZMi1jloWo6c9qt3B7Sqo+flC1nig==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/visitor-keys': 6.4.0 + dev: true + + /@typescript-eslint/type-utils@6.4.0(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-TvqrUFFyGY0cX3WgDHcdl2/mMCWCDv/0thTtx/ODMY1QhEiyFtv/OlLaNIiYLwRpAxAtOLOY9SUf1H3Q3dlwAg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.1.6) + '@typescript-eslint/utils': 6.4.0(eslint@8.47.0)(typescript@5.1.6) + debug: 4.3.4 + eslint: 8.47.0 + ts-api-utils: 1.0.1(typescript@5.1.6) + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/types@5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@typescript-eslint/types@6.4.0: + resolution: {integrity: sha512-+FV9kVFrS7w78YtzkIsNSoYsnOtrYVnKWSTVXoL1761CsCRv5wpDOINgsXpxD67YCLZtVQekDDyaxfjVWUJmmg==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2115,6 +2204,27 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree@6.4.0(typescript@5.1.6): + resolution: {integrity: sha512-iDPJArf/K2sxvjOR6skeUCNgHR/tCQXBsa+ee1/clRKr3olZjZ/dSkXPZjG6YkPtnW6p5D1egeEPMCW6Gn4yLA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/visitor-keys': 6.4.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.1(typescript@5.1.6) + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/utils@5.62.0(eslint@8.47.0)(typescript@5.1.6): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2135,6 +2245,25 @@ packages: - typescript dev: true + /@typescript-eslint/utils@6.4.0(eslint@8.47.0)(typescript@5.1.6): + resolution: {integrity: sha512-BvvwryBQpECPGo8PwF/y/q+yacg8Hn/2XS+DqL/oRsOPK+RPt29h5Ui5dqOKHDlbXrAeHUTnyG3wZA0KTDxRZw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.0 + '@typescript-eslint/scope-manager': 6.4.0 + '@typescript-eslint/types': 6.4.0 + '@typescript-eslint/typescript-estree': 6.4.0(typescript@5.1.6) + eslint: 8.47.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/visitor-keys@5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2143,6 +2272,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@6.4.0: + resolution: {integrity: sha512-yJSfyT+uJm+JRDWYRYdCm2i+pmvXJSMtPR9Cq5/XQs4QIgNoLcoRtDdzsLbLsFM/c6um6ohQkg/MLxWvoIndJA==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.4.0 + eslint-visitor-keys: 3.4.3 + dev: true + /accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -4826,6 +4963,15 @@ packages: dependencies: regexparam: 1.3.0 + /ts-api-utils@1.0.1(typescript@5.1.6): + resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.1.6 + dev: true + /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true @@ -4901,6 +5047,7 @@ packages: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} hasBin: true + dev: true /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} diff --git a/leaky-ships/tsconfig.eslint.json b/leaky-ships/tsconfig.eslint.json new file mode 100644 index 0000000..d71e9aa --- /dev/null +++ b/leaky-ships/tsconfig.eslint.json @@ -0,0 +1,3 @@ +{ + "include": [".eslintrc.cjs"] +} diff --git a/leaky-ships/vite.config.ts b/leaky-ships/vite.config.ts index dd17ec9..13f348c 100644 --- a/leaky-ships/vite.config.ts +++ b/leaky-ships/vite.config.ts @@ -5,6 +5,7 @@ export default defineConfig({ plugins: [solid()], server: { host: "0.0.0.0", + strictPort: true, }, ssr: { external: ["@prisma/client"] }, })