@nent/core
Version:
4 lines • 1.55 kB
JavaScript
/*!
* NENT 2022
*/
import{a as s,g as t,r as a}from"./factory-acbf0d3d.js";import{E as i}from"./index-f7016b94.js";import{D as n}from"./interfaces-8c5cd1b8.js";import{r,i as e,d as o,g as l,c,b as u,a as f}from"./values-ddfac998.js";import{a as d}from"./state-27a8a5bc.js";import{w as m}from"./logging-5a93c8af.js";import"./index-4bfabbbd.js";import"./index-916ca544.js";import"./promises-584c4ece.js";class p{constructor(s,t){this.data=s,this.setter=t,this.changed=new i}async get(s){return"item"===s?this.data:this.data[s]}async set(s,t){this.setter?await this.setter(s,t):this.data[s]=t,this.changed.emit(n.DataChanged)}}const w=/\{\{([\w-]*):(\w*)((?:\[\d+\]|\.)[\w.\-\]]+)?(?:\?([\w.-]*))?\}\}/g,b=/['"]?([a-z/][\w-/?.]+)['"]?/gi;function v(s){var t;return((null===(t=null==s?void 0:s.match(w))||void 0===t?void 0:t.length)||0)>0}async function h(i,n=!1,h){if(r(i,"valueExpression"),!d.dataEnabled)return m("Data-services are not enabled. Tokens are not resolved."),i;let j,g=i.slice();if(null===i||""===i)return g;if(!v(i))return g;for(null!=h&&null!=h&&s("data",new p(h));j=w.exec(i);){const s=j[0],a=j[1],i=j[2],r=j[3]||"",d=j[4]||null,m=await t(a);if(null==m&&!n)continue;let p=await(null==m?void 0:m.get(i));if(null==p&&(p=d),r&&e(p)){const s=o(p)?JSON.parse(p):p;let t=l(s,r,d);p=c(t)?t:u(t)?JSON.stringify(t):`${t}`}let w=u(p)?JSON.stringify(p).split('"').join("'"):(null==p?void 0:p.toString())||"";n&&!u(p)&&(w=f(p)||""===p?"null":w.replace(b,"'$1'")),g=g.replace(s,w)}return h&&a("data"),g}export{v as hasToken,h as resolveTokens}