@graphql-box/cache-manager 3.1.2 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/lib/browser/index.js +1 -1
  2. package/lib/browser/index.js.map +1 -1
  3. package/lib/browser/production.analysis.txt +44 -56
  4. package/lib/main/debug/log-cache-entry/index.js +8 -3
  5. package/lib/main/debug/log-cache-entry/index.js.map +1 -1
  6. package/lib/main/debug/log-cache-query/index.js +8 -3
  7. package/lib/main/debug/log-cache-query/index.js.map +1 -1
  8. package/lib/main/helpers/createFragmentSpreadChecklist.js +10 -15
  9. package/lib/main/helpers/createFragmentSpreadChecklist.js.map +1 -1
  10. package/lib/main/helpers/filterField.js +1 -3
  11. package/lib/main/helpers/filterField.js.map +1 -1
  12. package/lib/main/helpers/filterFragmentDefinitions.js +3 -3
  13. package/lib/main/helpers/filterFragmentDefinitions.js.map +1 -1
  14. package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js +1 -3
  15. package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js.map +1 -1
  16. package/lib/main/helpers/filterQuery.js +2 -4
  17. package/lib/main/helpers/filterQuery.js.map +1 -1
  18. package/lib/main/main/index.js +25 -14
  19. package/lib/main/main/index.js.map +1 -1
  20. package/lib/module/debug/log-cache-entry/index.js +8 -3
  21. package/lib/module/debug/log-cache-entry/index.js.map +1 -1
  22. package/lib/module/debug/log-cache-query/index.js +8 -3
  23. package/lib/module/debug/log-cache-query/index.js.map +1 -1
  24. package/lib/module/helpers/createFragmentSpreadChecklist.js +10 -14
  25. package/lib/module/helpers/createFragmentSpreadChecklist.js.map +1 -1
  26. package/lib/module/helpers/filterField.js +1 -2
  27. package/lib/module/helpers/filterField.js.map +1 -1
  28. package/lib/module/helpers/filterFragmentDefinitions.js +4 -4
  29. package/lib/module/helpers/filterFragmentDefinitions.js.map +1 -1
  30. package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js +1 -2
  31. package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js.map +1 -1
  32. package/lib/module/helpers/filterQuery.js +2 -3
  33. package/lib/module/helpers/filterQuery.js.map +1 -1
  34. package/lib/module/main/index.js +22 -10
  35. package/lib/module/main/index.js.map +1 -1
  36. package/lib/types/debug/log-cache-entry/index.d.ts.map +1 -1
  37. package/lib/types/debug/log-cache-query/index.d.ts.map +1 -1
  38. package/lib/types/defs/index.d.ts +3 -16
  39. package/lib/types/defs/index.d.ts.map +1 -1
  40. package/lib/types/helpers/createFragmentSpreadChecklist.d.ts +2 -1
  41. package/lib/types/helpers/createFragmentSpreadChecklist.d.ts.map +1 -1
  42. package/lib/types/helpers/filterField.d.ts.map +1 -1
  43. package/lib/types/helpers/filterOutPropsWithArgsOrDirectives.d.ts +2 -1
  44. package/lib/types/helpers/filterOutPropsWithArgsOrDirectives.d.ts.map +1 -1
  45. package/lib/types/helpers/filterQuery.d.ts.map +1 -1
  46. package/lib/types/main/index.d.ts +6 -3
  47. package/lib/types/main/index.d.ts.map +1 -1
  48. package/package.json +1 -1
  49. package/src/__snapshots__/index.test.ts.snap +1082 -1082
  50. package/src/debug/log-cache-entry/index.ts +8 -3
  51. package/src/debug/log-cache-query/index.ts +8 -3
  52. package/src/defs/index.ts +8 -17
  53. package/src/helpers/createFragmentSpreadChecklist.ts +3 -3
  54. package/src/helpers/filterField.ts +8 -2
  55. package/src/helpers/filterFragmentDefinitions.ts +2 -2
  56. package/src/helpers/filterOutPropsWithArgsOrDirectives.ts +2 -3
  57. package/src/helpers/filterQuery.ts +7 -3
  58. package/src/main/index.ts +30 -14
  59. package/lib/main/helpers/buildKeysAndPaths.js +0 -73
  60. package/lib/main/helpers/buildKeysAndPaths.js.map +0 -1
  61. package/lib/module/helpers/buildKeysAndPaths.js +0 -54
  62. package/lib/module/helpers/buildKeysAndPaths.js.map +0 -1
  63. package/lib/types/helpers/buildKeysAndPaths.d.ts +0 -10
  64. package/lib/types/helpers/buildKeysAndPaths.d.ts.map +0 -1
  65. package/src/helpers/buildKeysAndPaths.ts +0 -71
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/createFragmentSpreadChecklist.ts"],"names":["getFragmentDefinitions","ast","request","reduce","acc","name","deleted","paths","total","match","RegExp","length"],"mappings":";AACA,SAASA,sBAAT,QAAuC,sBAAvC;AAWA,gBAAe,CAAC;AAAEC,EAAAA,GAAF;AAAOC,EAAAA;AAAP,CAAD;AAAA;;AAAA,SACb,+BAAKF,sBAAsB,CAACC,GAAD,CAA3B,yEAAoC,EAApC,EAAwCE,MAAxC,CAA+C,CAACC,GAAD,EAA8BC,IAA9B,KAAuC;AACpFD,IAAAA,GAAG,CAACC,IAAD,CAAH,GAAY;AAAEC,MAAAA,OAAO,EAAE,CAAX;AAAcC,MAAAA,KAAK,EAAE,EAArB;AAAyBC,MAAAA,KAAK,EAAE,CAACN,OAAO,CAACO,KAAR,CAAc,IAAIC,MAAJ,CAAY,YAAWL,IAAK,EAA5B,EAA+B,GAA/B,CAAd,KAAsD,EAAvD,EAA2DM;AAA3F,KAAZ;AACA,WAAOP,GAAP;AACD,GAHD,EAGG,EAHH,CADa;AAAA,CAAf","sourcesContent":["import { RequestData } from \"@graphql-box/core\";\nimport { getFragmentDefinitions } from \"@graphql-box/helpers\";\nimport { keys } from \"lodash\";\n\nexport type FragmentSpreadCheckist = {\n [key: string]: {\n deleted: number;\n paths: string[];\n total: number;\n };\n};\n\nexport default ({ ast, request }: RequestData) =>\n keys(getFragmentDefinitions(ast) ?? {}).reduce((acc: FragmentSpreadCheckist, name) => {\n acc[name] = { deleted: 0, paths: [], total: (request.match(new RegExp(`\\\\.\\\\.\\\\.${name}`, \"g\")) || []).length };\n return acc;\n }, {});\n"],"file":"createFragmentSpreadChecklist.js"}
1
+ {"version":3,"sources":["../../../src/helpers/createFragmentSpreadChecklist.ts"],"names":["request","fragmentDefinitions","reduce","acc","name","deleted","paths","total","match","RegExp","length"],"mappings":";AAYA,gBAAe,CAAC;AAAEA,EAAAA;AAAF,CAAD,EAA2B;AAAEC,EAAAA;AAAF,CAA3B,KACb,MAAKA,mBAAL,aAAKA,mBAAL,cAAKA,mBAAL,GAA4B,EAA5B,EAAgCC,MAAhC,CAAuC,CAACC,GAAD,EAA8BC,IAA9B,KAAuC;AAC5ED,EAAAA,GAAG,CAACC,IAAD,CAAH,GAAY;AAAEC,IAAAA,OAAO,EAAE,CAAX;AAAcC,IAAAA,KAAK,EAAE,EAArB;AAAyBC,IAAAA,KAAK,EAAE,CAACP,OAAO,CAACQ,KAAR,CAAc,IAAIC,MAAJ,CAAY,YAAWL,IAAK,EAA5B,EAA+B,GAA/B,CAAd,KAAsD,EAAvD,EAA2DM;AAA3F,GAAZ;AACA,SAAOP,GAAP;AACD,CAHD,EAGG,EAHH,CADF","sourcesContent":["import { RequestData } from \"@graphql-box/core\";\nimport { keys } from \"lodash\";\nimport { CacheManagerContext } from \"../defs\";\n\nexport type FragmentSpreadCheckist = {\n [key: string]: {\n deleted: number;\n paths: string[];\n total: number;\n };\n};\n\nexport default ({ request }: RequestData, { fragmentDefinitions }: CacheManagerContext) =>\n keys(fragmentDefinitions ?? {}).reduce((acc: FragmentSpreadCheckist, name) => {\n acc[name] = { deleted: 0, paths: [], total: (request.match(new RegExp(`\\\\.\\\\.\\\\.${name}`, \"g\")) || []).length };\n return acc;\n }, {});\n"],"file":"createFragmentSpreadChecklist.js"}
@@ -1,6 +1,5 @@
1
1
  import { TYPE_NAME_KEY } from "@graphql-box/core";
