File size: 1,312 Bytes
344555b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 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); |