UNPKG

@strapi/utils

Version:

Shared utilities for the Strapi packages

1 lines 3.36 kB
{"version":3,"file":"query-fields.mjs","sources":["../../src/traverse/query-fields.ts"],"sourcesContent":["import { curry, isArray, isString, eq, trim, constant } from 'lodash/fp';\n\nimport traverseFactory from './factory';\n\nconst isStringArray = (value: unknown): value is string[] => {\n return isArray(value) && value.every(isString);\n};\n\nconst fields = traverseFactory()\n // Intercept array of strings\n // e.g. fields=['title', 'description']\n .intercept(isStringArray, async (visitor, options, fields, { recurse }) => {\n return Promise.all(fields.map((field) => recurse(visitor, options, field)));\n })\n // Intercept comma separated fields (as string)\n // e.g. fields='title,description'\n .intercept(\n (value): value is string => isString(value) && value.includes(','),\n (visitor, options, fields, { recurse }) => {\n return Promise.all(fields.split(',').map((field) => recurse(visitor, options, field)));\n }\n )\n // Return wildcards as is\n .intercept((value): value is string => eq('*', value), constant('*'))\n // Parse string values\n // Since we're parsing strings only, each value should be an attribute name (and it's value, undefined),\n // thus it shouldn't be possible to set a new value, and get should return the whole data if key === data\n .parse(isString, () => ({\n transform: trim,\n\n remove(key, data) {\n return data === key ? undefined : data;\n },\n\n set(_key, _value, data) {\n return data;\n },\n\n keys(data) {\n return [data];\n },\n\n get(key, data) {\n return key === data ? data : undefined;\n },\n }));\n\nexport default curry(fields.traverse);\n"],"names":["isStringArray","value","isArray","every","isString","fields","traverseFactory","intercept","visitor","options","recurse","Promise","all","map","field","includes","split","eq","constant","parse","transform","trim","remove","key","data","undefined","set","_key","_value","keys","get","curry","traverse"],"mappings":";;;AAIA,MAAMA,gBAAgB,CAACC,KAAAA,GAAAA;AACrB,IAAA,OAAOC,OAAAA,CAAQD,KAAAA,CAAAA,IAAUA,KAAAA,CAAME,KAAK,CAACC,QAAAA,CAAAA;AACvC,CAAA;AAEA,MAAMC,MAAAA,GAASC,iBACb;AACA;CACCC,SAAS,CAACP,eAAe,OAAOQ,OAAAA,EAASC,SAASJ,MAAAA,EAAQ,EAAEK,OAAO,EAAE,GAAA;IACpE,OAAOC,OAAAA,CAAQC,GAAG,CAACP,MAAAA,CAAOQ,GAAG,CAAC,CAACC,KAAAA,GAAUJ,OAAAA,CAAQF,OAAAA,EAASC,OAAAA,EAASK,KAAAA,CAAAA,CAAAA,CAAAA;AACrE,CAAA,CACA;AACA;AACCP,CAAAA,SAAS,CACR,CAACN,KAAAA,GAA2BG,QAAAA,CAASH,UAAUA,KAAAA,CAAMc,QAAQ,CAAC,GAAA,CAAA,EAC9D,CAACP,OAAAA,EAASC,OAAAA,EAASJ,MAAAA,EAAQ,EAAEK,OAAO,EAAE,GAAA;AACpC,IAAA,OAAOC,OAAAA,CAAQC,GAAG,CAACP,MAAAA,CAAOW,KAAK,CAAC,GAAA,CAAA,CAAKH,GAAG,CAAC,CAACC,KAAAA,GAAUJ,OAAAA,CAAQF,SAASC,OAAAA,EAASK,KAAAA,CAAAA,CAAAA,CAAAA;AAChF,CAAA,CAEF;CACCP,SAAS,CAAC,CAACN,KAAAA,GAA2BgB,EAAAA,CAAG,KAAKhB,KAAAA,CAAAA,EAAQiB,QAAAA,CAAS,KAChE;AACA;AACA;CACCC,KAAK,CAACf,QAAAA,EAAU,KAAO;QACtBgB,SAAAA,EAAWC,IAAAA;QAEXC,MAAAA,CAAAA,CAAOC,GAAG,EAAEC,IAAI,EAAA;YACd,OAAOA,IAAAA,KAASD,MAAME,SAAAA,GAAYD,IAAAA;AACpC,QAAA,CAAA;AAEAE,QAAAA,GAAAA,CAAAA,CAAIC,IAAI,EAAEC,MAAM,EAAEJ,IAAI,EAAA;YACpB,OAAOA,IAAAA;AACT,QAAA,CAAA;AAEAK,QAAAA,IAAAA,CAAAA,CAAKL,IAAI,EAAA;YACP,OAAO;AAACA,gBAAAA;AAAK,aAAA;AACf,QAAA,CAAA;QAEAM,GAAAA,CAAAA,CAAIP,GAAG,EAAEC,IAAI,EAAA;YACX,OAAOD,GAAAA,KAAQC,OAAOA,IAAAA,GAAOC,SAAAA;AAC/B,QAAA;KACF,CAAA,CAAA;AAEF,0BAAeM,KAAAA,CAAM1B,MAAAA,CAAO2B,QAAQ,CAAA;;;;"}