@strapi/utils
Version:
Shared utilities for the Strapi packages
1 lines • 3.45 kB
Source Map (JSON)
{"version":3,"file":"remove-unrecognized-fields.mjs","sources":["../../../src/sanitize/visitors/remove-unrecognized-fields.ts"],"sourcesContent":["import {\n isDynamicZoneAttribute,\n isMorphToRelationalAttribute,\n isRelationalAttribute,\n isComponentSchema,\n isMediaAttribute,\n isComponentAttribute,\n DYNAMIC_ZONE_KEYS,\n ID_FIELDS,\n MORPH_TO_KEYS,\n RELATION_OPERATION_KEYS,\n} from '../../content-types';\nimport type { Visitor } from '../../traverse-entity';\n\nconst removeUnrecognizedFields: Visitor = (\n { key, attribute, path, schema, parent, allowedExtraRootKeys },\n { remove }\n) => {\n // We only look at properties that are not attributes\n if (attribute) {\n return;\n }\n\n // At root level (path.attribute === null), only accept id-like fields\n if (path.attribute === null) {\n if (ID_FIELDS.includes(key)) {\n return;\n }\n if (allowedExtraRootKeys?.includes(key)) {\n return;\n }\n\n remove(key);\n return;\n }\n\n // allow special morphTo keys\n if (isMorphToRelationalAttribute(parent?.attribute) && MORPH_TO_KEYS.includes(key)) {\n return;\n }\n\n // allow special dz keys\n if (\n isComponentSchema(schema) &&\n isDynamicZoneAttribute(parent?.attribute) &&\n DYNAMIC_ZONE_KEYS.includes(key)\n ) {\n return;\n }\n\n // allow relation operation keys (connect, disconnect, set, options) for relations and media\n if (\n (isRelationalAttribute(parent?.attribute) || isMediaAttribute(parent?.attribute)) &&\n RELATION_OPERATION_KEYS.includes(key)\n ) {\n return;\n }\n\n // allow id fields for relations, media, and components\n const canUseID =\n isRelationalAttribute(parent?.attribute) ||\n isMediaAttribute(parent?.attribute) ||\n isComponentAttribute(parent?.attribute);\n if (canUseID && ID_FIELDS.includes(key)) {\n return;\n }\n\n // if we couldn't find any reason for it to be here, remove it\n remove(key);\n};\n\nexport default removeUnrecognizedFields;\n"],"names":["removeUnrecognizedFields","key","attribute","path","schema","parent","allowedExtraRootKeys","remove","ID_FIELDS","includes","isMorphToRelationalAttribute","MORPH_TO_KEYS","isComponentSchema","isDynamicZoneAttribute","DYNAMIC_ZONE_KEYS","isRelationalAttribute","isMediaAttribute","RELATION_OPERATION_KEYS","canUseID","isComponentAttribute"],"mappings":";;AAcA,MAAMA,2BAAoC,CACxC,EAAEC,GAAG,EAAEC,SAAS,EAAEC,IAAI,EAAEC,MAAM,EAAEC,MAAM,EAAEC,oBAAoB,EAAE,EAC9D,EAAEC,MAAM,EAAE,GAAA;;AAGV,IAAA,IAAIL,SAAAA,EAAW;AACb,QAAA;AACF,IAAA;;IAGA,IAAIC,IAAAA,CAAKD,SAAS,KAAK,IAAA,EAAM;QAC3B,IAAIM,SAAAA,CAAUC,QAAQ,CAACR,GAAAA,CAAAA,EAAM;AAC3B,YAAA;AACF,QAAA;QACA,IAAIK,oBAAAA,EAAsBG,SAASR,GAAAA,CAAAA,EAAM;AACvC,YAAA;AACF,QAAA;QAEAM,MAAAA,CAAON,GAAAA,CAAAA;AACP,QAAA;AACF,IAAA;;AAGA,IAAA,IAAIS,6BAA6BL,MAAAA,EAAQH,SAAAA,CAAAA,IAAcS,aAAAA,CAAcF,QAAQ,CAACR,GAAAA,CAAAA,EAAM;AAClF,QAAA;AACF,IAAA;;IAGA,IACEW,iBAAAA,CAAkBR,WAClBS,sBAAAA,CAAuBR,MAAAA,EAAQH,cAC/BY,iBAAAA,CAAkBL,QAAQ,CAACR,GAAAA,CAAAA,EAC3B;AACA,QAAA;AACF,IAAA;;AAGA,IAAA,IACE,CAACc,qBAAAA,CAAsBV,MAAAA,EAAQH,SAAAA,CAAAA,IAAcc,gBAAAA,CAAiBX,MAAAA,EAAQH,SAAAA,CAAS,KAC/Ee,uBAAAA,CAAwBR,QAAQ,CAACR,GAAAA,CAAAA,EACjC;AACA,QAAA;AACF,IAAA;;IAGA,MAAMiB,QAAAA,GACJH,sBAAsBV,MAAAA,EAAQH,SAAAA,CAAAA,IAC9Bc,iBAAiBX,MAAAA,EAAQH,SAAAA,CAAAA,IACzBiB,qBAAqBd,MAAAA,EAAQH,SAAAA,CAAAA;AAC/B,IAAA,IAAIgB,QAAAA,IAAYV,SAAAA,CAAUC,QAAQ,CAACR,GAAAA,CAAAA,EAAM;AACvC,QAAA;AACF,IAAA;;IAGAM,MAAAA,CAAON,GAAAA,CAAAA;AACT;;;;"}