Files
Hazem Krimi 193e285569 Fix build
2023-07-01 00:48:29 +01:00

79 lines
1.6 KiB
TypeScript

import fs from 'fs';
import path from 'path';
import matter from 'gray-matter';
const projects = path.join(process.cwd(), '_projects');
export const getProjects = () => {
try {
const fileNames = fs.readdirSync(projects);
if (!fileNames) return [];
const allProjectsData = fileNames.map((filename) => {
const slug = filename.replace('.mdx', '');
const fullPath = path.join(projects, filename);
const fileContents = fs.readFileSync(fullPath, 'utf8');
const { data } = matter(fileContents);
const options = { month: 'long', day: 'numeric', year: 'numeric' };
const formattedDate = new Date(data.date).toLocaleDateString(
'en-IN',
// @ts-ignore
options
);
const frontmatter = {
...data,
date: formattedDate,
};
return {
slug,
...frontmatter,
};
});
return allProjectsData.sort((a, b) => {
if (new Date(a.date) < new Date(b.date)) {
return 1;
} else {
return -1;
}
});
} catch {
return [];
}
};
export const getPorjectsSlugs = () => {
try {
const fileNames = fs.readdirSync(projects);
if (!fileNames) return [];
return fileNames.map((filename) => {
return {
params: {
slug: filename.replace('.mdx', ''),
},
};
});
} catch {
return [];
}
};
export const getProjectdata = async (slug: string) => {
try {
const fullPath = path.join(projects, `${slug}.mdx`);
const postContent = fs.readFileSync(fullPath, 'utf8');
if (!postContent) return undefined;
return postContent;
} catch {
return undefined;
}
};