Download frontend/src/lib/campaignGenerationStream.js from Seth0330/qualifier: direct link, hf CLI and curl.
- Browser
- Download file 2 kB
-
https://huggingface.co/spaces/Seth0330/qualifier/resolve/main/frontend/src/lib/campaignGenerationStream.js
- Command line
-
hf download hf://spaces/Seth0330/qualifier/frontend/src/lib/campaignGenerationStream.js
-
curl -L -o campaignGenerationStream.js https://huggingface.co/spaces/Seth0330/qualifier/resolve/main/frontend/src/lib/campaignGenerationStream.js
2 kB
| import { apiUrl } from '@/lib/api'; | |
| /** | |
| * SSE stream for /api/generate-sequences — usable from wizard or dashboard. | |
| */ | |
| export function buildGenerateSequencesUrl(fileId, { reset = false, preview = false, contactLimit = null } = {}) { | |
| const params = new URLSearchParams({ | |
| file_id: fileId, | |
| reset: reset ? '1' : '0', | |
| }); | |
| if (preview) params.set('preview', '1'); | |
| if (contactLimit != null && contactLimit > 0) { | |
| params.set('contact_limit', String(contactLimit)); | |
| } | |
| return apiUrl(`/api/generate-sequences?${params.toString()}`); | |
| } | |
| export function openCampaignGenerationStream(fileId, options, handlers = {}) { | |
| const url = buildGenerateSequencesUrl(fileId, options); | |
| const es = new EventSource(url, { withCredentials: true }); | |
| es.onmessage = (event) => { | |
| try { | |
| const data = JSON.parse(event.data); | |
| if (data.type === 'sequence' && handlers.onSequence) { | |
| handlers.onSequence(data.sequence); | |
| } else if (data.type === 'progress' && typeof data.progress === 'number' && handlers.onProgress) { | |
| handlers.onProgress(data.progress); | |
| } else if (data.type === 'phase' && handlers.onPhase) { | |
| handlers.onPhase(data.phase); | |
| } else if (data.type === 'preview_complete') { | |
| if (handlers.onPreviewComplete) handlers.onPreviewComplete(); | |
| es.close(); | |
| } else if (data.type === 'complete') { | |
| if (handlers.onComplete) handlers.onComplete(); | |
| es.close(); | |
| } else if (data.type === 'error') { | |
| if (handlers.onError) handlers.onError(data.error || 'Generation failed'); | |
| es.close(); | |
| } | |
| } catch (e) { | |
| if (handlers.onError) handlers.onError(String(e)); | |
| } | |
| }; | |
| es.onerror = () => { | |
| if (handlers.onError) handlers.onError('Connection lost'); | |
| es.close(); | |
| }; | |
| return es; | |
| } | |