@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 1.93 kB
JavaScript
import{copy as e}from"../../libs/i18n/copy.mjs";import t from"../../utils/helpers/get-base-url.mjs";import n from"../../libs/repositories/document-bricks.mjs";import{getBricksTableSchema as r,getTableNames as i}from"../../libs/collection/schema/runtime/runtime-schema-selectors.mjs";import a from"../collections/get-single-instance.mjs";import o from"./helpers/extract-related-entity-ids.mjs";import s from"./helpers/fetch-ref-data.mjs";import c from"../../libs/formatters/document-bricks.mjs";import l from"../../libs/formatters/documents.mjs";const u=async(u,d)=>{let f=new n(u.db.client,u.config.db),p=a(u,{key:d.collectionKey});if(p.error)return p;let m=await r(u,d.collectionKey);if(m.error)return m;let h=await i(u,d.collectionKey);if(h.error)return h;let g=d.includeBricks??!0,_=d.includeRefs??!0,v=m.data.filter(e=>g?!0:e.key.brick===void 0),y=await f.selectMultipleByVersionId({versionId:d.versionId,bricksSchema:v},{tableName:h.data.version});if(y.error)return y;if(y.data===void 0)return{error:{status:404,message:e(`server:core.documents.version.not.found.message`)},data:void 0};let b={data:{}};if(_){let e=await o(u,{collection:p.data,brickSchema:v,responses:[y.data],includeTypes:d.refTypes});if(e.error)return e;let t=await s(u,{values:e.data,versionType:d.versionType,resolveVersionType:d.resolveVersionType,allowedDocumentCollectionKeys:d.allowedDocumentCollectionKeys});if(t.error)return t;b=t.data}let x=t(u);return{error:void 0,data:{bricks:g?c.formatMultiple({bricksQuery:y.data,bricksSchema:v,refData:b,collection:p.data,config:u.config,host:x}):[],fields:c.formatDocumentFields({bricksQuery:y.data,bricksSchema:v,refData:b,collection:p.data,config:u.config,host:x}),refs:_?l.formatRefs({collection:p.data,config:u.config,host:x,bricksTableSchema:v,data:b,fieldTypes:d.refTypes,flattenRelationRefFields:d.flattenRelationRefFields}):null}}};export{u as default};
//# sourceMappingURL=get-multiple.mjs.map