import crossFetch from 'cross-fetch'; import * as FormData from 'form-data'; import * as fs from "fs"; const formData = new FormData(); formData.append( 'operations', JSON.stringify({ query: ` mutation createAssets($input: [CreateAssetInput!]!) { createAssets(input: $input) { ... on Asset { id } } } `, variables: { input: [ { file: null, }, ], }, }), ); formData.append( 'map', JSON.stringify({ '0': ['variables.input.0.file'], }), ); const filePath = '/Users/Downloads/1-200x300.jpg'; const stats = fs.statSync(filePath); const fileStream = fs.createReadStream(filePath); formData.append('0', fileStream, { knownLength: stats.size }); const response = await this.fetch(process.env.VENDURE_ADMIN_API_URL, { method: 'POST', body: formData, credentials: 'include', headers: { ...formData.getHeaders(), }, }); const responseData = await response.json();