- Removed the env variable and added the current URL in contributor's page - Added button to share on LinkedIn on contributor's profile - Fixed absolute image URL for release API --------- Co-authored-by: Ady Beraud <a.beraud96@gmail.com>
52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import { desc } from 'drizzle-orm';
|
|
|
|
import { getGithubReleaseDateFromReleaseNote } from '@/app/releases/utils/get-github-release-date-from-release-note';
|
|
import { getReleases } from '@/app/releases/utils/get-releases';
|
|
import { getVisibleReleases } from '@/app/releases/utils/get-visible-releases';
|
|
import { findAll } from '@/database/database';
|
|
import { GithubReleases, githubReleasesModel } from '@/database/model';
|
|
|
|
export const dynamic = 'force-dynamic';
|
|
|
|
export async function GET() {
|
|
try {
|
|
const githubReleases = (await findAll(
|
|
githubReleasesModel,
|
|
desc(githubReleasesModel.publishedAt),
|
|
)) as GithubReleases[];
|
|
|
|
const latestGithubRelease = githubReleases[0];
|
|
const releaseNotes = await getReleases();
|
|
|
|
const visibleReleasesNotes = getVisibleReleases(
|
|
releaseNotes,
|
|
latestGithubRelease.tagName,
|
|
);
|
|
|
|
const formattedReleasesNotes = visibleReleasesNotes.map((releaseNote) => {
|
|
const updatedContent = releaseNote.content.replace(
|
|
/!\[(.*?)\]\((\/images\/.*?)\)/g,
|
|
(match, altText, imagePath) => {
|
|
return ``;
|
|
},
|
|
);
|
|
|
|
return {
|
|
...releaseNote,
|
|
content: updatedContent,
|
|
publishedAt: getGithubReleaseDateFromReleaseNote(
|
|
githubReleases,
|
|
releaseNote.release,
|
|
releaseNote.date,
|
|
),
|
|
};
|
|
});
|
|
|
|
return Response.json(formattedReleasesNotes);
|
|
} catch (error: any) {
|
|
return new Response(`Github releases error: ${error?.message}`, {
|
|
status: 500,
|
|
});
|
|
}
|
|
}
|