@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
1 lines • 1.79 kB
Source Map (JSON)
{"version":3,"file":"relation-item-count-validation.mjs","names":[],"sources":["../../../../../src/libs/collection/custom-fields/utils/relation-item-count-validation.ts"],"sourcesContent":["import { copy } from \"../../../i18n/index.js\";\nimport type { CustomFieldValidateResponse } from \"../types.js\";\n\n/**\n * Applies multi-value min/max item validation for relation fields while\n * leaving single-value fields unaffected.\n */\nexport const validateRelationItemCount = (props: {\n\tmultiple?: boolean;\n\tlength: number;\n\tvalidation?: {\n\t\tminItems?: number;\n\t\tmaxItems?: number;\n\t};\n}): CustomFieldValidateResponse => {\n\tif (props.multiple !== true) {\n\t\treturn {\n\t\t\tvalid: true,\n\t\t};\n\t}\n\n\tif (\n\t\ttypeof props.validation?.minItems === \"number\" &&\n\t\tprops.length < props.validation.minItems\n\t) {\n\t\treturn {\n\t\t\tvalid: false,\n\t\t\tmessage: copy(\"server:core.fields.relation.validation.min.items\", {\n\t\t\t\tdata: {\n\t\t\t\t\tmin: props.validation.minItems,\n\t\t\t\t},\n\t\t\t}),\n\t\t};\n\t}\n\n\tif (\n\t\ttypeof props.validation?.maxItems === \"number\" &&\n\t\tprops.length > props.validation.maxItems\n\t) {\n\t\treturn {\n\t\t\tvalid: false,\n\t\t\tmessage: copy(\"server:core.fields.relation.validation.max.items\", {\n\t\t\t\tdata: {\n\t\t\t\t\tmax: props.validation.maxItems,\n\t\t\t\t},\n\t\t\t}),\n\t\t};\n\t}\n\n\treturn {\n\t\tvalid: true,\n\t};\n};\n"],"mappings":"8CAOA,MAAa,EAA6B,GAQrC,EAAM,WAAa,GAOtB,OAAO,EAAM,YAAY,UAAa,UACtC,EAAM,OAAS,EAAM,WAAW,SAEzB,CACN,MAAO,GACP,QAAS,EAAK,mDAAoD,CACjE,KAAM,CACL,IAAK,EAAM,WAAW,QACvB,CACD,CAAC,CACF,EAIA,OAAO,EAAM,YAAY,UAAa,UACtC,EAAM,OAAS,EAAM,WAAW,SAEzB,CACN,MAAO,GACP,QAAS,EAAK,mDAAoD,CACjE,KAAM,CACL,IAAK,EAAM,WAAW,QACvB,CACD,CAAC,CACF,EAGM,CACN,MAAO,EACR,EAnCQ,CACN,MAAO,EACR"}