+1
.gitignore
+1
.gitignore
-1
docs/.vitepress/api/categories/index.get.ts
-1
docs/.vitepress/api/categories/index.get.ts
+5
-6
docs/.vitepress/api/data/index.get.ts
docs/.vitepress/api/figma/data.ts
+5
-6
docs/.vitepress/api/data/index.get.ts
docs/.vitepress/api/figma/data.ts
···
1
-
import { eventHandler, setResponseHeader } from 'h3';
2
-
import iconNodes from '../../data/iconNodes';
3
-
import { IconNodeWithKeys } from '../../theme/types.ts';
4
-
import iconMetaData from '../../data/iconMetaData.ts';
5
import releaseMeta from '../../data/releaseMetaData.json';
6
-
import { getAllCategoryFiles } from '../../lib/categories.ts';
7
8
const dataResponse = {
9
icons: Object.entries(iconNodes).reduce((acc, [name, iconNode]) => {
···
30
31
return acc;
32
}, {}),
33
-
categories: getAllCategoryFiles(),
34
};
35
36
export default eventHandler((event) => {
···
1
+
import iconNodes from '../../data/iconNodes/index.ts';
2
+
import { IconNodeWithKeys } from '../../theme/types';
3
+
import iconMetaData from '../../data/iconMetaData';
4
import releaseMeta from '../../data/releaseMetaData.json';
5
+
import categories from '../../data/categoriesData.json';
6
7
const dataResponse = {
8
icons: Object.entries(iconNodes).reduce((acc, [name, iconNode]) => {
···
29
30
return acc;
31
}, {}),
32
+
categories,
33
};
34
35
export default eventHandler((event) => {
+1
docs/package.json
+1
docs/package.json
···
12
"prebuild:iconNodes": "node ../scripts/writeIconNodes.mjs",
13
"prebuild:metaJson": "node ../scripts/writeIconMetaIndex.mjs",
14
"prebuild:releaseJson": "node ../scripts/writeReleaseMetadata.mjs",
15
"prebuild:relatedIcons": "node ../scripts/writeIconRelatedIcons.mjs",
16
"prebuild:iconDetails": "node ../scripts/writeIconDetails.mjs",
17
"postbuild:vercelJson": "node ../scripts/writeVercelOutput.mjs",
···
12
"prebuild:iconNodes": "node ../scripts/writeIconNodes.mjs",
13
"prebuild:metaJson": "node ../scripts/writeIconMetaIndex.mjs",
14
"prebuild:releaseJson": "node ../scripts/writeReleaseMetadata.mjs",
15
+
"prebuild:categoriesJson": "node ./scripts/writeCategoriesMetadata.mjs",
16
"prebuild:relatedIcons": "node ../scripts/writeIconRelatedIcons.mjs",
17
"prebuild:iconDetails": "node ../scripts/writeIconDetails.mjs",
18
"postbuild:vercelJson": "node ../scripts/writeVercelOutput.mjs",
+36
docs/scripts/writeCategoriesMetadata.mjs
+36
docs/scripts/writeCategoriesMetadata.mjs
···
···
1
+
import fs from 'fs';
2
+
import path from 'path';
3
+
4
+
const currentDir = process.cwd();
5
+
const dataDirectory = path.resolve(currentDir, '.vitepress/data');
6
+
const directory = path.join(process.cwd(), '../categories');
7
+
8
+
function getAllCategoryFiles() {
9
+
const fileNames = fs.readdirSync(directory).filter((file) => path.extname(file) === '.json');
10
+
11
+
return fileNames.map((fileName) => {
12
+
const name = path.basename(fileName, '.json');
13
+
const fileContent = fs.readFileSync(path.join(directory, fileName), 'utf8');
14
+
15
+
const parsedFileContent = JSON.parse(fileContent);
16
+
17
+
return {
18
+
name,
19
+
title: parsedFileContent.title,
20
+
};
21
+
});
22
+
}
23
+
24
+
const categoriesFile = path.resolve(dataDirectory, `categoriesData.json`);
25
+
26
+
const categoriesData = getAllCategoryFiles()
27
+
28
+
fs.promises
29
+
.writeFile(categoriesFile, JSON.stringify(categoriesData, null, 2), 'utf-8')
30
+
.then(() => {
31
+
console.log('Successfully written categoriesData.json file');
32
+
})
33
+
.catch((error) => {
34
+
throw new Error(`Something went wrong generating the categoriesData.json file,\n ${error}`);
35
+
});
36
+