@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 • 2.11 kB
JavaScript
const new_node_id=(type,app_id)=>{const abbreviate=word=>{if(word.length<=3){return word}let abbreviation=word[0];const vowels="aeiou";for(let i=1;i<word.length&&abbreviation.length<3;i++){if(!vowels.includes(word[i].toLowerCase())){abbreviation+=word[i]}}if(abbreviation.length<3){abbreviation=word.substring(0,3)}return abbreviation};var last12uuid=crypto.randomUUID().split("-")[4];if(type){var menuAbbreviated=abbreviate(type.replaceAll("_",""));return`${app_id.substr(app_id.length-3)}_${menuAbbreviated}_${last12uuid}`}return app_id.substr(app_id.length-3)+"_"+last12uuid};export const createDoc=function({_id,uid,checkedInUserName,app_id,parentId,properties,studio_meta={},minimal=false}={}){if(!_id){_id=new_node_id(properties.menuType,app_id)}const t=Date.now();var doc={_id:_id,stat:3,app_id:app_id,docType:"studio",docDate:t,ts:t,order_ts:t,studio_meta:{...{created:t,createdByUid:uid,checkedInUserId:uid,savedByUid:uid,checkedInUserName:checkedInUserName,parentId:parentId||(properties.menuType==="globals"?"globals":properties.menuType==="table"?"database":properties.menuType==="route"?"routes":"programs")},...studio_meta},properties:properties||{}};if(minimal)return doc;if(properties.menuType){switch(properties.menuType){case"table":if(!doc.tableIndexes)doc.tableIndexes=[];if(!doc.tableFields)doc.tableFields=[];break;case"alert":if(!doc.alertData)doc.alertData={};break;case"javascript":if(!doc.scriptData)doc.scriptData={};break;case"ai_agent":if(!doc.agentConfig)doc.agentConfig={};break;case"folder":break;case"route":if(!doc.routeMenu)doc.routeMenu={};break;case"api":if(!doc.scriptData)doc.scriptData={};case"component":if(!doc.progUi)doc.progUi=[{id:"root",type:"element",tagName:doc?.properties?.renderType!=="form"?"xu-multi-view":"xu-single-view",attributes:{},children:[]}];default:if(!doc.progDataSource)doc.progDataSource={dataSourceType:""};if(!doc.progFields)doc.progFields=[];if(!doc.progEvents)doc.progEvents=[];break}}return doc};export const valid_menuType=["globals","table","get_data","set_data","batch","alert","javascript","folder","route","api","component","ai_agent"];