This commit is contained in:
Philippe Torrel
2026-08-03 16:00:02 +02:00
parent 7d8daeb14c
commit 17aa46a4bc
22 changed files with 6855 additions and 81 deletions

View File

@@ -0,0 +1,32 @@
import fs from 'node:fs';
import { v4 as id } from 'uuid';
const PRODUCTS_PATH = '../data/products.json';
/** Ein vollständiges Produkt, so wie es in products.json steht. */
interface Product {
_id: string;
position: number;
name: string;
price: number;
}
/** Produkt aus der Datei - _id und position können noch fehlen. */
type ProductInput = Omit<Product, '_id' | 'position'> & Partial<Pick<Product, '_id' | 'position'>>;
console.log(id()); // 97412ca6-c7a8-4868-a49b-3cf4c2258dd8
try {
const data = JSON.parse(fs.readFileSync(PRODUCTS_PATH, 'utf-8')) as ProductInput[];
const products: Product[] = data.map((product, index) => {
return { _id: product._id || id(), position: index + 1, ...product };
});
console.log(products);
fs.writeFileSync(PRODUCTS_PATH, JSON.stringify(products, null, 2), 'utf-8');
console.log('File modified');
} catch (error) {
console.log(error);
}