UNPKG

@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.91 kB
export const cast=function(typeP,valP,report_conversion_error_callback,report_conversion_warn_callback){if(typeof _==="undefined"){console.error("error: _ library not defined in cast");return valP}var ret=valP;const report_conversion_error=function(res){if(report_conversion_error_callback){report_conversion_error_callback(res,typeP,valP)}};const report_conversion_warn=function(res){if(report_conversion_warn_callback){report_conversion_warn_callback(res,typeP,valP)}};switch(typeP){case"boolean":case"bool":const true_bool_opt=["Y",1,true,"TRUE","ON","YES","1"];const false_bool_opt=["N",0,false,"FALSE","OFF","NO","0"];if(true_bool_opt.includes(_.toUpper(valP))){ret=true;break}if(false_bool_opt.includes(_.toUpper(valP))||!valP){ret=false}break;case"number":if(typeof valP==="undefined"||typeof valP==="NaN"||valP===null){ret=0}else{if(typeof valP!=="number"){try{if(typeof valP==="boolean"){ret=valP?1:0}else{ret=_.toNumber(valP)}}catch(e){ret=0;report_conversion_error(0)}}}break;case"string":if(typeof valP==="undefined"||typeof valP==="NaN"||valP===null){ret=""}else{if(typeof valP!=="string"){try{ret=_.toString(valP);report_conversion_warn()}catch(e){ret="";report_conversion_error("blanc")}}}break;case"object":if(typeof valP==="undefined"||typeof valP==="NaN"||valP===null){ret={}}else{if(typeof valP!=="object"){try{if(valP){ret=JSON5.parse(valP)}else{ret={}}}catch(e){try{ret=JSON5.parse(valP)}catch(error){ret={};report_conversion_error("{}")}}}}break;case"array":if(typeof valP==="undefined"||typeof valP==="NaN"||valP===null||valP===""){ret=[]}else{if(!Array.isArray(valP)){try{ret=_.toArray(eval(valP))}catch(e){ret=[];report_conversion_error("[]")}}}break;default:if(typeof valP==="undefined"||typeof valP==="NaN"||valP===null){ret=""}else{if(typeof valP!=="string"){try{ret=valP.toString();report_conversion_warn()}catch(e){ret="";report_conversion_error("blanc")}}}break}return ret};