From 811a24143ad3496bfe87f1d8a74168382a9e8ae7 Mon Sep 17 00:00:00 2001 From: Robin Lindner Date: Fri, 1 Sep 2023 23:14:13 +0200 Subject: [PATCH] Optimize code --- astro.config.mjs | 14 +-- package.json | 2 +- pnpm-lock.yaml | 104 ++++++++++++++++-- src/components/BlogSection.astro | 3 +- src/components/CookieBanner/style.scss | 1 + src/layouts/BaseLayout.astro | 2 +- .../[language]/blog/[category]/[slug].astro | 7 +- src/pages/[language]/blog/index.astro | 6 +- src/pages/[language]/blog/rss.xml.ts | 6 +- src/pages/[language]/privacy-policy.astro | 7 +- src/pages/[language]/terms-of-service.astro | 7 +- src/pages/[language]/web-design/index.astro | 2 +- tsconfig.json | 10 +- 13 files changed, 128 insertions(+), 43 deletions(-) diff --git a/astro.config.mjs b/astro.config.mjs index d0c72e8..1c5db38 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,5 +1,5 @@ import { defineConfig } from 'astro/config'; -import solidJs from "@astrojs/solid-js"; +import solid from "@astrojs/solid-js"; import prefetch from "@astrojs/prefetch"; import sitemap from "@astrojs/sitemap"; import compressor from "astro-compressor"; @@ -10,7 +10,6 @@ import rome from "astro-rome"; //import deno from '@astrojs/deno'; import nodejs from '@astrojs/node'; - import partytown from "@astrojs/partytown"; // https://astro.build/config @@ -19,7 +18,7 @@ export default defineConfig({ adapter: nodejs({ mode: 'standalone' }), - integrations: [solidJs(), prefetch(), sitemap({ + integrations: [solid(), prefetch(), sitemap({ i18n: { defaultLocale: "en", locales: { @@ -35,7 +34,11 @@ export default defineConfig({ config: { forward: ["dataLayer.push"] } - }), compressor(), compress()], + }), compress(), compressor({ + brotli: true, + gzip: true, + fileExtensions: [".html", ".xml", ".css", ".js", ".json", ".png", ".jpg", ".jpeg", ".webp", ".avif", ".ico", ".svg", ".jxl", ".xsl", ".woff2", ".woff", ".ttf", ".eot", ".otf", ".txt", ".md", ".webmanifest", ".mp4", ".webm", ".ogg", ".mp3", ".wav", ".flac", ".aac", ".m4a", ".oga", ".opus", ".svgz", ".zip", ".gz", ".tgz", ".tar", ".rar", ".7z", ".bz2", ".pdf", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".odt", ".ods", ".odp", ".csv", ".rtf", ".epub", ".mobi", ".apk", ".exe", ".swf", ".jar", ".gif", ".bmp", ".ico", ".tif", ".tiff", ".psd", ".ai", ".indd", ".webp", ".avif", ".svg", ".mpg", ".mp2", ".mpeg", ".mpe", ".mpv", ".ogg", ".m4p", ".m4v", ".avi", ".wmv", ".mov", ".qt", ".flv", ".swf", ".avchd", ".mkv", ".webm", ".mng", ".asf", ".wmv", ".avi", ".mp4", ".m4v", ".mpg", ".mpeg", ".mov", ".webm", ".flv", ".mng", ".asx", ".asf", ".wmv", ".avi", ".mp4", ".m4v", ".mpg", ".mpeg", ".mov", ".webm", ".flv", ".mng", ".asx", ".asf", ".wmv", ".avi", ".mp4", ".m4v", ".mpg", ".mpeg", ".mov", ".webm", ".flv", ".mng", ".asx", ".asf", ".wmv", ".avi", ".mp4", ".m4v", ".mpg", ".mpeg", ".mov", ".webm", ".flv", ".mng", ".asx", ".asf", ".wmv", ".svg", ".svgz", ".webp", ".avif", ".png", ".jpg", ".jpeg", ".gif", ".webp", ".avif", ".ico", ".tif", ".tiff", ".psd", ".raw", ".bmp"] + })], experimental: { //assets: true, //viewTransitions: true @@ -46,9 +49,6 @@ export default defineConfig({ output: "hybrid", site: "https://lindnerit.io/", compressHTML: true, - build: { - split: true - }, vite: { build: { modulePreload: true, diff --git a/package.json b/package.json index 5eb74c4..8f52596 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "@astrojs/prefetch": "^0.2.3", "@astrojs/rss": "^2.4.4", "@astrojs/sitemap": "^1.4.0", - "@astrojs/solid-js": "^2.2.1", + "@astrojs/solid-js": "^3.0.0", "@contentful/rich-text-html-renderer": "^16.1.1", "@contentful/rich-text-plain-text-renderer": "^16.0.6", "@contentful/rich-text-types": "^16.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 215babc..ea56363 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,8 +20,8 @@ dependencies: specifier: ^1.4.0 version: 1.4.0 '@astrojs/solid-js': - specifier: ^2.2.1 - version: 2.2.1(@babel/core@7.22.11)(solid-js@1.7.11) + specifier: ^3.0.0 + version: 3.0.0(solid-js@1.7.11)(vite@4.4.9) '@contentful/rich-text-html-renderer': specifier: ^16.1.1 version: 16.1.1 @@ -212,17 +212,16 @@ packages: zod: 3.22.2 dev: false - /@astrojs/solid-js@2.2.1(@babel/core@7.22.11)(solid-js@1.7.11): - resolution: {integrity: sha512-LJRKX1raHePOWE5lL7OjYvtap/S4fQoZLPB0pVw6RKUJtCeRIYD44x5DxFk52dFCkjnlVuWFlQkvtefT8kotcQ==} - engines: {node: '>=16.12.0'} + /@astrojs/solid-js@3.0.0(solid-js@1.7.11)(vite@4.4.9): + resolution: {integrity: sha512-3uRYfi4cvDYHLDOBZ4Qh+UE6hwNg+qliZhxitN3JptmnDG/Lqx7emLwT2wrNPXd44cCukPkFkSzSZFBxt+CBew==} + engines: {node: '>=18.14.1'} peerDependencies: solid-js: ^1.4.3 dependencies: - babel-preset-solid: 1.7.7(@babel/core@7.22.11) solid-js: 1.7.11 - vitefu: 0.2.4(vite@4.4.9) + vite-plugin-solid: 2.7.0(solid-js@1.7.11)(vite@4.4.9) transitivePeerDependencies: - - '@babel/core' + - supports-color - vite dev: false @@ -747,6 +746,16 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: false + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.11): + resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.22.11): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -1303,6 +1312,19 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: false + /@babel/plugin-transform-typescript@7.22.11(@babel/core@7.22.11): + resolution: {integrity: sha512-0E4/L+7gfvHub7wsbTv03oRtD69X31LByy44fGmFzbZScpupFByMcgCJ0VbBTkzyjSJKuRoGN8tcijOWKTmqOA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.11(@babel/core@7.22.11) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.11) + dev: false + /@babel/plugin-transform-unicode-escapes@7.22.10(@babel/core@7.22.11): resolution: {integrity: sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==} engines: {node: '>=6.9.0'} @@ -1475,6 +1497,20 @@ packages: '@babel/plugin-transform-react-pure-annotations': 7.22.5(@babel/core@7.22.11) dev: false + /@babel/preset-typescript@7.22.11(@babel/core@7.22.11): + resolution: {integrity: sha512-tWY5wyCZYBGY7IlalfKI1rLiGlIfnwsRHZqlky0HVv8qviwQ1Uo/05M6+s+TcTCVa6Bmoo2uJW5TMFX6Wa4qVg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.11 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.11) + '@babel/plugin-transform-modules-commonjs': 7.22.11(@babel/core@7.22.11) + '@babel/plugin-transform-typescript': 7.22.11(@babel/core@7.22.11) + dev: false + /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: false @@ -2204,7 +2240,7 @@ packages: engines: {node: '>=16'} hasBin: true dependencies: - '@types/node': 20.5.7 + '@types/node': 20.5.8 playwright-core: 1.37.1 optionalDependencies: fsevents: 2.3.2 @@ -2662,6 +2698,10 @@ packages: /@types/node@20.5.7: resolution: {integrity: sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==} + dev: false + + /@types/node@20.5.8: + resolution: {integrity: sha512-eajsR9aeljqNhK028VG0Wuw+OaY5LLxYmxeoXynIoE6jannr9/Ucd1LL0hSSoafk5LTYG+FfqsyGt81Q6Zkybw==} /@types/parse-json@4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} @@ -2674,7 +2714,7 @@ packages: /@types/resolve@1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 20.5.7 + '@types/node': 20.5.8 dev: false /@types/resolve@1.20.2: @@ -5050,6 +5090,11 @@ packages: call-bind: 1.0.2 dev: false + /is-what@4.1.15: + resolution: {integrity: sha512-uKua1wfy3Yt+YqsD6mTUEa2zSi3G1oPlqTflgaPJ7z63vUGN5pxFpnQfeSLMFnJDEsdvOtkp1rUWkYjB4YfhgA==} + engines: {node: '>=12.13'} + dev: false + /is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -5087,7 +5132,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.5.7 + '@types/node': 20.5.8 merge-stream: 2.0.0 supports-color: 7.2.0 dev: false @@ -5445,6 +5490,13 @@ packages: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} dev: false + /merge-anything@5.1.7: + resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} + engines: {node: '>=12.13'} + dependencies: + is-what: 4.1.15 + dev: false + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: false @@ -7255,6 +7307,17 @@ packages: seroval: 0.5.1 dev: false + /solid-refresh@0.5.3(solid-js@1.7.11): + resolution: {integrity: sha512-Otg5it5sjOdZbQZJnvo99TEBAr6J7PQ5AubZLNU6szZzg3RQQ5MX04oteBIIGDs0y2Qv8aXKm9e44V8z+UnFdw==} + peerDependencies: + solid-js: ^1.3 + dependencies: + '@babel/generator': 7.22.10 + '@babel/helper-module-imports': 7.22.5 + '@babel/types': 7.22.11 + solid-js: 1.7.11 + dev: false + /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -7863,6 +7926,25 @@ packages: vfile-message: 3.1.4 dev: false + /vite-plugin-solid@2.7.0(solid-js@1.7.11)(vite@4.4.9): + resolution: {integrity: sha512-avp/Jl5zOp/Itfo67xtDB2O61U7idviaIp4mLsjhCa13PjKNasz+IID0jYTyqUp9SFx6/PmBr6v4KgDppqompg==} + peerDependencies: + solid-js: ^1.7.2 + vite: ^3.0.0 || ^4.0.0 + dependencies: + '@babel/core': 7.22.11 + '@babel/preset-typescript': 7.22.11(@babel/core@7.22.11) + '@types/babel__core': 7.20.1 + babel-preset-solid: 1.7.7(@babel/core@7.22.11) + merge-anything: 5.1.7 + solid-js: 1.7.11 + solid-refresh: 0.5.3(solid-js@1.7.11) + vite: 4.4.9(sass@1.66.1) + vitefu: 0.2.4(vite@4.4.9) + transitivePeerDependencies: + - supports-color + dev: false + /vite@4.4.9(sass@1.66.1): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} diff --git a/src/components/BlogSection.astro b/src/components/BlogSection.astro index 24824bc..c262a49 100644 --- a/src/components/BlogSection.astro +++ b/src/components/BlogSection.astro @@ -1,5 +1,6 @@ --- -import { BlogPost, BlogPostSkeleton, contentfulClient } from "../contentful"; +import type { BlogPost, BlogPostSkeleton } from "../contentful"; +import { contentfulClient } from "../contentful"; import BlogCard from "./BlogCard.astro"; import { useTranslations } from "../i18n"; const { language } = Astro.params; diff --git a/src/components/CookieBanner/style.scss b/src/components/CookieBanner/style.scss index 991c6a5..ce5e7f3 100644 --- a/src/components/CookieBanner/style.scss +++ b/src/components/CookieBanner/style.scss @@ -11,6 +11,7 @@ left: 0; right: 0; background-color: white; + color: black; padding: 2rem; gap: 2rem; box-shadow: 0px 4px 9px #171a1f, 0px 0px 2px #171a1f; diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index b4ecabc..a41ed43 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -200,7 +200,7 @@ if(Astro.site) { - + diff --git a/src/pages/[language]/blog/[category]/[slug].astro b/src/pages/[language]/blog/[category]/[slug].astro index 6c7f947..ff2f906 100644 --- a/src/pages/[language]/blog/[category]/[slug].astro +++ b/src/pages/[language]/blog/[category]/[slug].astro @@ -1,11 +1,8 @@ --- export const prerender = false; -import { - contentfulClient, - BlogPostSkeleton, - BlogPost, -} from "../../../../contentful"; +import { contentfulClient } from "../../../../contentful"; +import type { BlogPostSkeleton, BlogPost } from "../../../../contentful"; import { documentToHtmlString } from "@contentful/rich-text-html-renderer"; import BaseLayout from "../../../../layouts/BaseLayout.astro"; import Heading from "../../../../components/Heading.astro"; diff --git a/src/pages/[language]/blog/index.astro b/src/pages/[language]/blog/index.astro index 00fdd1e..309b186 100644 --- a/src/pages/[language]/blog/index.astro +++ b/src/pages/[language]/blog/index.astro @@ -10,13 +10,13 @@ import BaseLayout from "../../../layouts/BaseLayout.astro"; import HookSection from "../../../components/HookSection.astro"; import { useTranslations } from "../../../i18n"; import { MetaBuilder } from "../../../meta"; -import { +import type { BlogCategory, BlogCategorySkeleton, BlogPost, - BlogPostSkeleton, - contentfulClient, + BlogPostSkeleton } from "../../../contentful"; +import { contentfulClient } from "../../../contentful"; import BlogCard from "../../../components/BlogCard.astro"; const { language } = Astro.params; diff --git a/src/pages/[language]/blog/rss.xml.ts b/src/pages/[language]/blog/rss.xml.ts index 6489c83..1aa3917 100644 --- a/src/pages/[language]/blog/rss.xml.ts +++ b/src/pages/[language]/blog/rss.xml.ts @@ -1,9 +1,11 @@ import { getStaticPaths } from "../../../paramHelper"; export { getStaticPaths }; -import { BlogPost, BlogPostSkeleton, contentfulClient } from '../../../contentful'; +import type { BlogPost, BlogPostSkeleton } from '../../../contentful'; +import { contentfulClient } from '../../../contentful'; import type { APIRoute } from 'astro'; -import rss, { RSSFeedItem } from '@astrojs/rss'; +import rss from '@astrojs/rss'; +import type { RSSFeedItem } from '@astrojs/rss'; import { documentToPlainTextString } from "@contentful/rich-text-plain-text-renderer"; export const get: APIRoute = async ({ params }) => { diff --git a/src/pages/[language]/privacy-policy.astro b/src/pages/[language]/privacy-policy.astro index db668f7..361171d 100644 --- a/src/pages/[language]/privacy-policy.astro +++ b/src/pages/[language]/privacy-policy.astro @@ -3,11 +3,8 @@ //export { getStaticPaths }; export const prerender = false; -import { - ContentPageSkeleton, - ContentPage, - contentfulClient, -} from "../../contentful"; +import type { ContentPageSkeleton, ContentPage } from "../../contentful"; +import { contentfulClient } from "../../contentful"; import { documentToHtmlString } from "@contentful/rich-text-html-renderer"; import BaseLayout from "../../layouts/BaseLayout.astro"; import Heading from "../../components/Heading.astro"; diff --git a/src/pages/[language]/terms-of-service.astro b/src/pages/[language]/terms-of-service.astro index 066ff5e..2d70313 100644 --- a/src/pages/[language]/terms-of-service.astro +++ b/src/pages/[language]/terms-of-service.astro @@ -3,11 +3,8 @@ //export { getStaticPaths }; export const prerender = false; -import { - ContentPageSkeleton, - ContentPage, - contentfulClient, -} from "../../contentful"; +import type { ContentPageSkeleton, ContentPage } from "../../contentful"; +import { contentfulClient } from "../../contentful"; import { documentToHtmlString } from "@contentful/rich-text-html-renderer"; import BaseLayout from "../../layouts/BaseLayout.astro"; import Heading from "../../components/Heading.astro"; diff --git a/src/pages/[language]/web-design/index.astro b/src/pages/[language]/web-design/index.astro index 8f79917..57a34a6 100644 --- a/src/pages/[language]/web-design/index.astro +++ b/src/pages/[language]/web-design/index.astro @@ -140,7 +140,7 @@ const meta = metaBuilder.create(); {t("webDesign.designrush") as string}{t("webDesign.designrush") as string} diff --git a/tsconfig.json b/tsconfig.json index 6d450d8..48686f0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,6 +2,14 @@ "extends": "astro/tsconfigs/strictest", "compilerOptions": { "jsx": "preserve", - "jsxImportSource": "solid-js" + "jsxImportSource": "solid-js", + "paths": { + "@components/*": [ + "src/components/*" + ], + "@layouts/*": [ + "src/layouts/*" + ], + } } } \ No newline at end of file