@xuda.io/runtime-bundle
Version:
The Xuda Runtime Bundle refers to a collection of scripts and libraries packaged together to provide the necessary runtime environment for executing plugins or components in the Xuda platform.
1 lines • 4.04 kB
JavaScript
const _this={};export const init_module=e=>{_this.func=e.func;_this.glb=e.glb;_this.SESSION_OBJ=e.SESSION_OBJ;_this.APP_OBJ=e.APP_OBJ;_this.IS_DOCKER=e.IS_DOCKER;_this.IS_API_SERVER=e.IS_API_SERVER;_this.IS_PROCESS_SERVER=e.IS_PROCESS_SERVER};export const peer_actions=async function(SESSION_ID,conn_send,data){var _session=_this.SESSION_OBJ[SESSION_ID];const take_screenshot=async function(service){await _this.func.utils.load_js_on_demand("https://html2canvas.hertzen.com/dist/html2canvas.js");html2canvas(document.body).then(canvas=>{conn_send({service:service,data:canvas.toDataURL("image/png"),id:data.id,uid:_session.USR_OBJ._id,source:"runtime",app_id:_session.app_id,gtp_token:_session.gtp_token,app_token:_session.app_token,session_id:SESSION_ID,ts:Date.now(),session:{SYS_GLOBAL_OBJ_CLIENT_INFO:_this.SESSION_OBJ[SESSION_ID].SYS_GLOBAL_OBJ_CLIENT_INFO}})})};switch(data.service){case"send_object_to_runtime":{if(STUDIO_WEBSOCKET_CONNECTION_ID===data.data.connection_id){if(RESPONSE_FROM_STUDIO_QUEUE[data.data.req_id]){RESPONSE_FROM_STUDIO_QUEUE[data.data.req_id].data=data.data}}break}case"live_preview_element_reference":case"live_preview_element_info":case"live_preview_element_dnd":{if(data.data.action==="on"){_this.func.UI.utils.live_preview_element_inspect_off();_this.func.UI.utils.live_preview_element_inspect_on(SESSION_ID,data.service)}else{_this.func.UI.utils.live_preview_element_inspect_off()}break}case"live_preview_show_selected_element":{_this.func.UI.utils.live_preview_show_selected_element(data.data.nodeid);break}case"live_preview_cmd_execute":{let res;try{res={data:eval(data.data.execute)}}catch(e){res={data:e.message,error:true}}conn_send({service:"debug_log",data:res,id:data.id,uid:_session.USR_OBJ._id,source:"runtime",app_id:_session.app_id,session_id:SESSION_ID,gtp_token:_session.gtp_token,app_token:_session.app_token,ts:Date.now()});break}case"live_preview_hard_reload":{await func.index.delete_pouch(SESSION_ID);location.reload();break}case"live_preview_screenshot":{await take_screenshot("live_preview_screenshot_captured");break}case"live_preview_get_session":{let _session=_.cloneDeep(_this.SESSION_OBJ[SESSION_ID]);for(const[key,val]of Object.entries(_session.DS_GLB)){_session.DS_GLB[key]=await func.utils.clean_returned_datasource(SESSION_ID,key)}delete _session.root_element;delete _session.WORKER_OBJ;conn_send({service:"live_preview_session_result",data:_session,id:data.id,uid:_session.USR_OBJ._id,source:"runtime",app_id:_session.app_id,session_id:SESSION_ID,gtp_token:_session.gtp_token,app_token:_session.app_token,ts:Date.now()});break}case"live_preview_screen_share_start":{_this.live_preview_screen_share_interval=setInterval(async()=>{await take_screenshot("live_preview_screen_share")},500);break}case"live_preview_screen_share_end":{clearInterval(_this.live_preview_screen_share_interval);break}case"live_preview_connected":{$(_session.root_element).addClass("live_preview_online");break}case"live_preview_disconnected":{$(_session.root_element).removeClass("live_preview_online");break}case"live_preview_kickoff":{_session.opt.live_token_stat=2;func.UI.utils.progressScreen.show(SESSION_ID,"Session closed by the host",false,true);break}case"document_changed":{console.log("document_changed",data);func.UI.screen.refresh_document_changes_for_realtime_update(SESSION_ID,data.data);break}case"live_preview_get_obj_response":{if(!data?.data?._id)return;$("body").trigger("live_preview_get_obj_response_"+data.data._id,{data:data.data});break}case"rpi_request_response":{$("body").trigger("rpi_request_response_"+data.req_id,{data:data.data});break}case"ping":{conn_send({service:"pong",data:{},id:data.id,uid:_session.USR_OBJ._id,source:"runtime",app_id:_session.app_id,session_id:SESSION_ID,gtp_token:_session.gtp_token,app_token:_session.app_token,ts:Date.now()});break}case"studio_doc_saved":{var _session=SESSION_OBJ[SESSION_ID];DOCS_OBJ[_session.app_id][data.data._id]=data.data;func.UI.screen.live_preview_hot_module_reload(SESSION_ID,data.data);break}default:break}};