import { In } from 'typeorm'; import { v4 } from 'uuid'; import { Product } from '@/entities'; import { ProductSource } from '@/entities/types'; import { CSVPage } from './types'; export default async (csvPages: CSVPage[]): Promise => { const productsToCreate = Array.from( new Set(csvPages.map(({ productFirebaseId }) => productFirebaseId)) ) .filter((id) => !!id) .map((productFirebaseId) => { const id = v4(); return { id, firebaseId: productFirebaseId, source: ProductSource.GOOGLE_SHOPPING, }; }); await Product.insert(productsToCreate); return Product.find({ where: { id: In(productsToCreate.map(({ id }) => id)) }, }); };