2
- import { FRAGMENT_SPREAD, deleteChildFields, getChildFields, getName, hasChildFields } from "@graphql-box/helpers";
3
- import { buildFieldKeysAndPaths } from "./buildKeysAndPaths";
2
+ import { FRAGMENT_SPREAD, buildFieldKeysAndPaths, deleteChildFields, getChildFields, getName, hasChildFields } from "@graphql-box/helpers";
4
3
  import checkFieldPathChecklist from "./checkFieldPathChecklist";
5
4
  import filterFragmentSpreads from "./filterFragmentSpreads";
6
5
  import filterIDsAndTypeNames from "./filterIDsAndTypeNames";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/filterField.ts"],"names":["TYPE_NAME_KEY","FRAGMENT_SPREAD","deleteChildFields","getChildFields","getName","hasChildFields","buildFieldKeysAndPaths","checkFieldPathChecklist","filterFragmentSpreads","filterIDsAndTypeNames","filterInlineFragments","filterField","field","fieldPathChecklist","fragmentSpreadChecklist","ancestorRequestFieldPath","context","fragmentDefinitions","typeIDKey","fieldsAndTypeNames","fragmentSpreadFieldCounter","i","length","fieldNode","childField","fragmentKind","fragmentName","typeName","childTypeName","hasData","total","childFieldName","requestFieldPath","typeUnused","get"],"mappings":"AAAA,SAASA,aAAT,QAA8B,mBAA9B;AACA,SAASC,eAAT,EAA0BC,iBAA1B,EAA6CC,cAA7C,EAA6DC,OAA7D,EAAsEC,cAAtE,QAA4F,sBAA5F;AAGA,SAASC,sBAAT,QAAuC,qBAAvC;AACA,OAAOC,uBAAP,MAAoC,2BAApC;AAEA,OAAOC,qBAAP,MAAkC,yBAAlC;AACA,OAAOC,qBAAP,MAAkC,yBAAlC;AACA,OAAOC,qBAAP,MAAkC,yBAAlC;;AAEA,MAAMC,WAAW,GAAG,CAClBC,KADkB,EAElBC,kBAFkB,EAGlBC,uBAHkB,EAIlBC,wBAJkB,EAKlBC,OALkB,KAMN;AACZ,QAAM;AAAEC,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MAAqCF,OAA3C;AACA,QAAMG,kBAAkB,GAAGhB,cAAc,CAACS,KAAD,EAAQ;AAAEK,IAAAA;AAAF,GAAR,CAAzC;;AAEA,MAAI,CAACE,kBAAL,EAAyB;AACvB,WAAO,KAAP;AACD;;AAED,QAAMC,0BAAsD,GAAG,EAA/D;;AAEA,OAAK,IAAIC,CAAC,GAAGF,kBAAkB,CAACG,MAAnB,GAA4B,CAAzC,EAA4CD,CAAC,IAAI,CAAjD,EAAoDA,CAAC,IAAI,CAAzD,EAA4D;AAC1D,UAAM;AAAEE,MAAAA,SAAS,EAAEC,UAAb;AAAyBC,MAAAA,YAAzB;AAAuCC,MAAAA,YAAvC;AAAqDC,MAAAA,QAAQ,EAAEC;AAA/D,QAAiFT,kBAAkB,CAACE,CAAD,CAAzG;;AAEA,QAAII,YAAY,KAAKxB,eAAjB,IAAoCyB,YAApC,IAAoD,CAACN,0BAA0B,CAACM,YAAD,CAAnF,EAAmG;AAAA;;AACjGN,MAAAA,0BAA0B,CAACM,YAAD,CAA1B,GAA2C;AACzCG,QAAAA,OAAO,EAAE,CADgC;AAEzCC,QAAAA,KAAK,EAAEb,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,IAAAA,mBAAmB,CAAGS,YAAH,CAAnB,+CACHvB,cAAc,CAACc,mBAAD,aAACA,mBAAD,uBAACA,mBAAmB,CAAGS,YAAH,CAApB,EAAsC;AAAET,UAAAA;AAAF,SAAtC,CADX,oDACH,gBAA8EK,MAD3E,yEACqF,CADrF,GAEH;AAJqC,OAA3C;AAMD;;AAED,UAAMS,cAAc,GAAG3B,OAAO,CAACoB,UAAD,CAA9B;;AAEA,QAAIO,cAAc,KAAKb,SAAnB,IAAgCa,cAAc,KAAK/B,aAAvD,EAAsE;AACpE;AACD;;AAED,UAAM;AAAEgC,MAAAA;AAAF,QAAuB1B,sBAAsB,CACjDkB,UADiD,EAEjD;AACEQ,MAAAA,gBAAgB,EAAEjB;AADpB,KAFiD,EAKjDC,OALiD,CAAnD;AAQA,UAAM;AAAEa,MAAAA,OAAF;AAAWI,MAAAA;AAAX,QAA0B1B,uBAAuB,CAACM,kBAAkB,CAACqB,GAAnB,CAAuBF,gBAAvB,CAAD,EAA2CJ,aAA3C,CAAvD;;AAEA,QAAIC,OAAO,IAAII,UAAf,EAA2B;AACzB,UAAIR,YAAY,KAAKxB,eAArB,EAAsC;AACpCmB,QAAAA,0BAA0B,CAACM,YAAD,CAA1B,CAAmDG,OAAnD,IAA8D,CAA9D;AACD,OAFD,MAEO,IAAI,CAACxB,cAAc,CAACmB,UAAD,EAAa;AAAEP,QAAAA;AAAF,OAAb,CAAnB,EAA0D;AAC/Df,QAAAA,iBAAiB,CAACU,KAAD,EAAQY,UAAR,CAAjB;AACD,OAFM,MAEA,IAAIb,WAAW,CAACa,UAAD,EAAaX,kBAAb,EAAiCC,uBAAjC,EAA0DkB,gBAA1D,EAA4EhB,OAA5E,CAAf,EAAqG;AAC1Gd,QAAAA,iBAAiB,CAACU,KAAD,EAAQY,UAAR,CAAjB;AACD;AACF;AACF;;AAEDhB,EAAAA,qBAAqB,CAACI,KAAD,EAAQQ,0BAAR,EAAoCN,uBAApC,EAA6DC,wBAA7D,CAArB;AACAL,EAAAA,qBAAqB,CAACE,KAAD,EAAQI,OAAR,CAArB;AACAP,EAAAA,qBAAqB,CAACG,KAAD,EAAQI,OAAR,CAArB;AACA,SAAO,CAACX,cAAc,CAACO,KAAD,EAAQ;AAAEK,IAAAA;AAAF,GAAR,CAAtB;AACD,CA3DD;;AA6DA,eAAeN,WAAf","sourcesContent":["import { TYPE_NAME_KEY } from \"@graphql-box/core\";\nimport { FRAGMENT_SPREAD, deleteChildFields, getChildFields, getName, hasChildFields } from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode, OperationDefinitionNode } from \"graphql\";\nimport { CacheManagerContext, FieldPathChecklist, FragmentSpreadFieldCounter } from \"../defs\";\nimport { buildFieldKeysAndPaths } from \"./buildKeysAndPaths\";\nimport checkFieldPathChecklist from \"./checkFieldPathChecklist\";\nimport { FragmentSpreadCheckist } from \"./createFragmentSpreadChecklist\";\nimport filterFragmentSpreads from \"./filterFragmentSpreads\";\nimport filterIDsAndTypeNames from \"./filterIDsAndTypeNames\";\nimport filterInlineFragments from \"./filterInlineFragments\";\n\nconst filterField = (\n field: FieldNode | FragmentDefinitionNode | OperationDefinitionNode,\n fieldPathChecklist: FieldPathChecklist,\n fragmentSpreadChecklist: FragmentSpreadCheckist,\n ancestorRequestFieldPath: string,\n context: CacheManagerContext,\n): boolean => {\n const { fragmentDefinitions, typeIDKey } = context;\n const fieldsAndTypeNames = getChildFields(field, { fragmentDefinitions });\n\n if (!fieldsAndTypeNames) {\n return false;\n }\n\n const fragmentSpreadFieldCounter: FragmentSpreadFieldCounter = {};\n\n for (let i = fieldsAndTypeNames.length - 1; i >= 0; i -= 1) {\n const { fieldNode: childField, fragmentKind, fragmentName, typeName: childTypeName } = fieldsAndTypeNames[i];\n\n if (fragmentKind === FRAGMENT_SPREAD && fragmentName && !fragmentSpreadFieldCounter[fragmentName]) {\n fragmentSpreadFieldCounter[fragmentName] = {\n hasData: 0,\n total: fragmentDefinitions?.[fragmentName]\n ? getChildFields(fragmentDefinitions?.[fragmentName], { fragmentDefinitions })?.length ?? 0\n : 0,\n };\n }\n\n const childFieldName = getName(childField);\n\n if (childFieldName === typeIDKey || childFieldName === TYPE_NAME_KEY) {\n continue;\n }\n\n const { requestFieldPath } = buildFieldKeysAndPaths(\n childField,\n {\n requestFieldPath: ancestorRequestFieldPath,\n },\n context,\n );\n\n const { hasData, typeUnused } = checkFieldPathChecklist(fieldPathChecklist.get(requestFieldPath), childTypeName);\n\n if (hasData || typeUnused) {\n if (fragmentKind === FRAGMENT_SPREAD) {\n fragmentSpreadFieldCounter[fragmentName as string].hasData += 1;\n } else if (!hasChildFields(childField, { fragmentDefinitions })) {\n deleteChildFields(field, childField);\n } else if (filterField(childField, fieldPathChecklist, fragmentSpreadChecklist, requestFieldPath, context)) {\n deleteChildFields(field, childField);\n }\n }\n }\n\n filterFragmentSpreads(field, fragmentSpreadFieldCounter, fragmentSpreadChecklist, ancestorRequestFieldPath);\n filterInlineFragments(field, context);\n filterIDsAndTypeNames(field, context);\n return !hasChildFields(field, { fragmentDefinitions });\n};\n\nexport default filterField;\n"],"file":"filterField.js"}
