const WebSocket = require('ws'); async function ss2code(imageBuffer) { return new Promise((resolve, reject) => { const ws = new WebSocket('wss://imagetoappv2.ngrok.app/generate-code'); let finalCode = ''; ws.on('open', () => { console.log('Connect to WebSocket'); ws.send(JSON.stringify({ generationType: 'create', image: `data:image/jpeg;base64,${imageBuffer.toString('base64')}`, inputMode: 'image', openAiApiKey: null, openAiBaseURL: null, anthropicApiKey: null, screenshotOneApiKey: null, isImageGenerationEnabled: true, editorTheme: 'cobalt', generatedCodeConfig: 'html_tailwind', codeGenerationModel: 'gpt-4o-2024-05-13', isTermOfServiceAccepted: false })); }); ws.on('message', (message) => { const response = JSON.parse(message.toString()); if (response.type === 'setCode') { finalCode = response.value; } else if (response.type === 'status') { console.log(response.value); } }); ws.on('close', () => { console.log('WebSocket connection closed'); resolve(finalCode.trim()); }); ws.on('error', (error) => { reject(new Error(error.message)); }); }); } // Usage: const fs = require('fs'); const resp = await ss2code(fs.readFileSync('./ss.jpg')); console.log(resp);