@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 • 1.97 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,menuType,checkedInUserName,app_id,parentId,properties,studio_meta={},minimal=false}={}){if(!_id){_id=new_node_id(menuType,app_id)}var doc={_id:_id,stat:3,docType:"studio",docDate:Date.now(),ts:Date.now(),order_ts:Date.now(),studio_meta:{...{created:Date.now(),createdByUid:uid,checkedInUserId:uid,checkedInUserName:checkedInUserName,parentId:parentId||menuType==="globals"?"globals":menuType==="table"?"database":menuType==="route"?"routes":"programs"},...studio_meta},properties:properties||{}};if(minimal)return doc;if(menuType){switch(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"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"];