Skip to content

Commit 6a0402f

Browse files
committed
Happy types, happy life
1 parent 39ab546 commit 6a0402f

File tree

26 files changed

+121
-113
lines changed

26 files changed

+121
-113
lines changed

frontend/components/CategoryCard.vue

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,7 @@
3232
const {
3333
category,
3434
categoryIndex,
35-
} = defineProps({
36-
category: { required: true, type: Object as Category },
37-
categoryIndex: { required: true, type: Number },
38-
})
35+
} = defineProps<{ category: Category, categoryIndex: number }>();
3936
4037
const route = useRoute()
4138

frontend/components/HeaderBar.vue

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,12 @@ const {
7979
enableSubheader,
8080
subheaderTabs,
8181
subheaderTabSelection,
82-
} = defineProps({
83-
subheaderTitle: { type: String },
84-
enableSubheader: { type: Boolean },
85-
subheaderTabs: { type: Array as Array<object> },
86-
subheaderTabSelection: { type: String },
87-
})
82+
} = defineProps<{
83+
subheaderTitle?: string|null,
84+
enableSubheader?: Boolean|null,
85+
subheaderTabs?: Array<HeaderTab>|Readonly<Array<HeaderTab>>|null,
86+
subheaderTabSelection?: string|null,
87+
}>();
8888
8989
const headers = [{ id: 0 }, { id: 1, spacer: true }]
9090
</script>

frontend/components/HomePage.vue

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
<div class="releases flexible-columns">
2828
<div
2929
v-for="release in recentReleases"
30-
:key="release.name"
30+
:key="release.id"
3131
class="release"
3232
>
3333
<ReleaseItem :release="release" />
@@ -67,11 +67,11 @@ const {
6767
platform,
6868
categories,
6969
recentReleases,
70-
} = defineProps({
71-
platform: { type: String },
72-
categories: { type: Array as Array<Category> },
73-
recentReleases: { type: Array as Array<RepoRelease> },
74-
})
70+
} = defineProps<{
71+
platform?: string|null,
72+
categories?: Array<Category>|null,
73+
recentReleases?: Array<RepoRelease>|null,
74+
}>()
7575
7676
function isSectionVisible(section: string) {
7777
if (!platform || platform === 'all') {

frontend/components/LogoCircle.vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ const {
1818
project,
1919
projectIndex,
2020
categoryIndex,
21-
} = defineProps({
22-
project: { required: true, type: Object as ProjectConfig },
23-
projectIndex: { required: true, type: Number },
24-
categoryIndex: { required: true, type: Number },
25-
})
21+
} = defineProps<{
22+
project: ProjectConfig,
23+
projectIndex: number,
24+
categoryIndex: number,
25+
}>()
2626
2727
const colors = [
2828
'#039BE5',

frontend/components/Project/Buttons/Badge.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
</template>
1717

1818
<script setup lang="ts">
19-
const { badge } = defineProps({ badge: { required: true, type: Object as BlueBadge } })
19+
const { badge } = defineProps<{ badge: BlueBadge }>()
2020
</script>
2121

2222
<style lang="scss" scoped>

frontend/components/Project/Buttons/Repo.vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,17 @@ import { formatDistanceToNow } from 'date-fns'
3333
const {
3434
info,
3535
projectConfig,
36-
} = defineProps({
37-
info: { required: true, type: Object as ProjectInfo },
38-
projectConfig: { required: true, type: Object as ProjectConfig },
39-
})
36+
} = defineProps<{
37+
info: ProjectInfo,
38+
projectConfig: ProjectConfig,
39+
}>()
4040
4141
const showCloneCmd = false // TODO: Needed?
4242
const badges = [
4343
{
4444
href: `https://github.com/${info.org}/${info.repo}/stargazers`,
4545
icon: 'star',
46-
value: info.stars,
46+
value: info.stars.toString(),
4747
classes: '',
4848
},
4949
{

frontend/components/Project/Detail.vue

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,13 @@ const {
5252
env,
5353
subpageId,
5454
pageTitle,
55-
} = defineProps({
56-
projectConfig: { required: true, type: Object as ProjectConfig },
57-
projectContent: { required: true, type: Object as PageContent },
58-
env: { type: String },
59-
subpageId: { type: String },
60-
pageTitle: { required: true, type: String },
61-
})
55+
} = defineProps<{
56+
projectConfig: ProjectConfig|Readonly<ProjectConfig>,
57+
projectContent: PageContent|Readonly<PageContent>,
58+
env?: string|null,
59+
subpageId?: string|null,
60+
pageTitle: string,
61+
}>()
6262
6363
useHead({
6464
title: pageTitle,
@@ -112,7 +112,7 @@ function getSubheaderTabs() {
112112
),
113113
]
114114
if (projectConfig.tabs) {
115-
projectConfig.tabs.forEach((tab: TabConfig) => {
115+
projectConfig.tabs.forEach((tab) => {
116116
tabs.push(
117117
new SelectableLink(tab.title, tab.href, true),
118118
)

frontend/components/Project/Footer.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ import { formatDistanceToNow } from 'date-fns'
2121
const {
2222
info,
2323
projectConfig,
24-
} = defineProps({
25-
info: { required: true, type: Object as ProjectInfo },
26-
projectConfig: { required: true, type: Object as ProjectConfig },
27-
})
24+
} = defineProps<{
25+
info: ProjectInfo,
26+
projectConfig: ProjectConfig,
27+
}>()
2828
const lastFetchedFromNow = formatDistanceToNow(projectConfig.last_fetched)
2929
</script>
3030

frontend/components/Project/Preview.vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@ const {
3333
project,
3434
projectIndex,
3535
categoryIndex,
36-
} = defineProps({
37-
project: { required: true, type: Object as ProjectConfig },
38-
projectIndex: { required: true, type: Number },
39-
categoryIndex: { required: true, type: Number },
40-
})
36+
} = defineProps<{
37+
project: ProjectConfig,
38+
projectIndex: number,
39+
categoryIndex: number,
40+
}>()
4141
4242
// TODO extract into util
4343
const getDescription = () => {

frontend/components/Project/Section.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<div class="content">
99
<h2>{{ section.name }}</h2>
1010
<!-- eslint-disable vue/no-v-html -->
11-
<div v-html="DOMPurify.sanitize(section.content)" />
11+
<div v-html="DOMPurify.sanitize(section.content || '')" />
1212
<!-- eslint-enable -->
1313
</div>
1414
</div>
@@ -17,7 +17,7 @@
1717
<script setup lang="ts">
1818
import DOMPurify from 'isomorphic-dompurify'
1919
20-
const { section } = defineProps({ section: { required: true, type: Object } })
20+
const { section } = defineProps<{ section: Section }>()
2121
</script>
2222

2323
<style lang="scss" scoped>

0 commit comments

Comments
 (0)