@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
2 lines • 2.89 kB
JavaScript
import{initializeLogger as e}from"../logger/index.mjs";import t from"../../utils/errors/lucid-error.mjs";import{translate as n}from"../i18n/translate.mjs";import r from"../../constants/default-config.mjs";import i from"../collection/builders/brick-builder/schema.mjs";import a from"../collection/builders/collection-builder/schema.mjs";import o from"../collection/custom-fields/schema.mjs";import s from"./checks/check-collection-environment-version-map.mjs";import c from"./checks/check-duplicate-builder-keys.mjs";import l from"./checks/check-duplicate-field-keys.mjs";import u from"./checks/check-field.mjs";import d from"./checks/check-field-conditions.mjs";import f from"./checks/check-locales.mjs";import p from"./checks/check-open-repeaters.mjs";import m from"./checks/check-repeater-depth.mjs";import h from"./checks/check-tenants.mjs";import g from"./config-schema.mjs";import _ from"./merge-config.mjs";import v from"./utils/normalize-config-secrets.mjs";import{castDraft as y,produce as b}from"immer";const x=async(x,S)=>{if(Object.hasOwn(x,`db`))throw new t({message:"Lucid config must not define `config.db`. Move your database adapter to the top-level `db` property passed to configureLucid()."});if(!S?.resolvedDb)throw new t({message:"Lucid could not resolve the configured database adapter. Define it via `configureLucid({ db, config })`."});let C=_(x,r);Object.assign(C,{db:S.resolvedDb}),C=v(C,S?.mode),S?.recipe&&(C=b(C,S.recipe),C=v(C,S?.mode));let w=[...C.i18n.sources??[]];if(C=b(C,e=>{e.i18n.sources=[]}),Array.isArray(C.plugins))for(let e of C.plugins){if(!S?.skipValidation){let{default:t}=await import(`./checks/check-plugin-version.mjs`);t({key:e.key,requiredVersions:e.lucid})}if(e.hooks?.init){let r=await e.hooks.init();if(r.error)throw new t({scope:e.key,message:n(r.error.message)??n(`server:core.plugins.init.failed`,{data:{key:e.key}})})}C=b(C,e.recipe)}let T=[...C.i18n.sources??[]];if(C=b(C,e=>{e.i18n.sources=y([...T,...w]),e.localization.locales=e.localization.locales.map(e=>({...e,direction:e.direction??`ltr`})),e.i18n.locales=e.i18n.locales.map(e=>({...e,direction:e.direction??`ltr`}))}),!S?.skipValidation){C=g.parse(C),f(C.localization),f(C.i18n),h(C),c(`collections`,C.collections.map(e=>e.getData.key));for(let e of C.collections){a.parse(e.config);for(let t of e.flatFields)o.parse(t),u(t,C);c(`bricks`,e.builderBricks.map(e=>e.key)),l(`collection`,e.key,e.meta.fieldKeys),d(`collection`,e.key,e),m(`collection`,e.key,e.meta.repeaterDepth),p(`collection`,e.key,e.repeaterStack);for(let t of e.brickInstances){i.parse(t.config);for(let e of t.flatFields)o.parse(e),u(e,C);l(`brick`,t.key,t.meta.fieldKeys),d(`brick`,t.key,t),m(`brick`,t.key,t.meta.repeaterDepth),p(`brick`,t.key,t.repeaterStack)}}s(C)}return await e({transport:C.logger.transport,level:C.logger.level}),C};export{x as default};
//# sourceMappingURL=process-config.mjs.map