Skip to content

Commit b0312c9

Browse files
committed
feat: display, if they exist, backers as xmini size, bronze sponsors as mini size, silver sponsors as small size, gold sponsors as medium size, and platinum sponsors as big size
1 parent 86848bd commit b0312c9

File tree

7 files changed

+158
-94
lines changed

7 files changed

+158
-94
lines changed
File renamed without changes.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import type { Sponsor } from './sponsors';
2+
3+
export const gold: Sponsor[] = [];
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import type { Sponsor } from './sponsors';
2+
3+
export const platinum: Sponsor[] = [];
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import type { Sponsor } from './sponsors';
2+
3+
export const silver: Sponsor[] = [];
Lines changed: 48 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,56 @@
11
import { backer } from './backers';
2-
import { bronze } from './bronzes';
2+
import { bronze } from './bronzeSponsors';
3+
import { silver } from './silverSponsors';
4+
import { gold } from './goldSponsors';
5+
import { platinum } from './platinumSponsors';
36

47
export type Sponsor = {
58
name: string;
69
img: string;
710
url: string;
811
};
912

10-
export const sponsors = [
11-
{
12-
tier: 'Bronze sponsors',
13-
size: 'mini',
14-
items: bronze,
15-
},
16-
{
17-
tier: 'Backers',
18-
size: 'xmini',
19-
items: backer,
20-
},
21-
];
13+
type SponsorTier = 'platinum' | 'gold' | 'silver' | 'bronze' | 'backers';
14+
15+
type SponsorTierConfig = {
16+
tier: string;
17+
size: string;
18+
items: Sponsor[];
19+
};
20+
21+
const sponsorData = {
22+
platinum: platinum,
23+
gold: gold,
24+
silver: silver,
25+
bronze: bronze,
26+
backers: backer,
27+
} satisfies Record<SponsorTier, Sponsor[]>;
28+
29+
const tierConfig: Record<SponsorTier, { displayName: string; size: string }> = {
30+
platinum: { displayName: 'Platinum sponsors', size: 'big' },
31+
gold: { displayName: 'Gold sponsors', size: 'medium' },
32+
silver: { displayName: 'Silver sponsors', size: 'small' },
33+
bronze: { displayName: 'Bronze sponsors', size: 'mini' },
34+
backers: { displayName: 'Backers', size: 'xmini' },
35+
};
36+
37+
const tierOrder: SponsorTier[] = ['platinum', 'gold', 'silver', 'bronze', 'backers'];
38+
39+
export const sponsors= generateSponsors();
40+
41+
function generateSponsors(): SponsorTierConfig[] {
42+
const sponsorTiers: SponsorTierConfig[] = [];
43+
44+
tierOrder.forEach(tierKey => {
45+
const sponsors = sponsorData[tierKey];
46+
if (sponsors.length > 0) {
47+
sponsorTiers.push({
48+
tier: tierConfig[tierKey].displayName,
49+
size: tierConfig[tierKey].size,
50+
items: sponsors,
51+
});
52+
}
53+
});
54+
55+
return sponsorTiers;
56+
}

scripts/generateSponsorsFiles.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ type ImageDownloadInfo = {
1616
const SPONSORS_DIR = 'public/sponsors';
1717
const PLACEHOLDER_IMAGE_PATH = 'public/logo.png';
1818
const BACKERS_FILE_PATH = '.vitepress/data/sponsors/backers.ts';
19-
const BRONZES_FILE_PATH = '.vitepress/data/sponsors/bronzes.ts';
20-
const SILVERS_FILE_PATH = '.vitepress/data/sponsors/silvers.ts';
21-
const GOLDS_FILE_PATH = '.vitepress/data/sponsors/golds.ts';
22-
const PLATINUMS_FILE_PATH = '.vitepress/data/sponsors/platinumSponsors.ts';
19+
const BRONZE_SPONSORS_FILE_PATH = '.vitepress/data/sponsors/bronzeSponsors.ts';
20+
const SILVER_SPONSORS_FILE_PATH = '.vitepress/data/sponsors/silverSponsors.ts';
21+
const GOLD_SPONSORS_FILE_PATH = '.vitepress/data/sponsors/goldSponsors.ts';
22+
const PLATINUM_SPONSORS_FILE_PATH = '.vitepress/data/sponsors/platinumSponsors.ts';
2323
const OPEN_COLLECTIVE_API_URL = 'https://opencollective.com/seed4j/members.json';
2424
const IMAGE_EXTENSION = '.png';
2525

@@ -28,17 +28,17 @@ const BACKERS_FILE_TEMPLATE = `import type { Sponsor } from './sponsors';
2828
export const backer: Sponsor[] = [{{CONTENT}}];
2929
`;
3030

31-
const BRONZES_FILE_TEMPLATE = `import type { Sponsor } from './sponsors';
31+
const BRONZE_SPONSORS_FILE_TEMPLATE = `import type { Sponsor } from './sponsors';
3232
3333
export const bronze: Sponsor[] = [{{CONTENT}}];
3434
`;
3535

36-
const SILVERS_FILE_TEMPLATE = `import type { Sponsor } from './sponsors';
36+
const SILVER_SPONSORS_FILE_TEMPLATE = `import type { Sponsor } from './sponsors';
3737
3838
export const silver: Sponsor[] = [{{CONTENT}}];
3939
`;
4040

41-
const GOLDS_FILE_TEMPLATE = `import type { Sponsor } from './sponsors';
41+
const GOLD_SPONSORS_FILE_TEMPLATE = `import type { Sponsor } from './sponsors';
4242
4343
export const gold: Sponsor[] = [{{CONTENT}}];
4444
`;
@@ -51,10 +51,10 @@ export const platinum: Sponsor[] = [{{CONTENT}}];
5151
export async function generate(): Promise<void> {
5252
return fetchSeed4jMembers().then(async seed4jMembers =>
5353
prefetchSponsors(seed4jMembers, 'backer', BACKERS_FILE_PATH, BACKERS_FILE_TEMPLATE)
54-
.then(() => prefetchSponsors(seed4jMembers, 'Bronze sponsor', BRONZES_FILE_PATH, BRONZES_FILE_TEMPLATE))
55-
.then(() => prefetchSponsors(seed4jMembers, 'Silver sponsor', SILVERS_FILE_PATH, SILVERS_FILE_TEMPLATE))
56-
.then(() => prefetchSponsors(seed4jMembers, 'Gold sponsor', GOLDS_FILE_PATH, GOLDS_FILE_TEMPLATE))
57-
.then(() => prefetchSponsors(seed4jMembers, 'Platinum sponsor', PLATINUMS_FILE_PATH, PLATINUM_SPONSORS_FILE_TEMPLATE)),
54+
.then(() => prefetchSponsors(seed4jMembers, 'Bronze sponsor', BRONZE_SPONSORS_FILE_PATH, BRONZE_SPONSORS_FILE_TEMPLATE))
55+
.then(() => prefetchSponsors(seed4jMembers, 'Silver sponsor', SILVER_SPONSORS_FILE_PATH, SILVER_SPONSORS_FILE_TEMPLATE))
56+
.then(() => prefetchSponsors(seed4jMembers, 'Gold sponsor', GOLD_SPONSORS_FILE_PATH, GOLD_SPONSORS_FILE_TEMPLATE))
57+
.then(() => prefetchSponsors(seed4jMembers, 'Platinum sponsor', PLATINUM_SPONSORS_FILE_PATH, PLATINUM_SPONSORS_FILE_TEMPLATE)),
5858
);
5959
}
6060

0 commit comments

Comments
 (0)