Skip to content

Commit e6faf8c

Browse files
committed
fix: infer type of getStaticPaths
1 parent 610fa12 commit e6faf8c

File tree

8 files changed

+28
-12
lines changed

8 files changed

+28
-12
lines changed

Diff for: src/components/Header.astro

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
interface Props {}
33
44
import { useTranslations } from "../i18n/utils";
5+
import type { Params } from "../i18n/utils";
56
import { Image } from "astro:assets";
67
import aux from "../../public/aux.svg";
78
8-
const { lang } = Astro.params;
9+
const { lang } = Astro.params as Params;
910
const translation = useTranslations(lang);
1011
---
1112

Diff for: src/components/home/Goals.astro

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
---
22
import { useTranslations } from "../../i18n/utils";
3+
import type { Params } from "../../i18n/utils";
34
4-
const { lang } = Astro.params;
5+
const { lang } = Astro.params as Params;
56
const translation = useTranslations(lang);
67
---
78

Diff for: src/components/home/Hero.astro

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
import { useTranslations } from "../../i18n/utils";
33
import { Image } from "astro:assets";
44
import aux from "../../../public/aux.svg";
5+
import type { Params } from "../../i18n/utils";
56
6-
const { lang } = Astro.params;
7+
const { lang } = Astro.params as Params;
78
const translation = useTranslations(lang);
89
---
910

Diff for: src/components/home/Roadmap.astro

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
---
22
import { useTranslations } from "../../i18n/utils";
3+
import type { Params } from "../../i18n/utils";
34
4-
const { lang } = Astro.params;
5+
const { lang } = Astro.params as Params;
56
const translation = useTranslations(lang);
67
---
78

Diff for: src/components/home/Values.astro

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
---
22
import { useTranslations } from "../../i18n/utils";
3+
import type { Params } from "../../i18n/utils";
34
4-
const { lang } = Astro.params;
5+
const { lang } = Astro.params as Params;
56
const translation = useTranslations(lang);
67
---
78

Diff for: src/i18n/utils.ts

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,21 @@
1-
import { ui, defaultLang } from "./ui";
1+
import { ui, defaultLang, languages } from "./ui";
2+
import type {
3+
InferGetStaticParamsType,
4+
InferGetStaticPropsType,
5+
GetStaticPaths,
6+
} from "astro";
27

38
export function useTranslations(lang: keyof typeof ui) {
49
return function t(key: keyof (typeof ui)[typeof defaultLang]) {
510
return ui[lang][key] || ui[defaultLang][key];
611
};
712
}
13+
14+
export const getStaticPaths = (async () => {
15+
return Object.keys(languages).map((name) => ({
16+
params: { lang: name as keyof typeof languages },
17+
}));
18+
}) satisfies GetStaticPaths;
19+
20+
export type Params = InferGetStaticParamsType<typeof getStaticPaths>;
21+
export type Props = InferGetStaticPropsType<typeof getStaticPaths>;

Diff for: src/layouts/Layout.astro

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
---
22
import Header from "../components/Header.astro";
3+
import type { Params } from "../i18n/utils";
34
45
interface Props {
56
title: string;
67
}
78
89
const { title } = Astro.props;
9-
const { lang } = Astro.params;
10+
const { lang } = Astro.params as Params;
1011
---
1112

1213
<!doctype html>

Diff for: src/pages/[lang]/index.astro

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
---
2-
import { languages } from "../../i18n/ui";
32
import Layout from "../../layouts/Layout.astro";
43
import Home from "../../components/home/Home.astro";
5-
6-
export async function getStaticPaths() {
7-
return Object.keys(languages).map((name) => ({ params: { lang: name } }));
8-
}
4+
export { getStaticPaths } from "../../i18n/utils";
95
---
106

117
<Layout title="auxolotl.org">

0 commit comments

Comments
 (0)