import * as path from 'node:path';
import * as fs from 'node:fs';
import exifr from 'exifr';

const conf = {
	tags: "portfolio",
	layout: "portfolio.njk",
	eleventyComputed: {
		async images(data) {
			const dir = path.dirname(data.page.inputPath);

			const files = fs.readdirSync(dir)
				.filter(file => ['.png', '.jpg', '.jpeg', '.JPG', '.webp'].includes(path.extname(file)))
				.sort();


			const images = await Promise.all(files.map(async (image) => {

				const imagePath = path.resolve(dir + '/' + image);
				const exif = await exifr.parse(imagePath, { pick: ['XPComment', 'DateTimeOriginal'] });

				return {
					url: data.page.url + image,
					caption: exif?.XPComment ?? "",
					date: exif?.DateTimeOriginal
				};

			}));

			return images;
		},
		data(data) { return data; },
	}
};

export default conf;