From 53d6f57699c4417ed9545ba8d7a678254664a7e7 Mon Sep 17 00:00:00 2001 From: Jake Jarvis Date: Mon, 7 Apr 2025 12:11:04 -0400 Subject: [PATCH] trim some unnecessary dependencies --- app/cli/page.mdx | 2 +- app/not-found.tsx | 14 +- app/notes/[slug]/counter.tsx | 6 +- app/projects/page.tsx | 72 ++-- components/Header/Header.tsx | 5 +- components/Heading/Heading.tsx | 2 +- components/HeadingAnchor/HeadingAnchor.tsx | 7 +- components/Link/Link.module.css | 15 +- components/Link/Link.tsx | 7 +- components/MenuItem/MenuItem.module.css | 2 +- components/MenuItem/MenuItem.tsx | 5 +- components/Video/Video.tsx | 4 +- lib/helpers/build-feed.ts | 21 +- lib/helpers/posts.ts | 4 +- next.config.ts | 3 +- package.json | 17 +- pnpm-lock.yaml | 364 ++++++++++----------- tsconfig.json | 2 +- global.d.ts => webpack.d.ts | 4 - 19 files changed, 256 insertions(+), 300 deletions(-) rename global.d.ts => webpack.d.ts (93%) diff --git a/app/cli/page.mdx b/app/cli/page.mdx index 03526289..bcf754d6 100644 --- a/app/cli/page.mdx +++ b/app/cli/page.mdx @@ -35,4 +35,4 @@ npx @jakejarvis/cli ## License -MIT © [Jake Jarvis](https://jarv.is/), [Sindre Sorhus](https://sindresorhus.com/) +MIT © [Jake Jarvis](https://jarv.is/), [Sindre Sorhus](https://sindresorhus.com/) diff --git a/app/not-found.tsx b/app/not-found.tsx index 4124ace4..9d48b4b5 100644 --- a/app/not-found.tsx +++ b/app/not-found.tsx @@ -15,13 +15,17 @@ export const metadata: Metadata = { const Page = () => { return ( -
-
+ ); }; diff --git a/app/notes/[slug]/counter.tsx b/app/notes/[slug]/counter.tsx index c596029d..c3d61cdf 100644 --- a/app/notes/[slug]/counter.tsx +++ b/app/notes/[slug]/counter.tsx @@ -1,7 +1,7 @@ import { connection } from "next/server"; -import commaNumber from "comma-number"; import CountUp from "../../../components/CountUp"; import redis from "../../../lib/helpers/redis"; +import { siteLocale } from "../../../lib/config"; const HitCounter = async ({ slug }: { slug: string }) => { await connection(); @@ -16,8 +16,8 @@ const HitCounter = async ({ slug }: { slug: string }) => { // we have data! return ( - - + + ); } catch (error) { diff --git a/app/projects/page.tsx b/app/projects/page.tsx index 153a529b..04b849e8 100644 --- a/app/projects/page.tsx +++ b/app/projects/page.tsx @@ -1,12 +1,12 @@ +import { notFound } from "next/navigation"; import { graphql } from "@octokit/graphql"; -import commaNumber from "comma-number"; import { GitForkIcon, StarIcon } from "lucide-react"; import PageTitle from "../../components/PageTitle"; import Link from "../../components/Link"; import RelativeTime from "../../components/RelativeTime"; import { addMetadata } from "../../lib/helpers/metadata"; import * as config from "../../lib/config"; -import type { User, Repository } from "@octokit/graphql-schema"; +import type { User } from "@octokit/graphql-schema"; import styles from "./page.module.css"; @@ -18,25 +18,13 @@ export const metadata = addMetadata({ }, }); -type Project = { - name: string; - url: string; - description?: string; - language?: { - name: string; - color?: string; - }; - stars?: number; - forks?: number; - updatedAt: string; -}; - -const getRepos = async (): Promise => { +const getRepos = async () => { // don't fail the entire site build if the required API key for this page is missing if (!process.env.GITHUB_TOKEN) { - console.warn(`ERROR: I can't fetch any GitHub projects without "GITHUB_TOKEN" set! Skipping for now...`); + console.warn(`ERROR: I can't fetch any GitHub projects without "GITHUB_TOKEN" set! Disabling projects page.`); - return null; + // just return a 404 since this page would be blank anyways + notFound(); } // https://docs.github.com/en/graphql/reference/objects#repository @@ -95,19 +83,7 @@ const getRepos = async (): Promise => { } ); - const results = user.repositories.edges as Array<{ node: Repository }>; - - const repos = results.map(({ node: repo }) => ({ - name: repo.name, - url: repo.url, - description: repo.description as string, - updatedAt: repo.pushedAt, - stars: repo.stargazerCount, - forks: repo.forkCount, - language: repo.primaryLanguage as Project["language"], - })); - - return repos; + return user.repositories.edges?.map((edge) => edge!.node); }; const Page = async () => { @@ -119,50 +95,50 @@ const Page = async () => {
{repos?.map((repo) => ( -
- - {repo.name} +
+ + {repo!.name} - {repo.description &&

{repo.description}

} + {repo!.description &&

{repo!.description}

}
- {repo.language && ( + {repo!.primaryLanguage && (
- {repo.language.color && ( + {repo!.primaryLanguage.color && ( )} - {repo.language.name} + {repo!.primaryLanguage.name}
)} - {repo.stars && repo.stars > 0 && ( + {repo!.stargazerCount > 0 && (
- {commaNumber(repo.stars)} + {Intl.NumberFormat(config.siteLocale || "en-US").format(repo!.stargazerCount)}
)} - {repo.forks && repo.forks > 0 && ( + {repo!.forkCount > 0 && (
- {commaNumber(repo.forks)} + {Intl.NumberFormat(config.siteLocale || "en-US").format(repo!.forkCount)}
)} @@ -177,7 +153,7 @@ const Page = async () => { }} /> - Updated + Updated
diff --git a/components/Header/Header.tsx b/components/Header/Header.tsx index 74a283ab..998c5f9b 100644 --- a/components/Header/Header.tsx +++ b/components/Header/Header.tsx @@ -15,15 +15,14 @@ const Header = ({ className, ...rest }: HeaderProps) => { return (