@homedev/fields 1.2.8 → 1.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var{defineProperty:Q,getOwnPropertyNames:y,getOwnPropertyDescriptor:m}=Object,d=Object.prototype.hasOwnProperty;var j=new WeakMap,
|
|
1
|
+
var{defineProperty:Q,getOwnPropertyNames:y,getOwnPropertyDescriptor:m}=Object,d=Object.prototype.hasOwnProperty;var j=new WeakMap,x=(S)=>{var E=j.get(S),$;if(E)return E;if(E=Q({},"__esModule",{value:!0}),S&&typeof S==="object"||typeof S==="function")y(S).map((U)=>!d.call(E,U)&&Q(E,U,{get:()=>S[U],enumerable:!($=m(S,U))||$.enumerable}));return j.set(S,E),E};var h=(S,E)=>{for(var $ in E)Q(S,$,{get:E[$],enumerable:!0,configurable:!0,set:(U)=>E[$]=()=>U})};var g={};h(g,{processFields:()=>I,getProcessor:()=>Z,getArgs:()=>P});module.exports=x(g);var T=require("@homedev/split");var K=require("@homedev/select"),B=(S,E)=>{if(typeof S.value==="string"){if(S.quoted)return S.value;if(S.value.startsWith("[")&&S.value.endsWith("]")){let $=S.value.slice(1,-1);if($.trim()==="")return[];return $.split(";").map((U)=>{let z=U.trim();if(!isNaN(+z))return+z;return z})}if(S.value.startsWith("{")&&S.value.endsWith("}")){if(S.value.slice(1,-1).trim()==="")return{}}if(S.value==="null")return null;if(S.value==="undefined")return;if(S.value.startsWith("@"))return S.value.slice(1);if(!isNaN(+S.value))return+S.value}return E(S.value)},q=(S,E,$,U,z,G)=>{let H=U?.(S)??S,J=z(H);if(J[0])return J[1];if(!E){let L=K.select($,S),Y=z(L);if(Y[0])return Y[1]}throw Error(G)},_=(S,E,$,U)=>{let z=typeof S.types==="function"?S.types(U,E.value):S.types?.[U];if(!z||z==="ref")return B(E,(H)=>K.select($,H));let G=B(E,()=>E.value);if(Array.isArray(z)){if(!z.includes(G))throw Error(`Argument ${U.toString()} must be one of [${z.join(", ")}]: ${G}`);return G}if(typeof z==="string")switch(z){case"number":return q(G,E.quoted,$,(H)=>Number(H),(H)=>[!isNaN(H),H],`Argument ${U.toString()} must be a number: ${G}`);case"boolean":return q(G,E.quoted,$,null,(H)=>{if([!0,"true","1",1,"yes","on"].includes(H))return[!0,!0];if([!1,"false","0",0,"no","off"].includes(H))return[!0,!1];if([null,"null","undefined",void 0,""].includes(H))return[!0,!1];if(Array.isArray(H))return[!0,H.length>0];return[!1,!1]},`Argument ${U.toString()} must be a boolean: ${G}`);case"string":return G.toString();default:throw Error(`Unknown type for argument ${U.toString()}: ${z}`)}return z(G,$,U,E.quoted)};var Z=(S,E)=>{let $=S[E];if($===void 0)throw Error(`Unhandled field processor type: ${E}`);return typeof $==="function"?{options:{},fn:$}:{options:$,fn:$.fn}},N=(S)=>!S.quoted&&S.value.startsWith("."),V=(S)=>{let E={};for(let $ of S){if(!N($))continue;let U=$.value.indexOf("="),z=U>-1?$.value.slice(1,U):$.value.slice(1),G=U>-1?$.value.slice(U+1):"";if(G.length>=2){let H=G[0],J=G[G.length-1];if(H==='"'&&J==='"'||H==="'"&&J==="'")G=G.slice(1,-1)}if(!E[z])E[z]=[];E[z].push(G)}return E},P=(S,E,$)=>{let U=T.splitWithQuotes(S??""),z=V(U),G=U.filter((J)=>!N(J)),H=E.options.processArgs===!1?[]:G.map((J,L)=>_(E.options,J,$,L));return{rawArgs:G,parsedArgs:H,tags:z}};var M=require("@homedev/navigate");var C=require("@homedev/navigate");var O=(S,E)=>E.keys!==void 0&&S.key.startsWith(".")&&E.keys[S.key.substring(1)]!==void 0,f=async(S,E,$,U)=>{let{key:z,parent:G}=S,H=Z(U.keys,z.substring(1));if(H.options.processArgs!==!1&&(typeof H.options.types==="function"||H.options.types?.[0]!==void 0))S.value=_(H.options,{value:S.value,quoted:!1},$,0);if(typeof S.value!=="string")await I(S.value,{...U,root:{...$,parent:S.parent,parents:S.parents},filters:[...U.filters??[],...H.options.filters??[]]});let J=await H.fn({path:E,root:$,parent:G,key:z,options:U,value:S.value,args:[S.value],rawArgs:[],tags:{}});return J instanceof C.NavigateResult?J:C.NavigateResult.ReplaceParent(J)};var X=require("@homedev/navigate"),k=require("@homedev/select");var W=(S)=>{let E=[],$=0;while($<S.length)if(S[$]==="$"&&S[$+1]==="("&&($===0||S[$-1]!=="\\")){let U=$;$+=2;let z=1;for(;$<S.length;$++)if(S[$]==="(")z++;else if(S[$]===")"){if(z--,z===0){E.push([U,$]);break}}if(z!==0)throw Error(`Unmatched opening $( at position ${U.toString()}`);$++}else $++;return E};class D{value;constructor(S){this.value=S}}var A=async(S,E,$)=>{for(let U=E.length-1;U>=0;U--){let[z,G]=E[U],H=S.slice(z+2,G),J=await A(H,W(H),$);if(typeof J==="object")return J;let L=await $(J,S);if(L instanceof D)return L.value;S=S.slice(0,z)+L+S.slice(G+1)}return S},R=async(S,E)=>A(S,W(S),E);var w=async(S,E,$,U)=>{let z=await(async()=>{let G=/([\w\d.-_/]+):(.+)/.exec(S);if(!G)return await k.select(E,S);let[H,J,L]=G,Y=Z(U.sources,J),F=P(L,Y,E);return await Y.fn({args:F.parsedArgs,rawArgs:F.rawArgs,tags:F.tags,key:J,options:U,root:E,path:$,value:null})})();if(z===null||z===void 0)return"";if(typeof z==="object")return new D(z);return z},b=async(S,E,$,U)=>{let z=await R(E,(G)=>w(G,$,S,U));if(z instanceof X.NavigateResult)return z;if(z===E)return X.NavigateResult.Explore();if(typeof z==="string"){let G=await b(S,z,$,U);if(G.action!==X.NavigateAction.Explore)return G}return X.NavigateResult.ReplaceItem(z)};var I=async(S,E)=>{return E??={},await M.navigate(S,async($)=>{let U=[...$.path,$.key].join(".");if(E?.filters?.length&&E.filters.some((J)=>J.test(U)))return M.NavigateResult.NoExplore();let z=$.path.length===0,G=$.parents.length>0?$.parents.toReversed():[];if(z){if(G.length>0)throw Error("Root object should not have a parent");G=E?.root?.parents?[E.root.parent,...E.root.parents.toReversed()]:[]}let H={...S,...E.root,this:$.parent,parent:G.length>0?G[0]:null,parents:G};try{if($.key.startsWith("$"))return M.NavigateResult.NoExplore();let J=M.NavigateResult.Explore();if(typeof $.value==="string")switch(J=await b(U,$.value,H,E),J.action){case M.NavigateAction.Explore:break;case M.NavigateAction.ReplaceItem:$.value=J.by;break;default:return J}if(O($,E))J=await f($,U,H,E);return J}catch(J){throw Error(`${J.message}
|
|
2
2
|
(${U})`)}}),S};
|