From c9e77b24b83296b03c0aa179b383eab5155962d1 Mon Sep 17 00:00:00 2001 From: rpdeshaies Date: Wed, 4 Dec 2024 08:50:48 -0500 Subject: [PATCH 1/9] fix: update dependencies for prettier, tailwindcss, and knip --- bun.lockb | Bin 345605 -> 346223 bytes package.json | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bun.lockb b/bun.lockb index 2ae21b78010ed1903d55cf20b4996e4c33324cdf..cbb5351d74e9e00791f96f27a67e52883d13959b 100755 GIT binary patch delta 44972 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 Date: Wed, 4 Dec 2024 08:53:59 -0500 Subject: [PATCH 2/9] feat: codeowners --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..9b360aa --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +@RPDeshaies From 040b316b89c118d392ed2306a8d663d9e94d70d0 Mon Sep 17 00:00:00 2001 From: rpdeshaies Date: Wed, 4 Dec 2024 08:56:47 -0500 Subject: [PATCH 3/9] feat: ci --- .github/workflows/ci.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..0bf357c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,27 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: + - "**" + +jobs: + build: + runs-on: ubuntu-latest + steps: + # Checkout + - name: Checkout + uses: actions/checkout@v2 + # Use Bun + - name: Use Bun + uses: oven-sh/setup-bun@v1 + with: + bun-version: 1.1.38 + # Install + - name: Install + run: bun install + # Build + - name: Build + run: bun run build From 1924219713a520acb3d8fe426688651e9dbf0d0f Mon Sep 17 00:00:00 2001 From: rpdeshaies Date: Wed, 4 Dec 2024 08:57:23 -0500 Subject: [PATCH 4/9] feat: keeper link --- src/components/server/Footer/Footer.astro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/server/Footer/Footer.astro b/src/components/server/Footer/Footer.astro index c8b9560..6357e45 100644 --- a/src/components/server/Footer/Footer.astro +++ b/src/components/server/Footer/Footer.astro @@ -11,7 +11,7 @@ const links: Record> = { Discord: "https://farirpgs.com/discord", Bluesky: "https://farirpgs.com/bluesky", Threads: "https://farirpgs.com/threads", - GitHub: "https://github.com/farirpgs", + GitHub: "https://github.com/farirpgs/keeper", }, Miscellaneous: { Contact: "https://farirpgs.com/contact", From 7fcd49db8fc7b2d91f11e5a86a33f1884940288d Mon Sep 17 00:00:00 2001 From: rpdeshaies Date: Wed, 4 Dec 2024 09:06:46 -0500 Subject: [PATCH 5/9] refactor: replace 'slug' with 'id' in API calls and routes --- src/content.config.ts | 2 +- src/domains/app-url/AppUrl.tsx | 26 ++++++++-------- src/domains/dl/DLAstro.tsx | 30 +++++++++---------- .../getGameWithCreator/[...path]/data.json.ts | 2 +- src/pages/creators/[creatorSlug]/index.astro | 2 +- .../[creatorSlug]/[gameSlug]/index.astro | 6 ++-- .../og/creators/[creatorSlug]/image.png.ts | 2 +- .../[gameSlug]/[assetSlug]/image.png.ts | 2 +- .../[creatorSlug]/[gameSlug]/image.png.ts | 4 +-- .../[creatorSlug]/[gameSlug]/image.png.ts | 2 +- .../[resourceSlug]/[pageSlug]/image.png.ts | 2 +- .../[creatorSlug]/[resourceSlug]/image.png.ts | 2 +- .../play/[creatorSlug]/[gameSlug]/index.astro | 6 ++-- .../[resourceSlug]/[pageSlug]/index.astro | 2 +- .../[creatorSlug]/[resourceSlug]/index.astro | 2 +- src/pages/search/index.astro | 4 +-- src/routes/CreatorRoute/CreatorRoute.tsx | 4 +-- src/routes/GameRoute/GameRoute.tsx | 6 ++-- .../components/CreateNewCampaignButton.tsx | 6 ++-- src/routes/HomeRoute/HomeRoute.tsx | 4 +-- .../PlayCampaignRoute/PlayCampaignRoute.tsx | 4 +-- .../PreviewGameAssetRoute.tsx | 2 +- src/routes/ResourceRoute/ResourceRoute.tsx | 16 +++++----- 23 files changed, 69 insertions(+), 69 deletions(-) diff --git a/src/content.config.ts b/src/content.config.ts index 74bd231..371518b 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -71,7 +71,7 @@ export const collections = { weight: z.number().optional().default(0), license: z.string().optional(), _optimizedImageSrc: z.string().optional(), - _slugWithoutLocale: z.string().optional(), + _idWithoutLocale: z.string().optional(), _locale: z.string().optional(), }), }), diff --git a/src/domains/app-url/AppUrl.tsx b/src/domains/app-url/AppUrl.tsx index 22164d1..805c5ec 100644 --- a/src/domains/app-url/AppUrl.tsx +++ b/src/domains/app-url/AppUrl.tsx @@ -20,30 +20,30 @@ export const AppUrl = { patreon() { return "https://www.patreon.com/bePatron?u=43408921"; }, - creator(props: { slug: CollectionEntry<"creators">["id"] }) { - return `/creators/${props.slug}/`; + creator(props: { id: CollectionEntry<"creators">["id"] }) { + return `/creators/${props.id}/`; }, - game(props: { slug: CollectionEntry<"games">["id"] }) { - return `/games/${props.slug}/`; + game(props: { id: CollectionEntry<"games">["id"] }) { + return `/games/${props.id}/`; }, - resource(props: { slug: CollectionEntry<"resources">["id"] }) { - return `/resources/${props.slug}/`; + resource(props: { id: CollectionEntry<"resources">["id"] }) { + return `/resources/${props.id}/`; }, resourcePage(props: { - slug: CollectionEntry<"resources">["id"]; + id: CollectionEntry<"resources">["id"]; page: string; }) { const [creatorSegment, resourceSegment, languageSegment] = - props.slug.split("/"); + props.id.split("/"); const pageSegment = props.page ? `${props.page}/` : ""; if (languageSegment) { return `/resources/${creatorSegment}/${resourceSegment}.${languageSegment}/${pageSegment}`; } - return `/resources/${props.slug}/${pageSegment}`; + return `/resources/${props.id}/${pageSegment}`; }, - asset(props: { slug: CollectionEntry<"assets">["id"] }) { - return `/games/${props.slug}/`; + asset(props: { id: CollectionEntry<"assets">["id"] }) { + return `/games/${props.id}/`; }, search(props: { query?: string; type?: SearchType }) { const searchParams = new URLSearchParams(); @@ -56,9 +56,9 @@ export const AppUrl = { return `/search/?${searchParams.toString()}`; }, githubResource(props: { - slug: CollectionEntry<"resources">["id"]; + id: CollectionEntry<"resources">["id"]; page: string; }) { - return `https://github.com/farirpgs/keeper/tree/main/src/content/resources/${props.slug}/index.mdx#${props.page}/`; + return `https://github.com/farirpgs/keeper/tree/main/src/content/resources/${props.id}/index.mdx#${props.page}/`; }, }; diff --git a/src/domains/dl/DLAstro.tsx b/src/domains/dl/DLAstro.tsx index d6b3f97..5a3e802 100644 --- a/src/domains/dl/DLAstro.tsx +++ b/src/domains/dl/DLAstro.tsx @@ -7,11 +7,11 @@ export const DLAstro = { return { creators }; }, async getCreator(props: { - slug: CollectionEntry<"creators">["id"]; + id: CollectionEntry<"creators">["id"]; includeGames?: boolean; includeResources?: boolean; }) { - const creator = await getEntry("creators", props.slug); + const creator = await getEntry("creators", props.id); let games: Array> = []; let resources: Array> = []; @@ -41,10 +41,10 @@ export const DLAstro = { return { games }; }, async getGame(props: { - slug: CollectionEntry<"games">["id"]; + id: CollectionEntry<"games">["id"]; includeCreator?: boolean; }) { - const game = await getEntry("games", props.slug); + const game = await getEntry("games", props.id); if (props.includeCreator) { const creator = await getEntry("creators", game.data.creator.id); @@ -78,9 +78,9 @@ export const DLAstro = { }, // ASSET async getAssetWithGameAndCreator(props: { - slug: CollectionEntry<"assets">["id"]; + id: CollectionEntry<"assets">["id"]; }) { - const asset = await getEntry("assets", props.slug); + const asset = await getEntry("assets", props.id); const game = await getEntry(asset.data.game); const creator = await getEntry(game.data.creator); @@ -90,30 +90,30 @@ export const DLAstro = { creator: creator!, }; }, - async getAssetsForGame(props: { slug: CollectionEntry<"games">["id"] }) { + async getAssetsForGame(props: { id: CollectionEntry<"games">["id"] }) { const assets = await getCollection("assets", ({ data }) => { - return data.game.id === props.slug; + return data.game.id === props.id; }); return { assets }; }, // RESOURCE async getResource(props: { - slug: CollectionEntry<"resources">["id"]; + id: CollectionEntry<"resources">["id"]; includeCreator?: boolean; }) { - const [creatorSlug, resourceSlug, locale] = props.slug.split("/"); - const slugWithoutLocale = [creatorSlug, resourceSlug].join("/"); + const [creatorId, resourceId, locale] = props.id.split("/"); + const idWithoutLocale = [creatorId, resourceId].join("/"); const currentLocale = locale || "en"; - const resource = await getEntry("resources", props.slug); + const resource = await getEntry("resources", props.id); const translations = await getCollection("resources", (element) => { - return element.id.startsWith(slugWithoutLocale); + return element.id.startsWith(idWithoutLocale); }); const locales = translations .map((element) => { const language = element.id - .replace(slugWithoutLocale, "") + .replace(idWithoutLocale, "") .replace("/", ""); return language || "en"; }) @@ -129,7 +129,7 @@ export const DLAstro = { }); resource.data._locale = currentLocale; - resource.data._slugWithoutLocale = slugWithoutLocale; + resource.data._idWithoutLocale = idWithoutLocale; if (props.includeCreator) { const creator = await getEntry("creators", resource.data.creator.id); diff --git a/src/pages/api/getGameWithCreator/[...path]/data.json.ts b/src/pages/api/getGameWithCreator/[...path]/data.json.ts index 03ce7a8..509fb17 100644 --- a/src/pages/api/getGameWithCreator/[...path]/data.json.ts +++ b/src/pages/api/getGameWithCreator/[...path]/data.json.ts @@ -12,7 +12,7 @@ export const GET: APIRoute = async ({ params, request }) => { .parse(params) as Params; const game = await DLAstro.getGame({ - slug: parsedParams.path, + id: parsedParams.path, includeCreator: true, }); diff --git a/src/pages/creators/[creatorSlug]/index.astro b/src/pages/creators/[creatorSlug]/index.astro index 191eff1..ce0c47c 100644 --- a/src/pages/creators/[creatorSlug]/index.astro +++ b/src/pages/creators/[creatorSlug]/index.astro @@ -18,7 +18,7 @@ const props = Astro.props as Props; const params = Astro.params as Params; const { creator, games, resources } = await DLAstro.getCreator({ - slug: params.creatorSlug, + id: params.creatorSlug, includeGames: true, includeResources: true, }); diff --git a/src/pages/games/[creatorSlug]/[gameSlug]/index.astro b/src/pages/games/[creatorSlug]/[gameSlug]/index.astro index 7e4ae72..060f3e2 100644 --- a/src/pages/games/[creatorSlug]/[gameSlug]/index.astro +++ b/src/pages/games/[creatorSlug]/[gameSlug]/index.astro @@ -23,14 +23,14 @@ export type Props = InferGetStaticPropsType; const props = Astro.props as Props; const params = Astro.params as Params; -const { creator } = await DLAstro.getCreator({ slug: params.creatorSlug }); +const { creator } = await DLAstro.getCreator({ id: params.creatorSlug }); const { game } = await DLAstro.getGame({ - slug: (params.creatorSlug + + id: (params.creatorSlug + "/" + params.gameSlug) as CollectionEntry<"games">["id"], }); const { assets } = await DLAstro.getAssetsForGame({ - slug: (params.creatorSlug + + id: (params.creatorSlug + "/" + params.gameSlug) as CollectionEntry<"games">["id"], }); diff --git a/src/pages/og/creators/[creatorSlug]/image.png.ts b/src/pages/og/creators/[creatorSlug]/image.png.ts index 77a0ddb..0b2960a 100644 --- a/src/pages/og/creators/[creatorSlug]/image.png.ts +++ b/src/pages/og/creators/[creatorSlug]/image.png.ts @@ -13,7 +13,7 @@ export const GET: APIRoute = async (ctx) => { const params = ctx.params as Params; const { creator } = await DLAstro.getCreator({ - slug: params.creatorSlug, + id: params.creatorSlug, }); return await renderOgImage({ diff --git a/src/pages/og/games/[creatorSlug]/[gameSlug]/[assetSlug]/image.png.ts b/src/pages/og/games/[creatorSlug]/[gameSlug]/[assetSlug]/image.png.ts index bbaa89d..4a58f2a 100644 --- a/src/pages/og/games/[creatorSlug]/[gameSlug]/[assetSlug]/image.png.ts +++ b/src/pages/og/games/[creatorSlug]/[gameSlug]/[assetSlug]/image.png.ts @@ -15,7 +15,7 @@ export const GET: APIRoute = async (ctx) => { const params = ctx.params as Params; const { asset, game, creator } = await DLAstro.getAssetWithGameAndCreator({ - slug: `${params.creatorSlug}/${params.gameSlug}/${params.assetSlug}` as any, + id: `${params.creatorSlug}/${params.gameSlug}/${params.assetSlug}` as any, }); const backgroundImage = await getImage({ diff --git a/src/pages/og/games/[creatorSlug]/[gameSlug]/image.png.ts b/src/pages/og/games/[creatorSlug]/[gameSlug]/image.png.ts index 71d9fa0..527a6f2 100644 --- a/src/pages/og/games/[creatorSlug]/[gameSlug]/image.png.ts +++ b/src/pages/og/games/[creatorSlug]/[gameSlug]/image.png.ts @@ -14,9 +14,9 @@ export type Params = { export const GET: APIRoute = async (ctx) => { const params = ctx.params as Params; - const { creator } = await DLAstro.getCreator({ slug: params.creatorSlug }); + const { creator } = await DLAstro.getCreator({ id: params.creatorSlug }); const { game } = await DLAstro.getGame({ - slug: `${params.creatorSlug}/${params.gameSlug}` as any, + id: `${params.creatorSlug}/${params.gameSlug}` as any, }); const backgroundImage = await getImage({ diff --git a/src/pages/og/play/[creatorSlug]/[gameSlug]/image.png.ts b/src/pages/og/play/[creatorSlug]/[gameSlug]/image.png.ts index bf44a99..995a69a 100644 --- a/src/pages/og/play/[creatorSlug]/[gameSlug]/image.png.ts +++ b/src/pages/og/play/[creatorSlug]/[gameSlug]/image.png.ts @@ -14,7 +14,7 @@ export const GET: APIRoute = async (ctx) => { const params = ctx.params as Params; const { game, creator } = await DLAstro.getGame({ - slug: `${params.creatorSlug}/${params.gameSlug}` as any, + id: `${params.creatorSlug}/${params.gameSlug}` as any, includeCreator: true, }); diff --git a/src/pages/og/resources/[creatorSlug]/[resourceSlug]/[pageSlug]/image.png.ts b/src/pages/og/resources/[creatorSlug]/[resourceSlug]/[pageSlug]/image.png.ts index 0f92b10..db99c56 100644 --- a/src/pages/og/resources/[creatorSlug]/[resourceSlug]/[pageSlug]/image.png.ts +++ b/src/pages/og/resources/[creatorSlug]/[resourceSlug]/[pageSlug]/image.png.ts @@ -17,7 +17,7 @@ export const GET: APIRoute = async (ctx) => { const params = ctx.params as Params; const { creator, resource } = await DLAstro.getResource({ - slug: `${params.creatorSlug}/${params.resourceSlug}` as any, + id: `${params.creatorSlug}/${params.resourceSlug}` as any, includeCreator: true, }); diff --git a/src/pages/og/resources/[creatorSlug]/[resourceSlug]/image.png.ts b/src/pages/og/resources/[creatorSlug]/[resourceSlug]/image.png.ts index 45d05b5..3dd0379 100644 --- a/src/pages/og/resources/[creatorSlug]/[resourceSlug]/image.png.ts +++ b/src/pages/og/resources/[creatorSlug]/[resourceSlug]/image.png.ts @@ -16,7 +16,7 @@ export const GET: APIRoute = async (ctx) => { const params = ctx.params as Params; const { creator, resource } = await DLAstro.getResource({ - slug: `${params.creatorSlug}/${params.resourceSlug}` as any, + id: `${params.creatorSlug}/${params.resourceSlug}` as any, includeCreator: true, }); diff --git a/src/pages/play/[creatorSlug]/[gameSlug]/index.astro b/src/pages/play/[creatorSlug]/[gameSlug]/index.astro index 931bc30..d78ab6e 100644 --- a/src/pages/play/[creatorSlug]/[gameSlug]/index.astro +++ b/src/pages/play/[creatorSlug]/[gameSlug]/index.astro @@ -17,14 +17,14 @@ export type Props = InferGetStaticPropsType; const props = Astro.props as Props; const params = Astro.params as Params; -const { creator } = await DLAstro.getCreator({ slug: params.creatorSlug }); +const { creator } = await DLAstro.getCreator({ id: params.creatorSlug }); const { game } = await DLAstro.getGame({ - slug: (params.creatorSlug + + id: (params.creatorSlug + "/" + params.gameSlug) as CollectionEntry<"games">["id"], }); const { assets } = await DLAstro.getAssetsForGame({ - slug: (params.creatorSlug + + id: (params.creatorSlug + "/" + params.gameSlug) as CollectionEntry<"games">["id"], }); diff --git a/src/pages/resources/[creatorSlug]/[resourceSlug]/[pageSlug]/index.astro b/src/pages/resources/[creatorSlug]/[resourceSlug]/[pageSlug]/index.astro index 890ae52..89f7bec 100644 --- a/src/pages/resources/[creatorSlug]/[resourceSlug]/[pageSlug]/index.astro +++ b/src/pages/resources/[creatorSlug]/[resourceSlug]/[pageSlug]/index.astro @@ -25,7 +25,7 @@ const resourceSlug = [ ].join("/") as CollectionEntry<"resources">["id"]; const { creator, resource, locales } = await DLAstro.getResource({ - slug: resourceSlug, + id: resourceSlug, includeCreator: true, }); diff --git a/src/pages/resources/[creatorSlug]/[resourceSlug]/index.astro b/src/pages/resources/[creatorSlug]/[resourceSlug]/index.astro index d2b17cd..783d0fa 100644 --- a/src/pages/resources/[creatorSlug]/[resourceSlug]/index.astro +++ b/src/pages/resources/[creatorSlug]/[resourceSlug]/index.astro @@ -24,7 +24,7 @@ const resourceSlug = [ ].join("/") as CollectionEntry<"resources">["id"]; const { creator, resource, locales } = await DLAstro.getResource({ - slug: resourceSlug, + id: resourceSlug, includeCreator: true, }); diff --git a/src/pages/search/index.astro b/src/pages/search/index.astro index 5cedc8a..d4221ec 100644 --- a/src/pages/search/index.astro +++ b/src/pages/search/index.astro @@ -26,7 +26,7 @@ for (const item of games) { imageSrc: "", type: "games", href: AppUrl.game({ - slug: item.game.id, + id: item.game.id, }), weight: item.game.data.weight, }); @@ -45,7 +45,7 @@ for (const item of resources) { imageSrc: "", type: "resources", href: AppUrl.resource({ - slug: item.resource.id, + id: item.resource.id, }), weight: item.resource.data.weight, }); diff --git a/src/routes/CreatorRoute/CreatorRoute.tsx b/src/routes/CreatorRoute/CreatorRoute.tsx index 3693498..a460dbc 100644 --- a/src/routes/CreatorRoute/CreatorRoute.tsx +++ b/src/routes/CreatorRoute/CreatorRoute.tsx @@ -54,7 +54,7 @@ export function CreatorRoute(props: { {props.resources.map((resource) => ( ( {props.gameCover} - + — OR — @@ -95,7 +95,7 @@ export function GameRoute(props: { > {props.assets.map((asset) => ( - + - + {false && ( + + + + )}