From b831218a4139c6d7c005f884207fc69362d4dc48 Mon Sep 17 00:00:00 2001 From: gitlimes Date: Sun, 9 Jun 2024 14:41:57 +0200 Subject: [PATCH] feat: typescript! --- jsconfig.json | 12 ---- next-env.d.ts | 5 ++ next.config.js | 20 +++--- package-lock.json | 59 ++++++++++++++++ package.json | 3 + src/app/{layout.js => layout.tsx} | 5 +- src/app/{page.js => page.tsx} | 32 ++++++--- .../Bandwidth/{Bandwidth.js => Bandwidth.tsx} | 27 ++++++-- .../Button/{Button.js => Button.tsx} | 18 ++++- .../{ButtonWidget.js => ButtonWidget.tsx} | 17 ++++- .../Caption/{Caption.js => Caption.tsx} | 10 ++- .../CoolHover/{CoolHover.js => CoolHover.tsx} | 13 +++- .../Dropdown/{Dropdown.js => Dropdown.tsx} | 69 +++++++++++-------- src/components/Faq/{Faq.js => Faq.tsx} | 13 +++- .../Footer/{Footer.js => Footer.tsx} | 4 +- .../Header/{Header.js => Header.tsx} | 0 ...HeaderDropdown1.js => HeaderDropdown1.tsx} | 0 ...HeaderDropdown2.js => HeaderDropdown2.tsx} | 0 ...HeaderDropdown3.js => HeaderDropdown3.tsx} | 0 ...HeaderDropdown4.js => HeaderDropdown4.tsx} | 0 .../{HeaderWrapper.js => HeaderWrapper.tsx} | 0 src/components/Hero/{Hero.js => Hero.tsx} | 16 ++--- src/components/ImageFix/ImageFix.js | 12 ---- src/components/Logo/{Logo.js => Logo.tsx} | 13 +++- .../Section/{Section.js => Section.tsx} | 14 +++- ...ShowcaseSection.js => ShowcaseSection.tsx} | 13 +++- .../TeamCard/{TeamCard.js => TeamCard.tsx} | 17 ++++- src/components/Title/{Title.js => Title.tsx} | 13 +++- src/utils/{locale.js => locale.ts} | 8 ++- src/utils/{logger.js => logger.ts} | 16 +++-- tsconfig.json | 32 +++++++++ 31 files changed, 341 insertions(+), 120 deletions(-) delete mode 100644 jsconfig.json create mode 100644 next-env.d.ts rename src/app/{layout.js => layout.tsx} (94%) rename src/app/{page.js => page.tsx} (85%) rename src/components/Bandwidth/{Bandwidth.js => Bandwidth.tsx} (96%) rename src/components/Button/{Button.js => Button.tsx} (78%) rename src/components/ButtonWidget/{ButtonWidget.js => ButtonWidget.tsx} (74%) rename src/components/Caption/{Caption.js => Caption.tsx} (72%) rename src/components/CoolHover/{CoolHover.js => CoolHover.tsx} (82%) rename src/components/Dropdown/{Dropdown.js => Dropdown.tsx} (72%) rename src/components/Faq/{Faq.js => Faq.tsx} (88%) rename src/components/Footer/{Footer.js => Footer.tsx} (98%) rename src/components/Header/{Header.js => Header.tsx} (100%) rename src/components/Header/HeaderDropdowns/{HeaderDropdown1.js => HeaderDropdown1.tsx} (100%) rename src/components/Header/HeaderDropdowns/{HeaderDropdown2.js => HeaderDropdown2.tsx} (100%) rename src/components/Header/HeaderDropdowns/{HeaderDropdown3.js => HeaderDropdown3.tsx} (100%) rename src/components/Header/HeaderDropdowns/{HeaderDropdown4.js => HeaderDropdown4.tsx} (100%) rename src/components/Header/{HeaderWrapper.js => HeaderWrapper.tsx} (100%) rename src/components/Hero/{Hero.js => Hero.tsx} (91%) delete mode 100644 src/components/ImageFix/ImageFix.js rename src/components/Logo/{Logo.js => Logo.tsx} (89%) rename src/components/Section/{Section.js => Section.tsx} (76%) rename src/components/ShowcaseSection/{ShowcaseSection.js => ShowcaseSection.tsx} (59%) rename src/components/TeamCard/{TeamCard.js => TeamCard.tsx} (79%) rename src/components/Title/{Title.js => Title.tsx} (86%) rename src/utils/{locale.js => locale.ts} (77%) rename src/utils/{logger.js => logger.ts} (78%) create mode 100644 tsconfig.json diff --git a/jsconfig.json b/jsconfig.json deleted file mode 100644 index 3b9faef..0000000 --- a/jsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": ".", - "paths": { - "@/components/*": ["./src/components/*"], - "@/utils/*": ["./src/utils/*"], - "@/public/*": ["./public/*"], - "@/locales/*": ["./locales/*"], - "@/app/*": ["./src/app/*"] - } - } -} diff --git a/next-env.d.ts b/next-env.d.ts new file mode 100644 index 0000000..4f11a03 --- /dev/null +++ b/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/next.config.js b/next.config.js index 2b08ebc..c7ab72f 100644 --- a/next.config.js +++ b/next.config.js @@ -1,4 +1,8 @@ -/** @type {import('next').NextConfig} */ +// @ts-check + +/** + * @type {import('next').NextConfig} + **/ const nextConfig = { reactStrictMode: true, @@ -8,28 +12,28 @@ const nextConfig = { protocol: 'https', hostname: 'github.com', port: '', - pathname: '/**' + pathname: '/**', }, { protocol: 'https', hostname: 'avatars.githubusercontent.com', port: '', - pathname: '/u/**' + pathname: '/u/**', }, { protocol: 'https', hostname: 'github.githubassets.com', port: '', - pathname: '/images/**' + pathname: '/images/**', }, { protocol: 'https', hostname: 'cdn.discordapp.com', port: '', - pathname: '/avatars/**' - } - ] - } + pathname: '/avatars/**', + }, + ], + }, }; export default nextConfig; diff --git a/package-lock.json b/package-lock.json index f43d126..187d54e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,6 +32,9 @@ "sharp": "^0.32.5" }, "devDependencies": { + "@types/fs-extra": "^11.0.4", + "@types/lodash.merge": "^4.6.9", + "@types/react": "18.3.3", "eslint-config-next": "^13.4.19" } }, @@ -1580,6 +1583,16 @@ "@types/ms": "*" } }, + "node_modules/@types/fs-extra": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", + "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", + "dev": true, + "dependencies": { + "@types/jsonfile": "*", + "@types/node": "*" + } + }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", @@ -1591,6 +1604,15 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/jsonfile": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", + "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/keyv": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", @@ -1599,6 +1621,21 @@ "@types/node": "*" } }, + "node_modules/@types/lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw==", + "dev": true + }, + "node_modules/@types/lodash.merge": { + "version": "4.6.9", + "resolved": "https://registry.npmjs.org/@types/lodash.merge/-/lodash.merge-4.6.9.tgz", + "integrity": "sha512-23sHDPmzd59kUgWyKGiOMO2Qb9YtqRO/x4IhkgNUiPQ1+5MUVqi6bCZeq9nBJ17msjIMbEIO5u+XW4Kz6aGUhQ==", + "dev": true, + "dependencies": { + "@types/lodash": "*" + } + }, "node_modules/@types/ms": { "version": "0.7.34", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", @@ -1612,11 +1649,27 @@ "undici-types": "~5.26.4" } }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "dev": true + }, "node_modules/@types/qs": { "version": "6.9.15", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==" }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, "node_modules/@types/responselike": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", @@ -2437,6 +2490,12 @@ "node": ">= 8" } }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", diff --git a/package.json b/package.json index 4ad4420..c51e49d 100755 --- a/package.json +++ b/package.json @@ -34,6 +34,9 @@ "sharp": "^0.32.5" }, "devDependencies": { + "@types/fs-extra": "^11.0.4", + "@types/lodash.merge": "^4.6.9", + "@types/react": "18.3.3", "eslint-config-next": "^13.4.19" }, "browserslist": [ diff --git a/src/app/layout.js b/src/app/layout.tsx similarity index 94% rename from src/app/layout.js rename to src/app/layout.tsx index 6ae71e0..195506d 100755 --- a/src/app/layout.js +++ b/src/app/layout.tsx @@ -11,7 +11,7 @@ const poppins = Poppins({ subsets: ['latin'], // this is the preloaded subset, all subsets will be available }); -export default function RootLayout({ children }) { +export default function RootLayout({ children }: { children: React.ReactNode }) { return ( @@ -19,7 +19,7 @@ export default function RootLayout({ children }) { {children}