2024-06-28 11:24:37 +02:00
|
|
|
/* eslint-disable import/prefer-default-export */
|
2025-02-10 14:13:52 +01:00
|
|
|
import fs from 'fs/promises';
|
2024-06-28 11:24:37 +02:00
|
|
|
import path from 'path';
|
|
|
|
|
import { readMetadata } from './readMetadata.mjs';
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Reads metadata from the icons/categories directories
|
|
|
|
|
*
|
|
|
|
|
* @param {string} directory
|
|
|
|
|
* @returns {object} A map of icon or category metadata
|
|
|
|
|
*/
|
2025-02-10 14:13:52 +01:00
|
|
|
export const readAllMetadata = async (directory) => {
|
|
|
|
|
const directoryContent = await fs.readdir(directory);
|
|
|
|
|
|
2025-02-19 14:32:10 +01:00
|
|
|
const metaDataPromises = directoryContent
|
|
|
|
|
.filter((file) => path.extname(file) === '.json')
|
|
|
|
|
.map(async (file) => [path.basename(file, '.json'), await readMetadata(file, directory)]);
|
2025-02-19 13:55:31 +01:00
|
|
|
|
2025-02-19 14:32:10 +01:00
|
|
|
const metadata = await Promise.all(metaDataPromises);
|
2025-02-19 13:55:31 +01:00
|
|
|
|
|
|
|
|
return Object.fromEntries(metadata);
|
2025-02-10 14:13:52 +01:00
|
|
|
};
|