UNPKG

xuxi

Version:

Dynamically utility for combining different types of values ​​into a single value.

2 lines (1 loc) 1.44 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.cnx=cnx,exports.string=string;function sv(e){let i=0,f,t="";if(typeof e=="string"||typeof e=="number"||typeof e=="bigint"||e===null)t+=e;else if(typeof e=="object")if(Array.isArray(e))for(;i<e.length;i++)e[i]&&(f=sv(e[i]))&&(t&&(t+=" "),t+=f);else for(f in e)e[f]&&(t&&(t+=" "),t+=f);else typeof e=="function"&&(t+=sv(e(t)));return t}function rv(e,i=" "){let f=0,t,r="";if(typeof e=="object"&&e!==null)if(Array.isArray(e))for(;f<e.length;f++)e[f]&&(t=rv(e[f],i))&&(r&&(r+=i),r+=t);else{for(t in e)e[t]&&(r&&(r+=i),r+=typeof e[t]=="object"?`${t}.${rv(e[t],`${i}${t}.`)}`:`${t}: ${e[t]}`);for(const n of Object.getOwnPropertySymbols(e))e[n]&&(r&&(r+=i),r+=`${String(n)}: ${e[n]}`)}return r}function iv(e,i=" "){let f=0,t,r="";if(e instanceof Date)r+=e.toISOString();else if(e instanceof Map)for(const[n,o]of e.entries())o&&(r&&(r+=i),r+=`${n}: ${o}`);else if(e instanceof Set)e.forEach(n=>{n&&(r&&(r+=i),r+=n)});else if(typeof e=="object"){if(Array.isArray(e))for(;f<e.length;f++)e[f]&&(t=iv(e[f],i))&&(r&&(r+=i),r+=t)}else typeof e=="function"&&(r+=iv(e(r),i));return r}function cnx(...e){let i="";for(let f=0;f<e.length;f++){const t=e[f],r=t&&sv(t);r&&(i&&(i+=" "),i+=r)}return i}function string(...e){return{toString(){return cnx(...e)},recursive(i={}){return rv(e,i.separator)},instanceof(i={}){return iv(e,i.separator)},[Symbol.toPrimitive](){return cnx(...e)}}}