UNPKG

@strapi/utils

Version:

Shared utilities for the Strapi packages

1 lines 1.97 kB
{"version":3,"file":"route-serialization.mjs","sources":["../src/route-serialization.ts"],"sourcesContent":["/*\n * Utility to sanitize content API route objects for safe JSON serialization.\n * Removes Zod validation fields (request/response) for safe serialization.\n *\n * NOTE: some content API routes are returned to the admin panel e.g. to\n * populate the users and permissions roles page. We need to ensure that the\n * routes can be serialized to JSON without errors.\n */\n\nexport const sanitizeRouteForSerialization = ({\n request,\n response,\n ...rest\n}: Record<string, unknown>) => rest as Record<string, unknown>;\n\nexport const sanitizeRoutesArrayForSerialization = (routes: unknown[]): Record<string, unknown>[] =>\n routes\n .filter((route): route is Record<string, unknown> => !!route && typeof route === 'object')\n .map(sanitizeRouteForSerialization);\n\nexport const sanitizeRoutesMapForSerialization = (\n map: Record<string, unknown[]>\n): Record<string, unknown> =>\n Object.entries(map).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: Array.isArray(value) ? sanitizeRoutesArrayForSerialization(value) : value,\n }),\n {}\n );\n"],"names":["sanitizeRouteForSerialization","request","response","rest","sanitizeRoutesArrayForSerialization","routes","filter","route","map","sanitizeRoutesMapForSerialization","Object","entries","reduce","acc","key","value","Array","isArray"],"mappings":"AAAA;;;;;;;AAOC,IAEM,MAAMA,6BAAgC,GAAA,CAAC,EAC5CC,OAAO,EACPC,QAAQ,EACR,GAAGC,IACqB,EAAA,GAAKA;MAElBC,mCAAsC,GAAA,CAACC,MAClDA,GAAAA,MAAAA,CACGC,MAAM,CAAC,CAACC,KAA4C,GAAA,CAAC,CAACA,KAAS,IAAA,OAAOA,UAAU,QAChFC,CAAAA,CAAAA,GAAG,CAACR,6BAA+B;MAE3BS,iCAAoC,GAAA,CAC/CD,GAEAE,GAAAA,MAAAA,CAAOC,OAAO,CAACH,GAAAA,CAAAA,CAAKI,MAAM,CACxB,CAACC,GAAK,EAAA,CAACC,GAAKC,EAAAA,KAAAA,CAAM,IAAM;AACtB,YAAA,GAAGF,GAAG;AACN,YAAA,CAACC,MAAME,KAAAA,CAAMC,OAAO,CAACF,KAAAA,CAAAA,GAASX,oCAAoCW,KAASA,CAAAA,GAAAA;SAC7E,CAAA,EACA,EACA;;;;"}