1- import { getCollection , getEntries } from "astro:content" ;
1+ import { getCollection , getEntries , type CollectionEntry } from "astro:content" ;
2+ import dayjs from "dayjs" ;
3+
4+ export const shouldBuildEventImage = ( props : {
5+ event : CollectionEntry < "events" > ;
6+ } ) => {
7+ return dayjs ( ) . isBefore ( dayjs ( props . event . data . date ) . add ( 1 , "day" ) , "day" ) ;
8+ } ;
29
310export const getEventStaticPaths = async ( ) => {
411 const events = await getCollection ( "events" ) ;
@@ -23,3 +30,51 @@ export const getEventStaticPaths = async () => {
2330 } ) ,
2431 ) ;
2532} ;
33+
34+ const cleanFileName = ( path : string ) =>
35+ path
36+ . split ( "/" )
37+ . at ( - 1 )
38+ ?. replace ( / \. t s x $ / , "" )
39+ . replace ( / ^ _ / , "" ) ;
40+
41+ export const getEventAssetsSources = ( event : CollectionEntry < "events" > ) => {
42+ const eventFilesNames = Object . keys (
43+ import . meta. glob ( "./_*.tsx" , { eager : true } ) ,
44+ ) . map ( cleanFileName ) ;
45+ const talkFilesNames = Object . keys (
46+ import . meta. glob ( "../talks/[talkId]/dynamic-images/_*.tsx" , {
47+ eager : true ,
48+ } ) ,
49+ ) . map ( cleanFileName ) ;
50+ const partnersFilesNames = Object . keys (
51+ import . meta. glob ( "../partners/[partnerId]/dynamic-images/_*.tsx" , {
52+ eager : true ,
53+ } ) ,
54+ ) . map ( cleanFileName ) ;
55+
56+ const sponsors = event . data . sponsors ?. map ( ( s ) => s . slug ) ?? [ ] ;
57+ const partners = event . data . partners ?? [ ] ;
58+ const coOrganizers = event . data . coOrganizers ?? [ ] ;
59+
60+ return [
61+ eventFilesNames . map (
62+ ( fileName ) => `/events/${ event . id } /dynamic-images/${ fileName } .jpg` ,
63+ ) ,
64+ event . data . schedule ?. flatMap ( ( talk ) =>
65+ talkFilesNames . map ( ( fileName ) =>
66+ ! talk . slug
67+ ? null
68+ : `/events/${ event . id } /talks/${ talk . slug . id } /dynamic-images/${ fileName } .jpg` ,
69+ ) ,
70+ ) ,
71+ [ ...coOrganizers , ...sponsors , ...partners ] . flatMap ( ( partner ) =>
72+ partnersFilesNames . map (
73+ ( fileName ) =>
74+ `/events/${ event . id } /partners/${ partner . id } /dynamic-images/${ fileName } .jpg` ,
75+ ) ,
76+ ) ,
77+ ]
78+ . flat ( )
79+ . filter ( ( x ) => x !== undefined && x !== null ) ;
80+ } ;
0 commit comments