1
- import fsp from "fs/promises" ;
2
- import path from "path" ;
3
1
import invariant from "tiny-invariant" ;
4
2
import { processMarkdown } from "~/lib/md.server" ;
5
3
@@ -27,6 +25,11 @@ import {
27
25
sluggify ,
28
26
} from "./conf" ;
29
27
28
+ import speakersYamlFileContents from "../../data/conf/2022/speakers.yaml?raw" ;
29
+ import sponsorsYamlFileContents from "../../data/conf/2022/sponsors.yaml?raw" ;
30
+ import talksYamlFileContents from "../../data/conf/2022/talks.yaml?raw" ;
31
+ import scheduleYamlFileContents from "../../data/conf/2022/schedule.yaml?raw" ;
32
+
30
33
let cache = new LRUCache <
31
34
string ,
32
35
Array < Speaker > | Array < Sponsor > | Array < Talk > | Array < ScheduleItem >
@@ -38,30 +41,13 @@ let cache = new LRUCache<
38
41
} ,
39
42
} ) ;
40
43
41
- const DATA_DIR = path . join ( process . cwd ( ) , "data" ) ;
42
- const CONF_ROOT_DIR = path . join ( DATA_DIR , "conf" ) ;
43
-
44
- function getConfPaths ( year : ConfYear ) {
45
- let confDir = path . join ( CONF_ROOT_DIR , String ( year ) ) ;
46
- return {
47
- speakersFile : path . join ( confDir , "speakers.yaml" ) ,
48
- sponsorsFile : path . join ( confDir , "sponsors.yaml" ) ,
49
- talksFile : path . join ( confDir , "talks.yaml" ) ,
50
- scheduleFile : path . join ( confDir , "schedule.yaml" ) ,
51
- } ;
52
- }
53
-
54
- type ConfYear = 2022 | 2023 ;
55
-
56
- export async function getSpeakers ( year : ConfYear ) {
57
- let cached = cache . get ( `speakers-${ year } ` ) ;
44
+ export async function getSpeakers ( ) {
45
+ let cached = cache . get ( "speakers" ) ;
58
46
if ( isSpeakerArray ( cached ) ) {
59
47
return cached ;
60
48
}
61
49
62
- let { speakersFile : SPEAKERS_FILE } = getConfPaths ( year ) ;
63
- let speakersFileContents = await fsp . readFile ( SPEAKERS_FILE , "utf8" ) ;
64
- let speakersRaw = yaml . parse ( speakersFileContents ) ;
50
+ let speakersRaw = yaml . parse ( speakersYamlFileContents ) ;
65
51
let speakers : Array < Speaker > = [ ] ;
66
52
for ( let speakerRaw of speakersRaw ) {
67
53
let { html : bioHTML } = await processMarkdown ( speakerRaw . bio ) ;
@@ -86,15 +72,13 @@ export async function getSpeakers(year: ConfYear) {
86
72
return speakers ;
87
73
}
88
74
89
- export async function getSponsors ( year : ConfYear ) {
90
- let cached = cache . get ( ` sponsors- ${ year } ` ) ;
75
+ export async function getSponsors ( ) {
76
+ let cached = cache . get ( " sponsors" ) ;
91
77
if ( isSponsorArray ( cached ) ) {
92
78
return cached ;
93
79
}
94
80
95
- let { sponsorsFile : SPONSORS_FILE } = getConfPaths ( year ) ;
96
- let sponsorsFileContents = await fsp . readFile ( SPONSORS_FILE , "utf8" ) ;
97
- let sponsorsRaw = yaml . parse ( sponsorsFileContents ) ;
81
+ let sponsorsRaw = yaml . parse ( sponsorsYamlFileContents ) ;
98
82
let sponsors : Array < Sponsor > = [ ] ;
99
83
for ( let sponsorRaw of sponsorsRaw ) {
100
84
invariant (
@@ -110,15 +94,13 @@ export async function getSponsors(year: ConfYear) {
110
94
return sponsors ;
111
95
}
112
96
113
- export async function getTalks ( year : ConfYear ) {
114
- let cached = cache . get ( ` talks- ${ year } ` ) ;
97
+ export async function getTalks ( ) {
98
+ let cached = cache . get ( " talks" ) ;
115
99
if ( isTalkArray ( cached ) ) {
116
100
return cached ;
117
101
}
118
102
119
- let { talksFile : TALKS_FILE } = getConfPaths ( year ) ;
120
- let talksFileContents = await fsp . readFile ( TALKS_FILE , "utf8" ) ;
121
- let talksRaw = yaml . parse ( talksFileContents ) ;
103
+ let talksRaw = yaml . parse ( talksYamlFileContents ) ;
122
104
let talks : Array < Talk > = [ ] ;
123
105
for ( let talkRaw of talksRaw ) {
124
106
invariant (
@@ -138,18 +120,16 @@ export async function getTalks(year: ConfYear) {
138
120
return talks ;
139
121
}
140
122
141
- export async function getSchedule ( year : ConfYear ) {
142
- let cached = cache . get ( ` schedule- ${ year } ` ) ;
123
+ export async function getSchedule ( ) {
124
+ let cached = cache . get ( " schedule" ) ;
143
125
if ( isScheduleItemArray ( cached ) ) {
144
126
return cached ;
145
127
}
146
128
147
- let { scheduleFile : SCHEDULE_FILE } = getConfPaths ( year ) ;
148
- let allTalks = await getTalks ( year ) ;
149
- let allSpeakers = await getSpeakers ( year ) ;
129
+ let allTalks = await getTalks ( ) ;
130
+ let allSpeakers = await getSpeakers ( ) ;
150
131
151
- let schedulesFileContents = await fsp . readFile ( SCHEDULE_FILE , "utf8" ) ;
152
- let scheduleItemsRaw = yaml . parse ( schedulesFileContents ) ;
132
+ let scheduleItemsRaw = yaml . parse ( scheduleYamlFileContents ) ;
153
133
let scheduleItems : Array < ScheduleItem > = [ ] ;
154
134
155
135
for ( let scheduleItemRaw of scheduleItemsRaw ) {
0 commit comments