1
+ {"version":3,"sources":["../../../src/helpers/filterField.ts"],"names":["TYPE_NAME_KEY","FRAGMENT_SPREAD","buildFieldKeysAndPaths","deleteChildFields","getChildFields","getName","hasChildFields","checkFieldPathChecklist","filterFragmentSpreads","filterIDsAndTypeNames","filterInlineFragments","filterField","field","fieldPathChecklist","fragmentSpreadChecklist","ancestorRequestFieldPath","context","fragmentDefinitions","typeIDKey","fieldsAndTypeNames","fragmentSpreadFieldCounter","i","length","fieldNode","childField","fragmentKind","fragmentName","typeName","childTypeName","hasData","total","childFieldName","requestFieldPath","typeUnused","get"],"mappings":"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","sourcesContent":["import { TYPE_NAME_KEY } from \"@graphql-box/core\";\nimport {\n FRAGMENT_SPREAD,\n buildFieldKeysAndPaths,\n deleteChildFields,\n getChildFields,\n getName,\n hasChildFields,\n} from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode, OperationDefinitionNode } from \"graphql\";\nimport { CacheManagerContext, FieldPathChecklist, FragmentSpreadFieldCounter } from \"../defs\";\nimport checkFieldPathChecklist from \"./checkFieldPathChecklist\";\nimport { FragmentSpreadCheckist } from \"./createFragmentSpreadChecklist\";\nimport filterFragmentSpreads from \"./filterFragmentSpreads\";\nimport filterIDsAndTypeNames from \"./filterIDsAndTypeNames\";\nimport filterInlineFragments from \"./filterInlineFragments\";\n\nconst filterField = (\n field: FieldNode | FragmentDefinitionNode | OperationDefinitionNode,\n fieldPathChecklist: FieldPathChecklist,\n fragmentSpreadChecklist: FragmentSpreadCheckist,\n ancestorRequestFieldPath: string,\n context: CacheManagerContext,\n): boolean => {\n const { fragmentDefinitions, typeIDKey } = context;\n const fieldsAndTypeNames = getChildFields(field, { fragmentDefinitions });\n\n if (!fieldsAndTypeNames) {\n return false;\n }\n\n const fragmentSpreadFieldCounter: FragmentSpreadFieldCounter = {};\n\n for (let i = fieldsAndTypeNames.length - 1; i >= 0; i -= 1) {\n const { fieldNode: childField, fragmentKind, fragmentName, typeName: childTypeName } = fieldsAndTypeNames[i];\n\n if (fragmentKind === FRAGMENT_SPREAD && fragmentName && !fragmentSpreadFieldCounter[fragmentName]) {\n fragmentSpreadFieldCounter[fragmentName] = {\n hasData: 0,\n total: fragmentDefinitions?.[fragmentName]\n ? getChildFields(fragmentDefinitions?.[fragmentName], { fragmentDefinitions })?.length ?? 0\n : 0,\n };\n }\n\n const childFieldName = getName(childField);\n\n if (childFieldName === typeIDKey || childFieldName === TYPE_NAME_KEY) {\n continue;\n }\n\n const { requestFieldPath } = buildFieldKeysAndPaths(\n childField,\n {\n requestFieldPath: ancestorRequestFieldPath,\n },\n context,\n );\n\n const { hasData, typeUnused } = checkFieldPathChecklist(fieldPathChecklist.get(requestFieldPath), childTypeName);\n\n if (hasData || typeUnused) {\n if (fragmentKind === FRAGMENT_SPREAD) {\n fragmentSpreadFieldCounter[fragmentName as string].hasData += 1;\n } else if (!hasChildFields(childField, { fragmentDefinitions })) {\n deleteChildFields(field, childField);\n } else if (filterField(childField, fieldPathChecklist, fragmentSpreadChecklist, requestFieldPath, context)) {\n deleteChildFields(field, childField);\n }\n }\n }\n\n filterFragmentSpreads(field, fragmentSpreadFieldCounter, fragmentSpreadChecklist, ancestorRequestFieldPath);\n filterInlineFragments(field, context);\n filterIDsAndTypeNames(field, context);\n return !hasChildFields(field, { fragmentDefinitions });\n};\n\nexport default filterField;\n"],"file":"filterField.js"}
@@ -1,9 +1,7 @@
1
1
  import _keys from "lodash/keys";
