UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

2 lines 3.13 kB
import{copy as e}from"../../i18n/copy.mjs";import t from"../helpers/build-schema-index.mjs";import n from"../helpers/prefix-generated-column-name.mjs";import{hasRuntimeConfig as r,hasValidationConfig as i,hasZodValidation as a}from"./utils/helpers.mjs";import{normalizeRelationValues as o}from"./utils/normalize-relation-values.mjs";import s from"./utils/zod-safe-parse.mjs";var c=class{treeParent=null;tabParent=null;structuralParent=null;get sharedValidationFlags(){return{skipValidation:!1,skipRequiredValidation:!1,skipZodValidation:!1}}get supportsAi(){return!1}get defaultAiGuidance(){return[]}get aiConfig(){let e=this.config.ai,t=this.supportsAi===!0?e?.enabled??!0:!1;return{enabled:t,instructions:e?.instructions,guidance:t?e?.guidance??this.defaultAiGuidance:[],context:e?.context}}get jsonSchema(){return null}get details(){return this.config.details}normalizeInputValue(e){return e}formatAiGeneratedValue(e){return{success:!0,value:e}}get localizedEnabled(){return r(this.config)?this.config.localized??!1:!1}get defaultValue(){return!r(this.config)||!Object.hasOwn(this.config,`default`)?null:this.config.default}get errors(){return{fieldType:{condition:e=>e!==this.type,message:e(`server:core.fields.validation.type.mismatch`,{data:{received:`unknown`,expected:this.config.type}})},required:{condition:e=>e==null||e===``,message:e(`server:core.fields.validation.required`)},zod:{message:e(`server:core.fields.validation.invalid`)}}}getIndexDefinitions(e){if(!e.shouldIndex)return[];let n=e.columns.filter(e=>e.source===`field`).map(e=>e.name);if(n.length===0)return[];let r=e.columns.some(e=>e.name===`document_id`);return n.flatMap(n=>[t({db:e.db,tableName:e.table.name,columns:[n],source:`field`}),...r?[t({db:e.db,tableName:e.table.name,columns:[n,`document_id`],source:`field`})]:[]])}serializeRelationFieldValue(e){return[]}get relationValueColumn(){return null}extractRelationFieldValue(e){let t=this.relationValueColumn;return t?e[n(t)]??null:null}getRelationFieldValidationInput(e){return{default:o(this.normalizeInputValue(e))}}getRelationFieldRefTargets(e){return[]}validate(e){if(this.sharedValidationFlags.skipValidation)return{valid:!0};let t=this.validateFieldType(e.type);if(t.valid===!1)return t;let n=this.normalizeInputValue(e.value),r=this.validateRequired(n);if(!r.valid)return r;if(n==null||n===``)return{valid:!0};let i=this.validateZodConstraint(n);return i.valid?this.uniqueValidation(n,e.refData):i}validateFieldType(t){return this.errors.fieldType.condition?.(t)?{valid:!1,message:e(`server:core.fields.validation.type.mismatch`,{data:{received:t,expected:this.config.type}})}:{valid:!0}}validateRequired(e){return this.sharedValidationFlags.skipRequiredValidation||!i(this.config)?{valid:!0}:this.config.validation?.required===!0&&this.errors.required.condition?.(e)?{valid:!1,message:this.errors.required.message}:{valid:!0}}validateZodConstraint(e){return this.sharedValidationFlags.skipZodValidation||!i(this.config)||!a(this.config.validation)||!this.config.validation.zod?{valid:!0}:s(e,this.config.validation.zod)}};export{c as default}; //# sourceMappingURL=custom-field.mjs.map