t-getter
Version:
Library for making texts from objects
1 lines • 863 B
JavaScript
var e,t,r,n,o;e=module.exports,Object.defineProperty(e,"__esModule",{value:!0,configurable:!0}),t=module.exports,r="default",n=()=>u,Object.defineProperty(t,r,{get:n,set:o,enumerable:!0,configurable:!0});const f=["string","number"],l=Object.freeze({not_set:"[t-getter.js] There is no texts objects"});function u(e,{placeholder:t,freeze:r=!0}={}){if(!e?.length)throw new Error(l.not_set);e=e.map((e=>r?Object.freeze(e):e));let n=t;function o(e){return f.includes(typeof e)}function u({index:t,prop:r,args:n}){const o=r.split(".");let f=e[t],l=0;for(;l<o.length;){let e=f[o[l]];if(null==e)break;"function"==typeof e&&(e=e(...n)),f=e,l++}return f}return function(t,...r){if(!e.length)throw new Error(l.not_set);let f,i=0;for(;i<e.length;){const e=u({index:i,prop:t,args:r});if(o(e)){f=e;break}i++}return o(f)?f:(s={prop:t,args:r},"function"==typeof n?n(s):n);var s}}