2
- import { deleteFragmentDefinitions, getFragmentDefinitions } from "@graphql-box/helpers";
2
+ import { deleteFragmentDefinitions } from "@graphql-box/helpers";
3
3
  import filterField from "./filterField";
4
4
  export default ((ast, fieldPathChecklist, fragmentSpreadChecklist, context) => {
5
- var _getFragmentDefinitio;
6
-
7
5
  const definitionsToFilter = _keys(fragmentSpreadChecklist).reduce((namesAndPaths, key) => {
8
6
  const {
9
7
  deleted,
@@ -15,7 +13,9 @@ export default ((ast, fieldPathChecklist, fragmentSpreadChecklist, context) => {
15
13
  }] : namesAndPaths;
16
14
  }, []);
17
15
 
18
- const fragmentDefinitions = (_getFragmentDefinitio = getFragmentDefinitions(ast)) !== null && _getFragmentDefinitio !== void 0 ? _getFragmentDefinitio : {};
16
+ const {
17
+ fragmentDefinitions = {}
18
+ } = context;
19
19
  definitionsToFilter.forEach(({
20
20
  name,
21
21
  path
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/filterFragmentDefinitions.ts"],"names":["deleteFragmentDefinitions","getFragmentDefinitions","filterField","ast","fieldPathChecklist","fragmentSpreadChecklist","context","definitionsToFilter","reduce","namesAndPaths","key","deleted","total","name","path","paths","fragmentDefinitions","forEach","fragmentDefinition","definitionsToDelete","names","length","include"],"mappings":";AAAA,SAASA,yBAAT,EAAoCC,sBAApC,QAAkE,sBAAlE;AAKA,OAAOC,WAAP,MAAwB,eAAxB;AAEA,gBAAe,CACbC,GADa,EAEbC,kBAFa,EAGbC,uBAHa,EAIbC,OAJa,KAKV;AAAA;;AACH,QAAMC,mBAAmB,GAAG,MAAKF,uBAAL,EAA8BG,MAA9B,CAC1B,CAACC,aAAD,EAAkDC,GAAlD,KAA0D;AACxD,UAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAAqBP,uBAAuB,CAACK,GAAD,CAAlD;AAEA,WAAOC,OAAO,KAAK,CAAZ,IAAiBC,KAAK,KAAK,CAA3B,GACH,CAAC,GAAGH,aAAJ,EAAmB;AAAEI,MAAAA,IAAI,EAAEH,GAAR;AAAaI,MAAAA,IAAI,EAAET,uBAAuB,CAACK,GAAD,CAAvB,CAA6BK,KAA7B,CAAmC,CAAnC;AAAnB,KAAnB,CADG,GAEHN,aAFJ;AAGD,GAPyB,EAQ1B,EAR0B,CAA5B;;AAWA,QAAMO,mBAAmB,4BAAGf,sBAAsB,CAACE,GAAD,CAAzB,yEAAkC,EAA3D;AAEAI,EAAAA,mBAAmB,CAACU,OAApB,CAA4B,CAAC;AAAEJ,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAD,KAAoB;AAC9C,UAAMI,kBAAkB,GAAGF,mBAAmB,CAACH,IAAD,CAA9C;AACAX,IAAAA,WAAW,CAACgB,kBAAD,EAAqBd,kBAArB,EAAyCC,uBAAzC,EAAkES,IAAlE,EAAwER,OAAxE,CAAX;AACD,GAHD;;AAKA,QAAMa,mBAAmB,GAAG,MAAKd,uBAAL,EAA8BG,MAA9B,CAAqC,CAACY,KAAD,EAAkBV,GAAlB,KAA0B;AACzF,UAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAAqBP,uBAAuB,CAACK,GAAD,CAAlD;AACA,WAAOC,OAAO,GAAG,CAAV,IAAeA,OAAO,KAAKC,KAA3B,GAAmC,CAAC,GAAGQ,KAAJ,EAAWV,GAAX,CAAnC,GAAqDU,KAA5D;AACD,GAH2B,EAGzB,EAHyB,CAA5B;;AAKA,MAAI,CAACD,mBAAmB,CAACE,MAAzB,EAAiC;AAC/B,WAAOlB,GAAP;AACD;;AAED,SAAOH,yBAAyB,CAACG,GAAD,EAAM;AACpCmB,IAAAA,OAAO,EAAEH;AAD2B,GAAN,CAAhC;AAGD,CApCD","sourcesContent":["import { deleteFragmentDefinitions, getFragmentDefinitions } from \"@graphql-box/helpers\";\nimport { DocumentNode } from \"graphql\";\nimport { keys } from \"lodash\";\nimport { CacheManagerContext, FieldPathChecklist } from \"../defs\";\nimport { FragmentSpreadCheckist } from \"./createFragmentSpreadChecklist\";\nimport filterField from \"./filterField\";\n\nexport default (\n ast: DocumentNode,\n fieldPathChecklist: FieldPathChecklist,\n fragmentSpreadChecklist: FragmentSpreadCheckist,\n context: CacheManagerContext,\n) => {\n const definitionsToFilter = keys(fragmentSpreadChecklist).reduce(\n (namesAndPaths: { name: string; path: string }[], key) => {\n const { deleted, total } = fragmentSpreadChecklist[key];\n\n return deleted === 0 && total === 1\n ? [...namesAndPaths, { name: key, path: fragmentSpreadChecklist[key].paths[0] as string }]\n : namesAndPaths;\n },\n [],\n );\n\n const fragmentDefinitions = getFragmentDefinitions(ast) ?? {};\n\n definitionsToFilter.forEach(({ name, path }) => {\n const fragmentDefinition = fragmentDefinitions[name];\n filterField(fragmentDefinition, fieldPathChecklist, fragmentSpreadChecklist, path, context);\n });\n\n const definitionsToDelete = keys(fragmentSpreadChecklist).reduce((names: string[], key) => {\n const { deleted, total } = fragmentSpreadChecklist[key];\n return deleted > 0 && deleted === total ? [...names, key] : names;\n }, []);\n\n if (!definitionsToDelete.length) {\n return ast;\n }\n\n return deleteFragmentDefinitions(ast, {\n include: definitionsToDelete,\n });\n};\n"],"file":"filterFragmentDefinitions.js"}
1
+ {"version":3,"sources":["../../../src/helpers/filterFragmentDefinitions.ts"],"names":["deleteFragmentDefinitions","filterField","ast","fieldPathChecklist","fragmentSpreadChecklist","context","definitionsToFilter","reduce","namesAndPaths","key","deleted","total","name","path","paths","fragmentDefinitions","forEach","fragmentDefinition","definitionsToDelete","names","length","include"],"mappings":";AAAA,SAASA,yBAAT,QAA0C,sBAA1C;AAKA,OAAOC,WAAP,MAAwB,eAAxB;AAEA,gBAAe,CACbC,GADa,EAEbC,kBAFa,EAGbC,uBAHa,EAIbC,OAJa,KAKV;AACH,QAAMC,mBAAmB,GAAG,MAAKF,uBAAL,EAA8BG,MAA9B,CAC1B,CAACC,aAAD,EAAkDC,GAAlD,KAA0D;AACxD,UAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAAqBP,uBAAuB,CAACK,GAAD,CAAlD;AAEA,WAAOC,OAAO,KAAK,CAAZ,IAAiBC,KAAK,KAAK,CAA3B,GACH,CAAC,GAAGH,aAAJ,EAAmB;AAAEI,MAAAA,IAAI,EAAEH,GAAR;AAAaI,MAAAA,IAAI,EAAET,uBAAuB,CAACK,GAAD,CAAvB,CAA6BK,KAA7B,CAAmC,CAAnC;AAAnB,KAAnB,CADG,GAEHN,aAFJ;AAGD,GAPyB,EAQ1B,EAR0B,CAA5B;;AAWA,QAAM;AAAEO,IAAAA,mBAAmB,GAAG;AAAxB,MAA+BV,OAArC;AAEAC,EAAAA,mBAAmB,CAACU,OAApB,CAA4B,CAAC;AAAEJ,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAD,KAAoB;AAC9C,UAAMI,kBAAkB,GAAGF,mBAAmB,CAACH,IAAD,CAA9C;AACAX,IAAAA,WAAW,CAACgB,kBAAD,EAAqBd,kBAArB,EAAyCC,uBAAzC,EAAkES,IAAlE,EAAwER,OAAxE,CAAX;AACD,GAHD;;AAKA,QAAMa,mBAAmB,GAAG,MAAKd,uBAAL,EAA8BG,MAA9B,CAAqC,CAACY,KAAD,EAAkBV,GAAlB,KAA0B;AACzF,UAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAAqBP,uBAAuB,CAACK,GAAD,CAAlD;AACA,WAAOC,OAAO,GAAG,CAAV,IAAeA,OAAO,KAAKC,KAA3B,GAAmC,CAAC,GAAGQ,KAAJ,EAAWV,GAAX,CAAnC,GAAqDU,KAA5D;AACD,GAH2B,EAGzB,EAHyB,CAA5B;;AAKA,MAAI,CAACD,mBAAmB,CAACE,MAAzB,EAAiC;AAC/B,WAAOlB,GAAP;AACD;;AAED,SAAOF,yBAAyB,CAACE,GAAD,EAAM;AACpCmB,IAAAA,OAAO,EAAEH;AAD2B,GAAN,CAAhC;AAGD,CApCD","sourcesContent":["import { deleteFragmentDefinitions } from \"@graphql-box/helpers\";\nimport { DocumentNode } from \"graphql\";\nimport { keys } from \"lodash\";\nimport { CacheManagerContext, FieldPathChecklist } from \"../defs\";\nimport { FragmentSpreadCheckist } from \"./createFragmentSpreadChecklist\";\nimport filterField from \"./filterField\";\n\nexport default (\n ast: DocumentNode,\n fieldPathChecklist: FieldPathChecklist,\n fragmentSpreadChecklist: FragmentSpreadCheckist,\n context: CacheManagerContext,\n) => {\n const definitionsToFilter = keys(fragmentSpreadChecklist).reduce(\n (namesAndPaths: { name: string; path: string }[], key) => {\n const { deleted, total } = fragmentSpreadChecklist[key];\n\n return deleted === 0 && total === 1\n ? [...namesAndPaths, { name: key, path: fragmentSpreadChecklist[key].paths[0] as string }]\n : namesAndPaths;\n },\n [],\n );\n\n const { fragmentDefinitions = {} } = context;\n\n definitionsToFilter.forEach(({ name, path }) => {\n const fragmentDefinition = fragmentDefinitions[name];\n filterField(fragmentDefinition, fieldPathChecklist, fragmentSpreadChecklist, path, context);\n });\n\n const definitionsToDelete = keys(fragmentSpreadChecklist).reduce((names: string[], key) => {\n const { deleted, total } = fragmentSpreadChecklist[key];\n return deleted > 0 && deleted === total ? [...names, key] : names;\n }, []);\n\n if (!definitionsToDelete.length) {\n return ast;\n }\n\n return deleteFragmentDefinitions(ast, {\n include: definitionsToDelete,\n });\n};\n"],"file":"filterFragmentDefinitions.js"}
@@ -1,6 +1,5 @@
1
1
  import _keys from "lodash/keys";
2
- import { getName, resolveFragments } from "@graphql-box/helpers";
3
- import { buildFieldKeysAndPaths } from "./buildKeysAndPaths";
2
+ import { buildFieldKeysAndPaths, getName, resolveFragments } from "@graphql-box/helpers";
4
3
  export default ((fieldData, selectionNodes, ancestorKeysAndPaths, context) => {
5
4
  const fieldAndTypeName = resolveFragments(selectionNodes, context.fragmentDefinitions);
6
5
  return _keys(fieldData).reduce((acc, key) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/filterOutPropsWithArgsOrDirectives.ts"],"names":["getName","resolveFragments","buildFieldKeysAndPaths","fieldData","selectionNodes","ancestorKeysAndPaths","context","fieldAndTypeName","fragmentDefinitions","reduce","acc","key","match","find","fieldNode","requestFieldPath","fieldTypeInfo","fieldTypeMap","get","hasArguments","hasDirectives"],"mappings":";AACA,SAASA,OAAT,EAAkBC,gBAAlB,QAA0C,sBAA1C;AAIA,SAASC,sBAAT,QAAuC,qBAAvC;AAEA,gBAAe,CACbC,SADa,EAEbC,cAFa,EAGbC,oBAHa,EAIbC,OAJa,KAKV;AACH,QAAMC,gBAAgB,GAAGN,gBAAgB,CAACG,cAAD,EAAiBE,OAAO,CAACE,mBAAzB,CAAzC;AAEA,SAAO,MAAKL,SAAL,EAAgBM,MAAhB,CAAuB,CAACC,GAAD,EAAsBC,GAAtB,KAA8B;AAC1D,UAAMC,KAAK,GAAGL,gBAAgB,CAACM,IAAjB,CAAsB,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAoBd,OAAO,CAACc,SAAD,CAAR,KAAuDH,GAAhG,CAAd;;AAEA,QAAIC,KAAJ,EAAW;AACT,YAAM;AAAEG,QAAAA;AAAF,UAAuBb,sBAAsB,CAACU,KAAK,CAACE,SAAP,EAAkBT,oBAAlB,EAAwCC,OAAxC,CAAnD;AACA,YAAMU,aAAa,GAAGV,OAAO,CAACW,YAAR,CAAqBC,GAArB,CAAyBH,gBAAzB,CAAtB;;AAEA,UAAI,EAACC,aAAD,aAACA,aAAD,eAACA,aAAa,CAAEG,YAAhB,KAAgC,EAACH,aAAD,aAACA,aAAD,eAACA,aAAa,CAAEI,aAAhB,CAApC,EAAmE;AACjEV,QAAAA,GAAG,CAACC,GAAD,CAAH,GAAWR,SAAS,CAACQ,GAAD,CAApB;AACD;AACF;;AAED,WAAOD,GAAP;AACD,GAbM,EAaJ,EAbI,CAAP;AAcD,CAtBD","sourcesContent":["import { PlainObjectMap } from \"@graphql-box/core\";\nimport { getName, resolveFragments } from \"@graphql-box/helpers\";\nimport { FieldNode, SelectionNode } from \"graphql\";\nimport { keys } from \"lodash\";\nimport { CacheManagerContext, KeysAndPaths } from \"../defs\";\nimport { buildFieldKeysAndPaths } from \"./buildKeysAndPaths\";\n\nexport default (\n fieldData: PlainObjectMap,\n selectionNodes: readonly SelectionNode[],\n ancestorKeysAndPaths: KeysAndPaths,\n context: CacheManagerContext,\n) => {\n const fieldAndTypeName = resolveFragments(selectionNodes, context.fragmentDefinitions);\n\n return keys(fieldData).reduce((acc: PlainObjectMap, key) => {\n const match = fieldAndTypeName.find(({ fieldNode }) => (getName(fieldNode) as FieldNode[\"name\"][\"value\"]) === key);\n\n if (match) {\n const { requestFieldPath } = buildFieldKeysAndPaths(match.fieldNode, ancestorKeysAndPaths, context);\n const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);\n\n if (!fieldTypeInfo?.hasArguments && !fieldTypeInfo?.hasDirectives) {\n acc[key] = fieldData[key];\n }\n }\n\n return acc;\n }, {});\n};\n"],"file":"filterOutPropsWithArgsOrDirectives.js"}
1
+ {"version":3,"sources":["../../../src/helpers/filterOutPropsWithArgsOrDirectives.ts"],"names":["buildFieldKeysAndPaths","getName","resolveFragments","fieldData","selectionNodes","ancestorKeysAndPaths","context","fieldAndTypeName","fragmentDefinitions","reduce","acc","key","match","find","fieldNode","requestFieldPath","fieldTypeInfo","fieldTypeMap","get","hasArguments","hasDirectives"],"mappings":";AACA,SAAuBA,sBAAvB,EAA+CC,OAA/C,EAAwDC,gBAAxD,QAAgF,sBAAhF;AAKA,gBAAe,CACbC,SADa,EAEbC,cAFa,EAGbC,oBAHa,EAIbC,OAJa,KAKV;AACH,QAAMC,gBAAgB,GAAGL,gBAAgB,CAACE,cAAD,EAAiBE,OAAO,CAACE,mBAAzB,CAAzC;AAEA,SAAO,MAAKL,SAAL,EAAgBM,MAAhB,CAAuB,CAACC,GAAD,EAAsBC,GAAtB,KAA8B;AAC1D,UAAMC,KAAK,GAAGL,gBAAgB,CAACM,IAAjB,CAAsB,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAoBb,OAAO,CAACa,SAAD,CAAR,KAAuDH,GAAhG,CAAd;;AAEA,QAAIC,KAAJ,EAAW;AACT,YAAM;AAAEG,QAAAA;AAAF,UAAuBf,sBAAsB,CAACY,KAAK,CAACE,SAAP,EAAkBT,oBAAlB,EAAwCC,OAAxC,CAAnD;AACA,YAAMU,aAAa,GAAGV,OAAO,CAACW,YAAR,CAAqBC,GAArB,CAAyBH,gBAAzB,CAAtB;;AAEA,UAAI,EAACC,aAAD,aAACA,aAAD,eAACA,aAAa,CAAEG,YAAhB,KAAgC,EAACH,aAAD,aAACA,aAAD,eAACA,aAAa,CAAEI,aAAhB,CAApC,EAAmE;AACjEV,QAAAA,GAAG,CAACC,GAAD,CAAH,GAAWR,SAAS,CAACQ,GAAD,CAApB;AACD;AACF;;AAED,WAAOD,GAAP;AACD,GAbM,EAaJ,EAbI,CAAP;AAcD,CAtBD","sourcesContent":["import { PlainObjectMap } from \"@graphql-box/core\";\nimport { KeysAndPaths, buildFieldKeysAndPaths, getName, resolveFragments } from \"@graphql-box/helpers\";\nimport { FieldNode, SelectionNode } from \"graphql\";\nimport { keys } from \"lodash\";\nimport { CacheManagerContext } from \"../defs\";\n\nexport default (\n fieldData: PlainObjectMap,\n selectionNodes: readonly SelectionNode[],\n ancestorKeysAndPaths: KeysAndPaths,\n context: CacheManagerContext,\n) => {\n const fieldAndTypeName = resolveFragments(selectionNodes, context.fragmentDefinitions);\n\n return keys(fieldData).reduce((acc: PlainObjectMap, key) => {\n const match = fieldAndTypeName.find(({ fieldNode }) => (getName(fieldNode) as FieldNode[\"name\"][\"value\"]) === key);\n\n if (match) {\n const { requestFieldPath } = buildFieldKeysAndPaths(match.fieldNode, ancestorKeysAndPaths, context);\n const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);\n\n if (!fieldTypeInfo?.hasArguments && !fieldTypeInfo?.hasDirectives) {\n acc[key] = fieldData[key];\n }\n }\n\n return acc;\n }, {});\n};\n"],"file":"filterOutPropsWithArgsOrDirectives.js"}
@@ -1,5 +1,4 @@
1
- import { deleteChildFields, getChildFields, getOperationDefinitions } from "@graphql-box/helpers";
2
- import { buildFieldKeysAndPaths } from "./buildKeysAndPaths";
1
+ import { buildFieldKeysAndPaths, deleteChildFields, getChildFields, getOperationDefinitions } from "@graphql-box/helpers";
3
2
  import createFragmentSpreadChecklist from "./createFragmentSpreadChecklist";
4
3
  import filterField from "./filterField";
5
4
  import filterFragmentDefinitions from "./filterFragmentDefinitions";
@@ -21,7 +20,7 @@ export default ((requestData, {
21
20
  return ast;
22
21
  }
23
22
 
24
- const fragmentSpreadChecklist = createFragmentSpreadChecklist(requestData);
23
+ const fragmentSpreadChecklist = createFragmentSpreadChecklist(requestData, context);
25
24
 
26
25
  for (let i = fieldsAndTypeNames.length - 1; i >= 0; i -= 1) {
27
26
  const {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/filterQuery.ts"],"names":["deleteChildFields","getChildFields","getOperationDefinitions","buildFieldKeysAndPaths","createFragmentSpreadChecklist","filterField","filterFragmentDefinitions","requestData","fieldPathChecklist","context","ast","queryNode","operation","fragmentDefinitions","fieldsAndTypeNames","fragmentSpreadChecklist","i","length","fieldNode","requestFieldPath","queryFiltered"],"mappings":"AACA,SAASA,iBAAT,EAA4BC,cAA5B,EAA4CC,uBAA5C,QAA2E,sBAA3E;AAEA,SAASC,sBAAT,QAAuC,qBAAvC;AACA,OAAOC,6BAAP,MAA0C,iCAA1C;AACA,OAAOC,WAAP,MAAwB,eAAxB;AACA,OAAOC,yBAAP,MAAsC,6BAAtC;AAEA,gBAAe,CAACC,WAAD,EAA2B;AAAEC,EAAAA;AAAF,CAA3B,EAAuEC,OAAvE,KAAwG;AACrH,QAAM;AAAEC,IAAAA;AAAF,MAAUH,WAAhB;AACA,QAAMI,SAAS,GAAGT,uBAAuB,CAACQ,GAAD,EAAMD,OAAO,CAACG,SAAd,CAAvB,CAAgD,CAAhD,CAAlB;AACA,QAAM;AAAEC,IAAAA;AAAF,MAA0BJ,OAAhC;AACA,QAAMK,kBAAkB,GAAGb,cAAc,CAACU,SAAD,EAAY;AAAEE,IAAAA;AAAF,GAAZ,CAAzC;;AAEA,MAAI,CAACC,kBAAL,EAAyB;AACvB,WAAOJ,GAAP;AACD;;AAED,QAAMK,uBAAuB,GAAGX,6BAA6B,CAACG,WAAD,CAA7D;;AAEA,OAAK,IAAIS,CAAC,GAAGF,kBAAkB,CAACG,MAAnB,GAA4B,CAAzC,EAA4CD,CAAC,IAAI,CAAjD,EAAoDA,CAAC,IAAI,CAAzD,EAA4D;AAC1D,UAAM;AAAEE,MAAAA;AAAF,QAAgBJ,kBAAkB,CAACE,CAAD,CAAxC;AAEA,UAAM;AAAEG,MAAAA;AAAF,QAAuBhB,sBAAsB,CACjDe,SADiD,EAEjD;AACEC,MAAAA,gBAAgB,EAAEV,OAAO,CAACG;AAD5B,KAFiD,EAKjDH,OALiD,CAAnD;;AAQA,QAAIJ,WAAW,CAACa,SAAD,EAAYV,kBAAZ,EAAgCO,uBAAhC,EAAyDI,gBAAzD,EAA2EV,OAA3E,CAAf,EAAoG;AAClGT,MAAAA,iBAAiB,CAACW,SAAD,EAAYO,SAAZ,CAAjB;AACD;AACF;;AAEDT,EAAAA,OAAO,CAACW,aAAR,GAAwB,IAAxB;AACA,SAAOd,yBAAyB,CAACI,GAAD,EAAMF,kBAAN,EAA0BO,uBAA1B,EAAmDN,OAAnD,CAAhC;AACD,CA9BD","sourcesContent":["import { RequestData } from \"@graphql-box/core\";\nimport { deleteChildFields, getChildFields, getOperationDefinitions } from \"@graphql-box/helpers\";\nimport { CacheManagerContext, CachedResponseData } from \"../defs\";\nimport { buildFieldKeysAndPaths } from \"./buildKeysAndPaths\";\nimport createFragmentSpreadChecklist from \"./createFragmentSpreadChecklist\";\nimport filterField from \"./filterField\";\nimport filterFragmentDefinitions from \"./filterFragmentDefinitions\";\n\nexport default (requestData: RequestData, { fieldPathChecklist }: CachedResponseData, context: CacheManagerContext) => {\n const { ast } = requestData;\n const queryNode = getOperationDefinitions(ast, context.operation)[0];\n const { fragmentDefinitions } = context;\n const fieldsAndTypeNames = getChildFields(queryNode, { fragmentDefinitions });\n\n if (!fieldsAndTypeNames) {\n return ast;\n }\n\n const fragmentSpreadChecklist = createFragmentSpreadChecklist(requestData);\n\n for (let i = fieldsAndTypeNames.length - 1; i >= 0; i -= 1) {\n const { fieldNode } = fieldsAndTypeNames[i];\n\n const { requestFieldPath } = buildFieldKeysAndPaths(\n fieldNode,\n {\n requestFieldPath: context.operation,\n },\n context,\n );\n\n if (filterField(fieldNode, fieldPathChecklist, fragmentSpreadChecklist, requestFieldPath, context)) {\n deleteChildFields(queryNode, fieldNode);\n }\n }\n\n context.queryFiltered = true;\n return filterFragmentDefinitions(ast, fieldPathChecklist, fragmentSpreadChecklist, context);\n};\n"],"file":"filterQuery.js"}
1
+ {"version":3,"sources":["../../../src/helpers/filterQuery.ts"],"names":["buildFieldKeysAndPaths","deleteChildFields","getChildFields","getOperationDefinitions","createFragmentSpreadChecklist","filterField","filterFragmentDefinitions","requestData","fieldPathChecklist","context","ast","queryNode","operation","fragmentDefinitions","fieldsAndTypeNames","fragmentSpreadChecklist","i","length","fieldNode","requestFieldPath","queryFiltered"],"mappings":"AACA,SACEA,sBADF,EAEEC,iBAFF,EAGEC,cAHF,EAIEC,uBAJF,QAKO,sBALP;AAOA,OAAOC,6BAAP,MAA0C,iCAA1C;AACA,OAAOC,WAAP,MAAwB,eAAxB;AACA,OAAOC,yBAAP,MAAsC,6BAAtC;AAEA,gBAAe,CAACC,WAAD,EAA2B;AAAEC,EAAAA;AAAF,CAA3B,EAAuEC,OAAvE,KAAwG;AACrH,QAAM;AAAEC,IAAAA;AAAF,MAAUH,WAAhB;AACA,QAAMI,SAAS,GAAGR,uBAAuB,CAACO,GAAD,EAAMD,OAAO,CAACG,SAAd,CAAvB,CAAgD,CAAhD,CAAlB;AACA,QAAM;AAAEC,IAAAA;AAAF,MAA0BJ,OAAhC;AACA,QAAMK,kBAAkB,GAAGZ,cAAc,CAACS,SAAD,EAAY;AAAEE,IAAAA;AAAF,GAAZ,CAAzC;;AAEA,MAAI,CAACC,kBAAL,EAAyB;AACvB,WAAOJ,GAAP;AACD;;AAED,QAAMK,uBAAuB,GAAGX,6BAA6B,CAACG,WAAD,EAAcE,OAAd,CAA7D;;AAEA,OAAK,IAAIO,CAAC,GAAGF,kBAAkB,CAACG,MAAnB,GAA4B,CAAzC,EAA4CD,CAAC,IAAI,CAAjD,EAAoDA,CAAC,IAAI,CAAzD,EAA4D;AAC1D,UAAM;AAAEE,MAAAA;AAAF,QAAgBJ,kBAAkB,CAACE,CAAD,CAAxC;AAEA,UAAM;AAAEG,MAAAA;AAAF,QAAuBnB,sBAAsB,CACjDkB,SADiD,EAEjD;AACEC,MAAAA,gBAAgB,EAAEV,OAAO,CAACG;AAD5B,KAFiD,EAKjDH,OALiD,CAAnD;;AAQA,QAAIJ,WAAW,CAACa,SAAD,EAAYV,kBAAZ,EAAgCO,uBAAhC,EAAyDI,gBAAzD,EAA2EV,OAA3E,CAAf,EAAoG;AAClGR,MAAAA,iBAAiB,CAACU,SAAD,EAAYO,SAAZ,CAAjB;AACD;AACF;;AAEDT,EAAAA,OAAO,CAACW,aAAR,GAAwB,IAAxB;AACA,SAAOd,yBAAyB,CAACI,GAAD,EAAMF,kBAAN,EAA0BO,uBAA1B,EAAmDN,OAAnD,CAAhC;AACD,CA9BD","sourcesContent":["import { RequestData } from \"@graphql-box/core\";\nimport {\n buildFieldKeysAndPaths,\n deleteChildFields,\n getChildFields,\n getOperationDefinitions,\n} from \"@graphql-box/helpers\";\nimport { CacheManagerContext, CachedResponseData } from \"../defs\";\nimport createFragmentSpreadChecklist from \"./createFragmentSpreadChecklist\";\nimport filterField from \"./filterField\";\nimport filterFragmentDefinitions from \"./filterFragmentDefinitions\";\n\nexport default (requestData: RequestData, { fieldPathChecklist }: CachedResponseData, context: CacheManagerContext) => {\n const { ast } = requestData;\n const queryNode = getOperationDefinitions(ast, context.operation)[0];\n const { fragmentDefinitions } = context;\n const fieldsAndTypeNames = getChildFields(queryNode, { fragmentDefinitions });\n\n if (!fieldsAndTypeNames) {\n return ast;\n }\n\n const fragmentSpreadChecklist = createFragmentSpreadChecklist(requestData, context);\n\n for (let i = fieldsAndTypeNames.length - 1; i >= 0; i -= 1) {\n const { fieldNode } = fieldsAndTypeNames[i];\n\n const { requestFieldPath } = buildFieldKeysAndPaths(\n fieldNode,\n {\n requestFieldPath: context.operation,\n },\n context,\n );\n\n if (filterField(fieldNode, fieldPathChecklist, fragmentSpreadChecklist, requestFieldPath, context)) {\n deleteChildFields(queryNode, fieldNode);\n }\n }\n\n context.queryFiltered = true;\n return filterFragmentDefinitions(ast, fieldPathChecklist, fragmentSpreadChecklist, context);\n};\n"],"file":"filterQuery.js"}
@@ -14,12 +14,11 @@ var _dec, _dec2, _dec3, _class;
14
14
 
15
15
  import "core-js/modules/es.promise.js";
16
16
  import { DATA_ENTITIES, QUERY, QUERY_RESPONSES, REQUEST_FIELD_PATHS, TYPE_NAME_KEY } from "@graphql-box/core";
17
- import { FRAGMENT_SPREAD, dehydrateCacheMetadata, getChildFields, getFragmentDefinitions, getOperationDefinitions, hasChildFields, hashRequest, iterateChildFields, mergeObjects, rehydrateCacheMetadata } from "@graphql-box/helpers";
17
+ import { FRAGMENT_SPREAD, buildFieldKeysAndPaths, dehydrateCacheMetadata, getChildFields, getFragmentDefinitions, getOperationDefinitions, hasChildFields, hashRequest, iterateChildFields, mergeObjects, rehydrateCacheMetadata } from "@graphql-box/helpers";
18
18
  import Cacheability from "cacheability";
19
19
  import { print } from "graphql";
20
20
  import { CACHE_CONTROL, HEADER_NO_CACHE, METADATA, NO_CACHE } from "../consts";
21
21
  import { logCacheEntry, logCacheQuery, logPartialCompiled } from "../debug";
22
- import { buildFieldKeysAndPaths } from "../helpers/buildKeysAndPaths";
23
22
  import deriveOpCacheability from "../helpers/deriveOpCacheability";
24
23
  import filterOutPropsWithArgsOrDirectives from "../helpers/filterOutPropsWithArgsOrDirectives";
25
24
  import filterQuery from "../helpers/filterQuery";
@@ -285,7 +284,7 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
285
284
 
286
285
  async cacheQuery(requestData, updatedRequestData, rawResponseData, options, context) {
287
286
  const cacheManagerContext = { ...context,
288
- fragmentDefinitions: getFragmentDefinitions(updatedRequestData.ast),
287
+ fragmentDefinitions: getFragmentDefinitions((updatedRequestData !== null && updatedRequestData !== void 0 ? updatedRequestData : requestData).ast),
289
288
  typeIDKey: this._typeIDKey
290
289
  };
291
290
  return this._cacheResponse(requestData, updatedRequestData, rawResponseData, options, cacheManagerContext);
@@ -324,6 +323,10 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
324
323
  this._partialQueryResponses.delete(hash);
325
324
  }
326
325
 
326
+ async setQueryResponseCacheEntry(requestData, responseData, options, context) {
327
+ return this._setQueryResponseCacheEntry(requestData.hash, responseData, options, context);
328
+ }
329
+
327
330
  async _analyzeFieldNode(fieldNode, cachedAncestorFieldData, cachedResponseData, options, context) {
328
331
  if (hasChildFields(fieldNode, {
329
332
  fragmentDefinitions: context.fragmentDefinitions
@@ -339,6 +342,7 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
339
342
  const {
340
343
  hashedRequestFieldCacheKey,
341
344
  propNameOrIndex,
345
+ requestFieldCacheKey,
342
346
  requestFieldPath
343
347
  } = keysAndPaths;
344
348
  const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);
@@ -360,7 +364,7 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
360
364
  const {
361
365
  cacheability,
362
366
  entry
363
- } = await this._retrieveCachedRequestFieldPathData(hashedRequestFieldCacheKey, options, context);
367
+ } = await this._retrieveCachedRequestFieldPathData(hashedRequestFieldCacheKey, requestFieldCacheKey, options, context);
364
368
 
365
369
  CacheManager._setCachedResponseData({
366
370
  cacheability,
@@ -715,7 +719,8 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
715
719
  requestFieldPathData: ancestorRequestFieldPathData
716
720
  }, {
717
721
  hashedRequestFieldCacheKey,
718
- propNameOrIndex
722
+ propNameOrIndex,
723
+ requestFieldCacheKey
719
724
  }, fieldTypeInfo, options, context) {
720
725
  var _entityData;
721
726
 
@@ -729,7 +734,7 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
729
734
  const {
730
735
  cacheability: entryCacheability,
731
736
  entry
732
- } = await this._retrieveCachedRequestFieldPathData(hashedRequestFieldCacheKey, options, context);
737
+ } = await this._retrieveCachedRequestFieldPathData(hashedRequestFieldCacheKey, requestFieldCacheKey, options, context);
733
738
 
734
739
  if (entry) {
735
740
  requestFieldPathData = this._mergeObjects(requestFieldPathData, entry);
@@ -768,8 +773,10 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
768
773
  };
769
774
  }
770
775
 
771
- async _retrieveCachedRequestFieldPathData(hash, options, context) {
772
- return this._checkCacheEntry(REQUEST_FIELD_PATHS, hash, options, context) || {};
776
+ async _retrieveCachedRequestFieldPathData(hash, requestFieldCacheKey, options, context) {
777
+ return this._checkCacheEntry(REQUEST_FIELD_PATHS, hash, options, { ...context,
778
+ requestFieldCacheKey
779
+ }) || {};
773
780
  }
774
781
 
775
782
  async _retrieveCachedResponseData({
@@ -997,6 +1004,7 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
997
1004
  }, options, context) {
998
1005
  const {
999
1006
  hashedRequestFieldCacheKey,
1007
+ requestFieldCacheKey,
1000
1008
  responseDataPath
1001
1009
  } = keysAndPaths;
1002
1010
 
@@ -1013,7 +1021,9 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
1013
1021
  fieldData = filterOutPropsWithArgsOrDirectives(fieldData, field.selectionSet.selections, keysAndPaths, context);
1014
1022
  }
1015
1023
 
1016
- const result = await this._checkCacheEntry(REQUEST_FIELD_PATHS, hashedRequestFieldCacheKey, options, context);
1024
+ const result = await this._checkCacheEntry(REQUEST_FIELD_PATHS, hashedRequestFieldCacheKey, options, { ...context,
1025
+ requestFieldCacheKey
1026
+ });
1017
1027
 
1018
1028
  if (result && _isObjectLike(fieldData)) {
1019
1029
  fieldData = this._mergeObjects(result.entry, fieldData);
@@ -1024,7 +1034,9 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
1024
1034
  cacheControl: cacheability.printCacheControl()
1025
1035
  },
1026
1036
  tag: options.tag
1027
- }, options, context);
1037
+ }, options, { ...context,
1038
+ requestFieldCacheKey
1039
+ });
1028
1040
 
1029
1041
  if (hasChildFields(field, {
1030
1042
  fragmentDefinitions: context.fragmentDefinitions