@homedev/objector 1.0.6 → 1.0.7

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.
Files changed (2) hide show
  1. package/dist/index.js +2 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var nr=Object.create;var{getPrototypeOf:ir,defineProperty:g,getOwnPropertyNames:E,getOwnPropertyDescriptor:pr}=Object,S=Object.prototype.hasOwnProperty;var b=(e,r,o)=>{o=e!=null?nr(ir(e)):{};let s=r||!e||!e.__esModule?g(o,"default",{value:e,enumerable:!0}):o;for(let t of E(e))if(!S.call(s,t))g(s,t,{get:()=>e[t],enumerable:!0});return s},h=new WeakMap,lr=(e)=>{var r=h.get(e),o;if(r)return r;if(r=g({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")E(e).map((s)=>!S.call(r,s)&&g(r,s,{get:()=>e[s],enumerable:!(o=pr(e,s))||o.enumerable}));return h.set(e,r),r};var mr=(e,r)=>{for(var o in r)g(e,o,{get:r[o],enumerable:!0,configurable:!0,set:(s)=>r[o]=()=>s})};var fr={};mr(fr,{Objector:()=>ar});module.exports=lr(fr);var sr=require("@homedev/fields"),F=require("@homedev/files"),tr=require("@homedev/merge"),P=b(require("path"));var v=(e)=>({output:(r)=>{delete r.parent[r.key];for(let o of Array.isArray(r.value)?r.value:[r.value])if(typeof o==="string")e.output({name:o,value:r.parent});else e.output({...o,value:o.value??r.parent})}});var C=require("@homedev/navigate"),_=b(require("path")),D=(e)=>({load:async(r)=>{let o=r.options.globalContext;for(let{file:s}of Array.isArray(r.value)?r.value:[r.value]){if(!s)throw new Error("File reference required");await e.load(s,o.file&&_.default.dirname(o.file))}return C.NavigateResult.DeleteItem()}});var j=require("@homedev/fields"),A=require("@homedev/merge"),c=require("@homedev/select"),I=(e)=>({each:{filters:[/select|model/],fn:async(r)=>{let o=r.value;delete r.parent[r.key];let s=()=>{let p=o.model;if(typeof r.value==="string"||!p)return r.parent;if(typeof p==="string")return c.select(r.root,p);return p},t=()=>{if(typeof r.value==="string")return c.select(r.root,r.value);if(Array.isArray(r.value))return r.value;if(typeof o.from==="string")return c.select(r.root,o.from);return o.from},a=async(p)=>{if(o.selector===void 0)return p;if(typeof o.selector!=="string"){let f=JSON.parse(JSON.stringify(o.selector));return await j.processFields(f,{...r.options,root:{...r.root,result:p}}),f}return await c.select({...r.root,result:p},o.selector)},n=await t(),i=await s();if(!Array.isArray(n))throw new Error('Key "each" requires a source list');if(i===void 0)throw new Error('Key "each" must define a model');if(o.extend?.model)i=A.mergeAll([o.model,...Array.isArray(o.extend.model)?o.extend.model:[o.extend.model]]);let m=[];for(let p=0;p<n.length;p++){let f=JSON.parse(JSON.stringify(i));if(await j.processFields(f,{...r.options,root:{...r.root,item:n[p],this:f,index:p}}),o.extend?.result)f=A.mergeAll([f,...Array.isArray(o.extend?.result)?o.extend.result:[Array.isArray(o.extend?.result)]]);m.push(await a(f))}return m}}});var L=require("@homedev/select"),q=(e)=>({concat:async(r)=>{let o=[];for(let s of Array.isArray(r.value)?r.value:[r.value])o.push(...await L.select(r.root,s));return o.filter((s)=>s!==void 0)}});var B=require("@homedev/fields"),J=require("@homedev/merge"),R=require("@homedev/select"),U=(e)=>({extends:async(r)=>{let o=async(s,t)=>{for(let a of Array.isArray(t)?t:[t]){let n=await R.select(r.root,a),i=JSON.parse(JSON.stringify(n));if(i[r.key])await o(i,i[r.key]);await B.processFields(i,{...r.options}),J.merge(i,s),delete s[r.key]}};await o(r.parent,r.value)}});var y=require("@homedev/navigate"),N=(e)=>({skip:(r)=>!r.value||r.value==="true"?y.NavigateResult.DeleteParent():y.NavigateResult.DeleteItem(),metadata:({path:r,value:o})=>{return e.metadata(r,o),y.NavigateResult.DeleteItem()},if:(r)=>{let o=r.parent[".then"],s=r.parent[".else"];if(o)delete r.parent[".then"];if(s)delete r.parent[".else"];if(r.value===null||r.value===void 0||["0",0,"false",""].includes(r.value)||Array.isArray(r.value)&&r.value.length===0)return s??null;else return o??y.NavigateResult.DeleteItem()},switch:(r)=>{let o=r.value;if(!o.cases)throw new Error("Missing cases for switch");return o.cases[o.from]??o.default??null}});var z=require("@homedev/merge"),G=require("@homedev/select"),T=(e)=>({from:async({root:r,parent:o,value:s})=>{let t=await G.select(r,s);if(o.content){if(Array.isArray(o.content)&&Array.isArray(t))return[...t,...o.content];return z.merge(t,o.content),o.content}return t}});var d=require("@homedev/files"),M=b(require("fs/promises")),u=b(require("path")),V=(e)=>({include:async(r)=>{let{file:o}=r.options.globalContext;return await d.globMap(r.args[0],{cwd:u.default.dirname(o),filter:(s)=>u.default.basename(o)!==s,map:async(s)=>e.load(s,u.default.dirname(o),{parent:r.root})})},file:async(r)=>await M.default.readFile(await d.locate(r.args[0],e.getIncludeDirectories())).then((o)=>o.toString()),scan:async(r)=>{let o=[],t=(()=>{let i=r.args[2]??["**/node_modules/**"],m=typeof i==="string"?i.split(",").map((p)=>p.trim()):i;if(!Array.isArray(m))throw new Error("Scan exclusion must be a list");return m})(),{file:a}=r.options.globalContext,n=r.args[1]?await d.locate(r.args[1],e.getIncludeDirectories()):u.default.dirname(a);for await(let i of M.default.glob(r.args[0],{cwd:n,exclude:(m)=>t.some((p)=>u.default.matchesGlob(m,p))}))o.push(i);return o}});var $=(e)=>({env:(r)=>process.env[r.args[0]]});var l=require("@homedev/string-utils"),H=(e)=>({len:(r)=>r.args[0].length,reverse:(r)=>r.args[0].split("").reverse().join(""),substring:(r)=>r.args[0].substring(+r.args[1],+r.args[2]),concat:(r)=>r.args.join(""),lower:(r)=>r.args[0].toLowerCase(),upper:(r)=>r.args[0].toUpperCase(),pascal:(r)=>l.pascal(r.args[0]),camel:(r)=>l.camel(r.args[0]),capital:(r)=>l.capital(r.args[0]),snake:(r)=>l.changeCase(l.snake(r.args[0],"_"),r.args[1]),kebab:(r)=>l.changeCase(l.snake(r.args[0],"-"),r.args[1]),encode:(r)=>Buffer.from(r.args[0]).toString(r.args[1]??"base64"),decode:(r)=>Buffer.from(r.args[0],r.args[1]??"base64").toString(),uuid:(r)=>crypto.randomUUID()});var O=require("@homedev/object-utils"),K=require("@homedev/select"),Q=(e)=>({merge:(r)=>r.args.flatMap((o)=>o),join:(r)=>{let[o,s,t]=r.args,a=o;if(!Array.isArray(a))throw new Error("Object is not a list");if(s?.length)a=a.map((n)=>K.select({...r.root,...n},s));return a.join(t?.replace("\\n",`
2
- `))},list:(r)=>O.toList(r.args[0],r.args[1]),object:(r)=>O.toObject(r.args[0],r.args[1]),range:(r)=>{let[o,s,t]=r.args,a=parseInt(o),n=parseInt(s),i=parseInt(t)||1;if(isNaN(a)||isNaN(n))throw new Error("Invalid range");return Array.from({length:Math.floor((n-a)/i)+1},(m,p)=>a+p*i)}});var W=require("@homedev/fields"),X=require("@homedev/object-utils"),k=require("@homedev/select"),Y=(e)=>({each:{processArgs:!1,fn:async(r)=>{let o=await k.select(r.root,r.rawArgs[0].value),s=await k.select(r.root,r.rawArgs[1].value),t=r.rawArgs[2]?.value,a=Array.isArray(o)?o:X.toList(o),n=[];for(let i=0;i<a.length;i++){let m=JSON.parse(JSON.stringify(s)),p={instance:m};if(await W.processFields(p,{...r.options,root:{...r.root,item:a[i],this:m,parent:r.root.this,index:i,params:r.rawArgs.slice(3).map((f)=>f.value)}}),t!==void 0&&t!=="@")n.push(p.instance[t]);else n.push(p.instance)}return n}}});var Z=require("@homedev/select"),w=async(e,r,o)=>e.rawArgs[r].quoted?e.rawArgs[r].value:await Z.select(e.root,e.rawArgs[r].value,{defaultValue:o}),x=(e)=>({default:{processArgs:!1,fn:async(r)=>{let o=r.rawArgs[1]?.value?await w(r,1):"";return w(r,0,o)}},switch:{processArgs:!1,fn:async(r)=>{let o=await w(r,0,!1),s=await w(r,1);if(s[o]===void 0){if(r.rawArgs.length>2)return w(r,2);throw new Error(`Unhandled switch case: ${o}`)}return s[o]}}});var rr=(e)=>({log:(r)=>{console.log(...r.args)}});var er=(e)=>({if:(r)=>r.args[0]==="true"?r.args[1]:r.args[2],check:{keywords:{0:["eq","ne","lt","le","gt","ge","in","notin","null","notnull","empty","notempty","nullorempty","notnullorempty"]},fn:(r)=>{let[o,...s]=r.args;switch(o){case"eq":return s.every((t,a,n)=>t===n[0]);case"ne":return s.every((t,a,n)=>t!==n[0]);case"lt":return s[0]<s[1];case"le":return s[0]<=s[1];case"gt":return s[0]>s[1];case"ge":return s[0]>=s[1];case"in":return s[0].includes(s[1]);case"notin":return!s[0].includes(s[1]);case"null":return s.every((t,a,n)=>t===null||t===void 0);case"notnull":return s.every((t,a,n)=>t!==null&&t!==void 0);case"empty":return s.every((t,a,n)=>t==="");case"notempty":return s.every((t,a,n)=>t!=="");case"nullorempty":return s.every((t,a,n)=>t===null||t===void 0||t==="");case"notnullorempty":return s.every((t,a,n)=>t!==null&&t!==void 0&&t!=="")}}}});var or=(e)=>e.keys(v(e)).keys(D(e)).keys(I(e)).keys(T(e)).keys(q(e)).keys(U(e)).keys(N(e)).sources(V(e)).sources($(e)).sources(H(e)).sources(Q(e)).sources(Y(e)).sources(x(e)).sources(rr(e)).sources(er(e));class ar{includeDirectories=[];includes=[];outputs=[];vars={};cache={};fields={};objectMetadata={};constructor(){this.use(or)}use(e){return e(this),this}includeDirectory(...e){return this.includeDirectories.push(...e),this}getIncludeDirectories(){return this.includeDirectories}include(...e){return this.includes.push(...e),this}keys(e){return this.fields.keys={...this.fields.keys,...e},this}sources(e){return this.fields.sources={...this.fields.sources,...e},this}variables(e){return this.vars={...this.vars,...e},this}getOutputs(){return this.outputs}output(e){return this.outputs.push(e),this}metadata(e,r){return this.objectMetadata[e]=r,this}getMetadata(e){return this.objectMetadata[e]}getAllMetadata(){return this.objectMetadata}filter(e){return this.fields.filters??=[],this.fields.filters?.push(e),this}async docIncludes(e,r){let o=[];if(e.content.includes)o.push(...e.content.includes),delete e.content.includes;o.push(...this.includes),this.includes.length=0;for(let s of o)tr.merge(await this.load(s,e.folderPath,{parent:e.content,...r},!0),e.content)}async load(e,r,o,s){if(this.cache[e])return this.cache[e];let t=r?[r]:[];t.push(...this.includeDirectories.map((n)=>P.default.isAbsolute(n)?n:P.default.join(r??process.cwd(),n)));let a=await F.loadFormat(e,{dirs:t});if(!a.content)return null;if(await this.docIncludes(a,o),s!==!0)await sr.processFields(a.content,{...this.fields,globalContext:{file:a.fullPath},root:{...this.fields.root,...this.vars,$document:{root:a,fileName:e,folder:a.folderPath,fullPath:a.fullPath,...o}}});return a.content}async writeOutputs(e){await F.writeOutputs(this.getOutputs(),e)}}
1
+ var lr=Object.create;var{getPrototypeOf:mr,defineProperty:g,getOwnPropertyNames:v,getOwnPropertyDescriptor:ur}=Object,C=Object.prototype.hasOwnProperty;var c=(e,r,o)=>{o=e!=null?lr(mr(e)):{};let s=r||!e||!e.__esModule?g(o,"default",{value:e,enumerable:!0}):o;for(let t of v(e))if(!C.call(s,t))g(s,t,{get:()=>e[t],enumerable:!0});return s},E=new WeakMap,fr=(e)=>{var r=E.get(e),o;if(r)return r;if(r=g({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")v(e).map((s)=>!C.call(r,s)&&g(r,s,{get:()=>e[s],enumerable:!(o=ur(e,s))||o.enumerable}));return E.set(e,r),r};var gr=(e,r)=>{for(var o in r)g(e,o,{get:r[o],enumerable:!0,configurable:!0,set:(s)=>r[o]=()=>s})};var cr={};gr(cr,{Objector:()=>pr});module.exports=fr(cr);var nr=require("@homedev/fields"),j=require("@homedev/files"),ir=require("@homedev/merge"),h=c(require("path"));var S=(e)=>({output:(r)=>{delete r.parent[r.key];for(let o of Array.isArray(r.value)?r.value:[r.value])if(typeof o==="string")e.output({name:o,value:r.parent});else e.output({...o,value:o.value??r.parent})}});var _=require("@homedev/navigate"),D=c(require("path")),I=(e)=>({load:async(r)=>{let o=r.options.globalContext;for(let{file:s}of Array.isArray(r.value)?r.value:[r.value]){if(!s)throw new Error("File reference required");await e.load(s,o.file&&D.default.dirname(o.file))}return _.NavigateResult.DeleteItem()}});var F=require("@homedev/fields"),M=require("@homedev/merge"),y=require("@homedev/select"),L=(e)=>({each:{filters:[/select|model/],fn:async(r)=>{let o=r.value;delete r.parent[r.key];let s=()=>{let p=o.model;if(typeof r.value==="string"||!p)return r.parent;if(typeof p==="string")return y.select(r.root,p);return p},t=()=>{if(typeof r.value==="string")return y.select(r.root,r.value);if(Array.isArray(r.value))return r.value;if(typeof o.from==="string")return y.select(r.root,o.from);return o.from},a=async(p)=>{if(o.selector===void 0)return p;if(typeof o.selector!=="string"){let u=JSON.parse(JSON.stringify(o.selector));return await F.processFields(u,{...r.options,root:{...r.root,result:p}}),u}return await y.select({...r.root,result:p},o.selector)},n=await t(),i=await s();if(!Array.isArray(n))throw new Error('Key "each" requires a source list');if(i===void 0)throw new Error('Key "each" must define a model');if(o.extend?.model)i=M.mergeAll([o.model,...Array.isArray(o.extend.model)?o.extend.model:[o.extend.model]]);let l=[];for(let p=0;p<n.length;p++){let u=JSON.parse(JSON.stringify(i));if(await F.processFields(u,{...r.options,root:{...r.root,item:n[p],this:u,index:p}}),o.extend?.result)u=M.mergeAll([u,...Array.isArray(o.extend?.result)?o.extend.result:[Array.isArray(o.extend?.result)]]);l.push(await a(u))}return l}}});var R=require("@homedev/select"),q=(e)=>({concat:async(r)=>{let o=[];for(let s of Array.isArray(r.value)?r.value:[r.value])o.push(...await R.select(r.root,s));return o.filter((s)=>s!==void 0)}});var B=require("@homedev/fields"),J=require("@homedev/merge"),U=require("@homedev/select"),$=(e)=>({extends:async(r)=>{let o=async(s,t)=>{for(let a of Array.isArray(t)?t:[t]){let n=await U.select(r.root,a),i=JSON.parse(JSON.stringify(n));if(i[r.key])await o(i,i[r.key]);await B.processFields(i,{...r.options}),J.merge(i,s),delete s[r.key]}};await o(r.parent,r.value)}});var d=require("@homedev/navigate"),N=(e)=>({skip:(r)=>!r.value||r.value==="true"?d.NavigateResult.DeleteParent():d.NavigateResult.DeleteItem(),metadata:({path:r,value:o})=>{return e.metadata(r,o),d.NavigateResult.DeleteItem()},if:(r)=>{let o=r.parent[".then"],s=r.parent[".else"];if(o)delete r.parent[".then"];if(s)delete r.parent[".else"];if(r.value===null||r.value===void 0||["0",0,"false",""].includes(r.value)||Array.isArray(r.value)&&r.value.length===0)return s??null;else return o??d.NavigateResult.DeleteItem()},switch:(r)=>{let o=r.value;if(!o.cases)throw new Error("Missing cases for switch");return o.cases[o.from]??o.default??null}});var T=require("@homedev/merge"),z=require("@homedev/select"),G=(e)=>({from:async({root:r,parent:o,value:s})=>{let t=await z.select(r,s);if(o.content){if(Array.isArray(o.content)&&Array.isArray(t))return[...t,...o.content];return T.merge(t,o.content),o.content}return t}});var V=require("@homedev/navigate"),k=c(require("node:vm")),H=(e)=>({modules:async(r)=>{for(let[o,s]of Object.entries(r.value)){let t=k.default.createContext({console,objector:e,document:r.root}),a=new k.default.SourceTextModule(s,{identifier:o,context:t});return await a.link((n)=>{throw new Error(`Module ${n} is not allowed`)}),await a.evaluate(),e.sources(Object.fromEntries(Object.entries(a.namespace).map(([n,i])=>[`${o}_${n}`,(l)=>i(l,...l.args)]))),V.NavigateResult.DeleteItem()}}});var w=require("@homedev/files"),A=c(require("fs/promises")),f=c(require("path")),K=(e)=>({include:async(r)=>{let{file:o}=r.options.globalContext;return await w.globMap(r.args[0],{cwd:f.default.dirname(o),filter:(s)=>f.default.basename(o)!==s,map:async(s)=>e.load(s,f.default.dirname(o),{parent:r.root})})},file:async(r)=>await A.default.readFile(await w.locate(r.args[0],e.getIncludeDirectories())).then((o)=>o.toString()),scan:async(r)=>{let o=[],t=(()=>{let i=r.args[2]??["**/node_modules/**"],l=typeof i==="string"?i.split(",").map((p)=>p.trim()):i;if(!Array.isArray(l))throw new Error("Scan exclusion must be a list");return l})(),{file:a}=r.options.globalContext,n=r.args[1]?await w.locate(r.args[1],e.getIncludeDirectories()):f.default.dirname(a);for await(let i of A.default.glob(r.args[0],{cwd:n,exclude:(l)=>t.some((p)=>f.default.matchesGlob(l,p))}))o.push(i);return o}});var Q=(e)=>({env:(r)=>process.env[r.args[0]]});var m=require("@homedev/string-utils"),W=(e)=>({len:(r)=>r.args[0].length,reverse:(r)=>r.args[0].split("").reverse().join(""),substring:(r)=>r.args[0].substring(+r.args[1],+r.args[2]),concat:(r)=>r.args.join(""),lower:(r)=>r.args[0].toLowerCase(),upper:(r)=>r.args[0].toUpperCase(),pascal:(r)=>m.pascal(r.args[0]),camel:(r)=>m.camel(r.args[0]),capital:(r)=>m.capital(r.args[0]),snake:(r)=>m.changeCase(m.snake(r.args[0],"_"),r.args[1]),kebab:(r)=>m.changeCase(m.snake(r.args[0],"-"),r.args[1]),encode:(r)=>Buffer.from(r.args[0]).toString(r.args[1]??"base64"),decode:(r)=>Buffer.from(r.args[0],r.args[1]??"base64").toString(),uuid:(r)=>crypto.randomUUID()});var O=require("@homedev/object-utils"),X=require("@homedev/select"),Y=(e)=>({merge:(r)=>r.args.flatMap((o)=>o),join:(r)=>{let[o,s,t]=r.args,a=o;if(!Array.isArray(a))throw new Error("Object is not a list");if(s?.length)a=a.map((n)=>X.select({...r.root,...n},s));return a.join(t?.replace("\\n",`
2
+ `))},list:(r)=>O.toList(r.args[0],r.args[1]),object:(r)=>O.toObject(r.args[0],r.args[1]),range:(r)=>{let[o,s,t]=r.args,a=parseInt(o),n=parseInt(s),i=parseInt(t)||1;if(isNaN(a)||isNaN(n))throw new Error("Invalid range");return Array.from({length:Math.floor((n-a)/i)+1},(l,p)=>a+p*i)}});var Z=require("@homedev/fields"),x=require("@homedev/object-utils"),P=require("@homedev/select"),rr=(e)=>({each:{processArgs:!1,fn:async(r)=>{let o=await P.select(r.root,r.rawArgs[0].value),s=await P.select(r.root,r.rawArgs[1].value),t=r.rawArgs[2]?.value,a=Array.isArray(o)?o:x.toList(o),n=[];for(let i=0;i<a.length;i++){let l=JSON.parse(JSON.stringify(s)),p={instance:l};if(await Z.processFields(p,{...r.options,root:{...r.root,item:a[i],this:l,parent:r.root.this,index:i,params:r.rawArgs.slice(3).map((u)=>u.value)}}),t!==void 0&&t!=="@")n.push(p.instance[t]);else n.push(p.instance)}return n}}});var er=require("@homedev/select"),b=async(e,r,o)=>e.rawArgs[r].quoted?e.rawArgs[r].value:await er.select(e.root,e.rawArgs[r].value,{defaultValue:o}),or=(e)=>({default:{processArgs:!1,fn:async(r)=>{let o=r.rawArgs[1]?.value?await b(r,1):"";return b(r,0,o)}},switch:{processArgs:!1,fn:async(r)=>{let o=await b(r,0,!1),s=await b(r,1);if(s[o]===void 0){if(r.rawArgs.length>2)return b(r,2);throw new Error(`Unhandled switch case: ${o}`)}return s[o]}}});var sr=(e)=>({log:(r)=>{console.log(...r.args)}});var tr=(e)=>({if:(r)=>r.args[0]==="true"?r.args[1]:r.args[2],check:{keywords:{0:["eq","ne","lt","le","gt","ge","in","notin","null","notnull","empty","notempty","nullorempty","notnullorempty"]},fn:(r)=>{let[o,...s]=r.args;switch(o){case"eq":return s.every((t,a,n)=>t===n[0]);case"ne":return s.every((t,a,n)=>t!==n[0]);case"lt":return s[0]<s[1];case"le":return s[0]<=s[1];case"gt":return s[0]>s[1];case"ge":return s[0]>=s[1];case"in":return s[0].includes(s[1]);case"notin":return!s[0].includes(s[1]);case"null":return s.every((t,a,n)=>t===null||t===void 0);case"notnull":return s.every((t,a,n)=>t!==null&&t!==void 0);case"empty":return s.every((t,a,n)=>t==="");case"notempty":return s.every((t,a,n)=>t!=="");case"nullorempty":return s.every((t,a,n)=>t===null||t===void 0||t==="");case"notnullorempty":return s.every((t,a,n)=>t!==null&&t!==void 0&&t!=="")}}}});var ar=(e)=>e.keys(S(e)).keys(I(e)).keys(L(e)).keys(G(e)).keys(q(e)).keys($(e)).keys(N(e)).keys(H(e)).sources(K(e)).sources(Q(e)).sources(W(e)).sources(Y(e)).sources(rr(e)).sources(or(e)).sources(sr(e)).sources(tr(e));class pr{includeDirectories=[];includes=[];outputs=[];vars={};cache={};fields={sources:{},keys:{}};objectMetadata={};constructor(){this.use(ar)}use(e){return e(this),this}includeDirectory(...e){return this.includeDirectories.push(...e),this}getIncludeDirectories(){return this.includeDirectories}include(...e){return this.includes.push(...e),this}keys(e){return Object.assign(this.fields.keys,{...this.fields.keys,...e}),this}sources(e){return Object.assign(this.fields.sources,{...this.fields.sources,...e}),this}variables(e){return this.vars={...this.vars,...e},this}getOutputs(){return this.outputs}output(e){return this.outputs.push(e),this}metadata(e,r){return this.objectMetadata[e]=r,this}getMetadata(e){return this.objectMetadata[e]}getAllMetadata(){return this.objectMetadata}filter(e){return this.fields.filters??=[],this.fields.filters?.push(e),this}async docIncludes(e,r){let o=[];if(e.content.includes)o.push(...e.content.includes),delete e.content.includes;o.push(...this.includes),this.includes.length=0;for(let s of o)ir.merge(await this.load(s,e.folderPath,{parent:e.content,...r},!0),e.content)}async load(e,r,o,s){if(this.cache[e])return this.cache[e];let t=r?[r]:[];t.push(...this.includeDirectories.map((n)=>h.default.isAbsolute(n)?n:h.default.join(r??process.cwd(),n)));let a=await j.loadFormat(e,{dirs:t});if(!a.content)return null;if(await this.docIncludes(a,o),s!==!0)await nr.processFields(a.content,{...this.fields,globalContext:{file:a.fullPath},root:{...this.fields.root,...this.vars,$document:{root:a,fileName:e,folder:a.folderPath,fullPath:a.fullPath,...o}}});return a.content}async writeOutputs(e){await j.writeOutputs(this.getOutputs(),e)}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homedev/objector",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "object extensions for YAML/JSON",
5
5
  "author": "julzor",
6
6
  "license": "ISC",