exam-guard
Version:
AI proctoring tool
1 lines • 871 B
JavaScript
(()=>{var e=[],t=[],n={};function a(){if(console.log("sendEvents",n),n.baseUrl&&n.endpoint&&0!==t.length){var e=new URL(n.endpoint,n.baseUrl).toString(),a=new URLSearchParams({events:JSON.stringify(t)});fetch(e,{method:"POST",headers:{"Content-Type":n.contentType,"X-CSRF-TOKEN":n.csrfToken},body:a.toString()}).then((function(){t=[]})).catch((function(e){console.error("Failed to send event:",e)}))}}self.addEventListener("message",(function(s){var o,i=s.data,r=i.type,c=i.data;switch(r){case"INIT":n=c;break;case"RECORD_VIOLATION":o=c,e.push(o),t.push({event_type:o.event_type,event_value:o.event_value,timestamp:o.timestamp}),t.length>=n.maxEventsBeforeSend&&a(),self.postMessage({type:"VIOLATION_UPDATE",data:{violationCount:e.filter((function(e){return!0===e.disqualify})).length,violations:e}});break;case"SEND_EVENTS":a();break;case"CLEANUP":a(),e=[],t=[]}}))})();