@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 1.57 kB
JavaScript
import{copy as e}from"../../../libs/i18n/copy.mjs";import t from"../../../utils/helpers/format-bytes.mjs";import{resolveMediaKeyTenant as n}from"../../../utils/media/media-key-tenant.mjs";import r from"../adjust-storage-usage.mjs";import i from"../checks/check-can-store-media.mjs";import a from"../checks/check-has-media-strategy.mjs";import o from"../helpers/validate-uploaded-media.mjs";const s=async(s,c)=>{let l=await a(s);if(l.error)return l;let u=n(s.config,c.key),d=await l.data.getMeta(s,{key:c.key,tenant:u});if(d.error)return d;let f=await i(s,{size:d.data.size});if(f.error)return await l.data.delete(s,{key:c.key,tenant:u}),f;let p=await o({context:s,stream:l.data.stream,tenant:u,key:c.key,mimeType:d.data.mimeType,fileName:c.fileName,allowedType:c.allowedType});if(p.error)return await l.data.delete(s,{key:c.key,tenant:u}),p;let m=s.config.media.limits.storageBytes,h=await r(s,{tenantKey:s.request?.tenantKey??null,delta:d.data.size,max:m===!1?void 0:m,min:0});return h.error?h:h.data.applied?{error:void 0,data:{mimeType:p.data.mimeType,type:p.data.type,extension:p.data.extension,size:d.data.size,name:c.fileName,key:c.key,etag:d.data.etag}}:m===!1?{error:{type:`basic`,status:500},data:void 0}:(await l.data.delete(s,{key:c.key,tenant:u}),{error:{type:`basic`,message:e(`server:core.files.validation.storage.limit.exceeded`,{data:{size:t(m)}}),status:500,errors:{file:{code:`storage`,message:e(`server:core.files.validation.storage.limit.exceeded`,{data:{size:t(m)}})}}},data:void 0})};export{s as default};
//# sourceMappingURL=sync-media.mjs.map