@graphql-box/cache-manager 2.5.0 → 3.1.1

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 (66) 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 +42 -42
  4. package/lib/main/helpers/createFragmentSpreadChecklist.js +5 -2
  5. package/lib/main/helpers/createFragmentSpreadChecklist.js.map +1 -1
  6. package/lib/main/helpers/filterField.js.map +1 -1
  7. package/lib/main/helpers/filterFragmentDefinitions.js +5 -0
  8. package/lib/main/helpers/filterFragmentDefinitions.js.map +1 -1
  9. package/lib/main/helpers/filterFragmentSpreads.js +0 -1
  10. package/lib/main/helpers/filterFragmentSpreads.js.map +1 -1
  11. package/lib/main/helpers/filterIDsAndTypeNames.js.map +1 -1
  12. package/lib/main/helpers/filterInlineFragments.js.map +1 -1
  13. package/lib/main/helpers/filterOperationAndFragmentDefinitions.js +15 -0
  14. package/lib/main/helpers/filterOperationAndFragmentDefinitions.js.map +1 -0
  15. package/lib/main/helpers/filterQuery.js +5 -4
  16. package/lib/main/helpers/filterQuery.js.map +1 -1
  17. package/lib/main/main/index.js +21 -32
  18. package/lib/main/main/index.js.map +1 -1
  19. package/lib/module/helpers/createFragmentSpreadChecklist.js +5 -2
  20. package/lib/module/helpers/createFragmentSpreadChecklist.js.map +1 -1
  21. package/lib/module/helpers/filterField.js.map +1 -1
  22. package/lib/module/helpers/filterFragmentDefinitions.js +4 -0
  23. package/lib/module/helpers/filterFragmentDefinitions.js.map +1 -1
  24. package/lib/module/helpers/filterFragmentSpreads.js +0 -1
  25. package/lib/module/helpers/filterFragmentSpreads.js.map +1 -1
  26. package/lib/module/helpers/filterIDsAndTypeNames.js.map +1 -1
  27. package/lib/module/helpers/filterInlineFragments.js.map +1 -1
  28. package/lib/module/helpers/filterOperationAndFragmentDefinitions.js +5 -0
  29. package/lib/module/helpers/filterOperationAndFragmentDefinitions.js.map +1 -0
  30. package/lib/module/helpers/filterQuery.js +5 -4
  31. package/lib/module/helpers/filterQuery.js.map +1 -1
  32. package/lib/module/main/index.js +21 -32
  33. package/lib/module/main/index.js.map +1 -1
  34. package/lib/types/defs/index.d.ts +1 -8
  35. package/lib/types/defs/index.d.ts.map +1 -1
  36. package/lib/types/helpers/createFragmentSpreadChecklist.d.ts +2 -2
  37. package/lib/types/helpers/createFragmentSpreadChecklist.d.ts.map +1 -1
  38. package/lib/types/helpers/filterField.d.ts +2 -2
  39. package/lib/types/helpers/filterField.d.ts.map +1 -1
  40. package/lib/types/helpers/filterFragmentDefinitions.d.ts +1 -5
  41. package/lib/types/helpers/filterFragmentDefinitions.d.ts.map +1 -1
  42. package/lib/types/helpers/filterFragmentSpreads.d.ts +2 -2
  43. package/lib/types/helpers/filterFragmentSpreads.d.ts.map +1 -1
  44. package/lib/types/helpers/filterIDsAndTypeNames.d.ts +2 -2
  45. package/lib/types/helpers/filterIDsAndTypeNames.d.ts.map +1 -1
  46. package/lib/types/helpers/filterInlineFragments.d.ts +2 -2
  47. package/lib/types/helpers/filterInlineFragments.d.ts.map +1 -1
  48. package/lib/types/helpers/filterOperationAndFragmentDefinitions.d.ts +4 -0
  49. package/lib/types/helpers/filterOperationAndFragmentDefinitions.d.ts.map +1 -0
  50. package/lib/types/helpers/filterQuery.d.ts +1 -1
  51. package/lib/types/helpers/filterQuery.d.ts.map +1 -1
  52. package/lib/types/main/index.d.ts +1 -2
  53. package/lib/types/main/index.d.ts.map +1 -1
  54. package/package.json +4 -4
  55. package/src/__snapshots__/index.test.ts.snap +25475 -0
  56. package/src/defs/index.ts +1 -9
  57. package/src/helpers/createFragmentSpreadChecklist.ts +3 -3
  58. package/src/helpers/filterField.ts +2 -2
  59. package/src/helpers/filterFragmentDefinitions.ts +4 -0
  60. package/src/helpers/filterFragmentSpreads.ts +2 -3
  61. package/src/helpers/filterIDsAndTypeNames.ts +5 -2
  62. package/src/helpers/filterInlineFragments.ts +5 -2
  63. package/src/helpers/filterOperationAndFragmentDefinitions.ts +10 -0
  64. package/src/helpers/filterQuery.ts +3 -2
  65. package/src/index.test.ts +81 -29
  66. package/src/main/index.ts +21 -27
@@ -1,23 +1,23 @@
1
1
  -----------------------------
2
2
  Rollup File Analysis
3
3
  -----------------------------
4
- bundle size: 94.202 KB
5
- original size: 64.867 KB
4
+ bundle size: 93.189 KB
5
+ original size: 64.797 KB
6
6
  code reduction: 0 %
7
7
  module count: 25
8
8
 
9
- ███████████████████████████████████░░░░░░░░░░░░░░░
9
+ ██████████████████████████████████░░░░░░░░░░░░░░░░
10
10
  file: /src/main/index.ts
11
- bundle space: 70.22 %
12
- rendered size: 66.144 KB
13
- original size: 38.003 KB
11
+ bundle space: 69.72 %
12
+ rendered size: 64.975 KB
13
+ original size: 37.778 KB
14
14
  code reduction: 0 %
15
15
  dependents: 1
16
16
  - /src/index.ts
17
17
 
18
18
  ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
19
19
  file: /src/debug/log-cache-query/index.ts
20
- bundle space: 4.08 %
20
+ bundle space: 4.12 %
21
21
  rendered size: 3.839 KB
22
22
  original size: 1.282 KB
23
23
  code reduction: 0 %
@@ -26,7 +26,7 @@ dependents: 1
26
26
 
27
27
  █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
28
28
  file: /src/debug/log-cache-entry/index.ts
29
- bundle space: 3.66 %
29
+ bundle space: 3.7 %
30
30
  rendered size: 3.451 KB
31
31
  original size: 1.197 KB
32
32
  code reduction: 0 %
@@ -35,7 +35,7 @@ dependents: 1
35
35
 
36
36
  █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
37
37
  file: /src/debug/log-partial-compiled/index.ts
38
- bundle space: 3.58 %
38
+ bundle space: 3.62 %
39
39
  rendered size: 3.37 KB
40
40
  original size: 1.161 KB
41
41
  code reduction: 0 %
@@ -44,17 +44,17 @@ dependents: 1
44
44
 
45
45
  █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
46
46
  file: /src/helpers/filterField.ts
47
- bundle space: 3.01 %
47
+ bundle space: 3.04 %
48
48
  rendered size: 2.834 KB
49
- original size: 2.914 KB
50
- code reduction: 2.75 %
49
+ original size: 2.965 KB
50
+ code reduction: 4.42 %
51
51
  dependents: 2
52
52
  - /src/helpers/filterFragmentDefinitions.ts
53
53
  - /src/helpers/filterQuery.ts
54
54
 
55
55
  █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
56
56
  file: /src/helpers/buildKeysAndPaths.ts
57
- bundle space: 2.61 %
57
+ bundle space: 2.64 %
58
58
  rendered size: 2.461 KB
59
59
  original size: 2.196 KB
60
60
  code reduction: 0 %
@@ -66,7 +66,7 @@ dependents: 4
66
66
 
67
67
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
68
68
  file: /src/helpers/mergeResponseDataSets.ts
69
- bundle space: 1.82 %
69
+ bundle space: 1.84 %
70
70
  rendered size: 1.716 KB
71
71
  original size: 907 Bytes
72
72
  code reduction: 0 %
@@ -75,16 +75,16 @@ dependents: 1
75
75
 
76
76
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
77
77
  file: /src/helpers/filterFragmentDefinitions.ts
78
- bundle space: 1.53 %
79
- rendered size: 1.441 KB
80
- original size: 1.5 KB
81
- code reduction: 3.93 %
78
+ bundle space: 1.61 %
79
+ rendered size: 1.499 KB
80
+ original size: 1.558 KB
81
+ code reduction: 3.79 %
82
82
  dependents: 1
83
83
  - /src/helpers/filterQuery.ts
84
84
 
85
85
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
86
86
  file: /src/helpers/normalizePatchResponseData.ts
87
- bundle space: 1.39 %
87
+ bundle space: 1.4 %
88
88
  rendered size: 1.309 KB
89
89
  original size: 478 Bytes
90
90
  code reduction: 0 %
@@ -93,25 +93,25 @@ dependents: 1
93
93
 
94
94
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
95
95
  file: /src/helpers/filterQuery.ts
96
- bundle space: 1.15 %
97
- rendered size: 1.088 KB
98
- original size: 1.467 KB
99
- code reduction: 25.84 %
96
+ bundle space: 1.19 %
97
+ rendered size: 1.108 KB
98
+ original size: 1.51 KB
99
+ code reduction: 26.62 %
100
100
  dependents: 1
101
101
  - /src/main/index.ts
102
102
 
103
103
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
104
104
  file: /src/helpers/filterIDsAndTypeNames.ts
105
- bundle space: 1.06 %
105
+ bundle space: 1.07 %
106
106
  rendered size: 998 Bytes
107
- original size: 1.107 KB
108
- code reduction: 9.85 %
107
+ original size: 1.165 KB
108
+ code reduction: 14.33 %
109
109
  dependents: 1
110
110
  - /src/helpers/filterField.ts
111
111
 
112
112
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
113
113
  file: /src/helpers/checkFieldPathChecklist.ts
114
- bundle space: 1.02 %
114
+ bundle space: 1.03 %
115
115
  rendered size: 957 Bytes
116
116
  original size: 828 Bytes
117
117
  code reduction: 0 %
@@ -120,7 +120,7 @@ dependents: 1
120
120
 
121
121
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
122
122
  file: /src/helpers/filterOutPropsWithArgsOrDirectives.ts
123
- bundle space: 0.98 %
123
+ bundle space: 0.99 %
124
124
  rendered size: 927 Bytes
125
125
  original size: 1.119 KB
126
126
  code reduction: 17.16 %
@@ -129,16 +129,16 @@ dependents: 1
129
129
 
130
130
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
131
131
  file: /src/helpers/filterInlineFragments.ts
132
- bundle space: 0.84 %
132
+ bundle space: 0.85 %
133
133
  rendered size: 788 Bytes
134
- original size: 941 Bytes
135
- code reduction: 16.26 %
134
+ original size: 999 Bytes
135
+ code reduction: 21.12 %
136
136
  dependents: 1
137
137
  - /src/helpers/filterField.ts
138
138
 
139
139
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
140
140
  file: /src/helpers/deriveOpCacheability.ts
141
- bundle space: 0.83 %
141
+ bundle space: 0.84 %
142
142
  rendered size: 786 Bytes
143
143
  original size: 858 Bytes
144
144
  code reduction: 8.39 %
@@ -147,25 +147,25 @@ dependents: 1
147
147
 
148
148
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
149
149
  file: /src/helpers/filterFragmentSpreads.ts
150
- bundle space: 0.7 %
151
- rendered size: 661 Bytes
152
- original size: 936 Bytes
153
- code reduction: 29.38 %
150
+ bundle space: 0.66 %
151
+ rendered size: 616 Bytes
152
+ original size: 942 Bytes
153
+ code reduction: 34.61 %
154
154
  dependents: 1
155
155
  - /src/helpers/filterField.ts
156
156
 
157
157
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
158
158
  file: /src/helpers/createFragmentSpreadChecklist.ts
159
- bundle space: 0.38 %
160
- rendered size: 362 Bytes
161
- original size: 470 Bytes
162
- code reduction: 22.98 %
159
+ bundle space: 0.52 %
160
+ rendered size: 485 Bytes
161
+ original size: 555 Bytes
162
+ code reduction: 12.61 %
163
163
  dependents: 1
164
164
  - /src/helpers/filterQuery.ts
165
165
 
166
166
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
167
167
  file: /src/consts/index.ts
168
- bundle space: 0.33 %
168
+ bundle space: 0.34 %
169
169
  rendered size: 315 Bytes
170
170
  original size: 390 Bytes
171
171
  code reduction: 19.23 %
@@ -217,7 +217,7 @@ dependents: 1
217
217
  file: /src/defs/index.ts
218
218
  bundle space: 0 %
219
219
  rendered size: 0 Byte
220
- original size: 5.419 KB
220
+ original size: 5.215 KB
221
221
  code reduction: 100 %
222
222
  dependents: 1
223
223
  - /src/index.ts
@@ -11,14 +11,17 @@ var _keys2 = _interopRequireDefault(require("lodash/keys"));
11
11
 
12
12
  var _helpers = require("@graphql-box/helpers");
13
13
 
14
- var _default = ast => {
14
+ var _default = ({
15
+ ast,
16
+ request
17
+ }) => {
15
18
  var _getFragmentDefinitio;
16
19
 
17
20
  return (0, _keys2.default)((_getFragmentDefinitio = (0, _helpers.getFragmentDefinitions)(ast)) !== null && _getFragmentDefinitio !== void 0 ? _getFragmentDefinitio : {}).reduce((acc, name) => {
18
21
  acc[name] = {
19
22
  deleted: 0,
20
23
  paths: [],
21
- total: 0
24
+ total: (request.match(new RegExp(`\\.\\.\\.${name}`, "g")) || []).length
22
25
  };
23
26
  return acc;
24
27
  }, {});
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/createFragmentSpreadChecklist.ts"],"names":["ast","reduce","acc","name","deleted","paths","total"],"mappings":";;;;;;;;;;;AAAA;;eAYgBA,GAAD;AAAA;;AAAA,SACb,6CAAK,qCAAuBA,GAAvB,CAAL,yEAAoC,EAApC,EAAwCC,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;AAAhC,KAAZ;AACA,WAAOJ,GAAP;AACD,GAHD,EAGG,EAHH,CADa;AAAA,C","sourcesContent":["import { getFragmentDefinitions } from \"@graphql-box/helpers\";\nimport { DocumentNode } from \"graphql\";\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: DocumentNode) =>\n keys(getFragmentDefinitions(ast) ?? {}).reduce((acc: FragmentSpreadCheckist, name) => {\n acc[name] = { deleted: 0, paths: [], total: 0 };\n return acc;\n }, {});\n"],"file":"createFragmentSpreadChecklist.js"}
1
+ {"version":3,"sources":["../../../src/helpers/createFragmentSpreadChecklist.ts"],"names":["ast","request","reduce","acc","name","deleted","paths","total","match","RegExp","length"],"mappings":";;;;;;;;;;;AACA;;eAWe,CAAC;AAAEA,EAAAA,GAAF;AAAOC,EAAAA;AAAP,CAAD;AAAA;;AAAA,SACb,6CAAK,qCAAuBD,GAAvB,CAAL,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,C","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 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/filterField.ts"],"names":["filterField","field","fieldPathChecklist","fragmentSpreadChecklist","ancestorRequestFieldPath","context","fragmentDefinitions","typeIDKey","fieldsAndTypeNames","fragmentSpreadFieldCounter","i","length","fieldNode","childField","fragmentKind","fragmentName","typeName","childTypeName","FRAGMENT_SPREAD","hasData","total","childFieldName","TYPE_NAME_KEY","requestFieldPath","typeUnused","get"],"mappings":";;;;;;;;;AAAA;;AACA;;AAGA;;AACA;;AAEA;;AACA;;AACA;;AAEA,MAAMA,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,GAAG,6BAAeP,KAAf,EAAsB;AAAEK,IAAAA;AAAF,GAAtB,CAA3B;;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,KAAKI,wBAAjB,IAAoCH,YAApC,IAAoD,CAACN,0BAA0B,CAACM,YAAD,CAAnF,EAAmG;AAAA;;AACjGN,MAAAA,0BAA0B,CAACM,YAAD,CAA1B,GAA2C;AACzCI,QAAAA,OAAO,EAAE,CADgC;AAEzCC,QAAAA,KAAK,EAAEd,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,IAAAA,mBAAmB,CAAGS,YAAH,CAAnB,+CACH,6BAAeT,mBAAf,aAAeA,mBAAf,uBAAeA,mBAAmB,CAAGS,YAAH,CAAlC,EAAoD;AAAET,UAAAA;AAAF,SAApD,CADG,oDACH,gBAA8EK,MAD3E,yEACqF,CADrF,GAEH;AAJqC,OAA3C;AAMD;;AAED,UAAMU,cAAc,GAAG,sBAAQR,UAAR,CAAvB;;AAEA,QAAIQ,cAAc,KAAKd,SAAnB,IAAgCc,cAAc,KAAKC,mBAAvD,EAAsE;AACpE;AACD;;AAED,UAAM;AAAEC,MAAAA;AAAF,QAAuB,+CAC3BV,UAD2B,EAE3B;AACEU,MAAAA,gBAAgB,EAAEnB;AADpB,KAF2B,EAK3BC,OAL2B,CAA7B;AAQA,UAAM;AAAEc,MAAAA,OAAF;AAAWK,MAAAA;AAAX,QAA0B,sCAAwBtB,kBAAkB,CAACuB,GAAnB,CAAuBF,gBAAvB,CAAxB,EAAkEN,aAAlE,CAAhC;;AAEA,QAAIE,OAAO,IAAIK,UAAf,EAA2B;AACzB,UAAIV,YAAY,KAAKI,wBAArB,EAAsC;AACpCT,QAAAA,0BAA0B,CAACM,YAAD,CAA1B,CAAmDI,OAAnD,IAA8D,CAA9D;AACD,OAFD,MAEO,IAAI,CAAC,6BAAeN,UAAf,EAA2B;AAAEP,QAAAA;AAAF,OAA3B,CAAL,EAA0D;AAC/D,wCAAkBL,KAAlB,EAAyBY,UAAzB;AACD,OAFM,MAEA,IAAIb,WAAW,CAACa,UAAD,EAAaX,kBAAb,EAAiCC,uBAAjC,EAA0DoB,gBAA1D,EAA4ElB,OAA5E,CAAf,EAAqG;AAC1G,wCAAkBJ,KAAlB,EAAyBY,UAAzB;AACD;AACF;AACF;;AAED,sCAAsBZ,KAAtB,EAA6BQ,0BAA7B,EAAyDN,uBAAzD,EAAkFC,wBAAlF;AACA,sCAAsBH,KAAtB,EAA6BI,OAA7B;AACA,sCAAsBJ,KAAtB,EAA6BI,OAA7B;AACA,SAAO,CAAC,6BAAeJ,KAAf,EAAsB;AAAEK,IAAAA;AAAF,GAAtB,CAAR;AACD,CA3DD;;eA6DeN,W","sourcesContent":["import { TYPE_NAME_KEY } from \"@graphql-box/core\";\nimport { FRAGMENT_SPREAD, deleteChildFields, getChildFields, getName, hasChildFields } from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode } 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,\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":["filterField","field","fieldPathChecklist","fragmentSpreadChecklist","ancestorRequestFieldPath","context","fragmentDefinitions","typeIDKey","fieldsAndTypeNames","fragmentSpreadFieldCounter","i","length","fieldNode","childField","fragmentKind","fragmentName","typeName","childTypeName","FRAGMENT_SPREAD","hasData","total","childFieldName","TYPE_NAME_KEY","requestFieldPath","typeUnused","get"],"mappings":";;;;;;;;;AAAA;;AACA;;AAGA;;AACA;;AAEA;;AACA;;AACA;;AAEA,MAAMA,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,GAAG,6BAAeP,KAAf,EAAsB;AAAEK,IAAAA;AAAF,GAAtB,CAA3B;;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,KAAKI,wBAAjB,IAAoCH,YAApC,IAAoD,CAACN,0BAA0B,CAACM,YAAD,CAAnF,EAAmG;AAAA;;AACjGN,MAAAA,0BAA0B,CAACM,YAAD,CAA1B,GAA2C;AACzCI,QAAAA,OAAO,EAAE,CADgC;AAEzCC,QAAAA,KAAK,EAAEd,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,IAAAA,mBAAmB,CAAGS,YAAH,CAAnB,+CACH,6BAAeT,mBAAf,aAAeA,mBAAf,uBAAeA,mBAAmB,CAAGS,YAAH,CAAlC,EAAoD;AAAET,UAAAA;AAAF,SAApD,CADG,oDACH,gBAA8EK,MAD3E,yEACqF,CADrF,GAEH;AAJqC,OAA3C;AAMD;;AAED,UAAMU,cAAc,GAAG,sBAAQR,UAAR,CAAvB;;AAEA,QAAIQ,cAAc,KAAKd,SAAnB,IAAgCc,cAAc,KAAKC,mBAAvD,EAAsE;AACpE;AACD;;AAED,UAAM;AAAEC,MAAAA;AAAF,QAAuB,+CAC3BV,UAD2B,EAE3B;AACEU,MAAAA,gBAAgB,EAAEnB;AADpB,KAF2B,EAK3BC,OAL2B,CAA7B;AAQA,UAAM;AAAEc,MAAAA,OAAF;AAAWK,MAAAA;AAAX,QAA0B,sCAAwBtB,kBAAkB,CAACuB,GAAnB,CAAuBF,gBAAvB,CAAxB,EAAkEN,aAAlE,CAAhC;;AAEA,QAAIE,OAAO,IAAIK,UAAf,EAA2B;AACzB,UAAIV,YAAY,KAAKI,wBAArB,EAAsC;AACpCT,QAAAA,0BAA0B,CAACM,YAAD,CAA1B,CAAmDI,OAAnD,IAA8D,CAA9D;AACD,OAFD,MAEO,IAAI,CAAC,6BAAeN,UAAf,EAA2B;AAAEP,QAAAA;AAAF,OAA3B,CAAL,EAA0D;AAC/D,wCAAkBL,KAAlB,EAAyBY,UAAzB;AACD,OAFM,MAEA,IAAIb,WAAW,CAACa,UAAD,EAAaX,kBAAb,EAAiCC,uBAAjC,EAA0DoB,gBAA1D,EAA4ElB,OAA5E,CAAf,EAAqG;AAC1G,wCAAkBJ,KAAlB,EAAyBY,UAAzB;AACD;AACF;AACF;;AAED,sCAAsBZ,KAAtB,EAA6BQ,0BAA7B,EAAyDN,uBAAzD,EAAkFC,wBAAlF;AACA,sCAAsBH,KAAtB,EAA6BI,OAA7B;AACA,sCAAsBJ,KAAtB,EAA6BI,OAA7B;AACA,SAAO,CAAC,6BAAeJ,KAAf,EAAsB;AAAEK,IAAAA;AAAF,GAAtB,CAAR;AACD,CA3DD;;eA6DeN,W","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"}
@@ -41,6 +41,11 @@ var _default = (ast, fieldPathChecklist, fragmentSpreadChecklist, context) => {
41
41
  } = fragmentSpreadChecklist[key];
42
42
  return deleted > 0 && deleted === total ? [...names, key] : names;
43
43
  }, []);
44
+
45
+ if (!definitionsToDelete.length) {
46
+ return ast;
47
+ }
48
+
44
49
  return (0, _helpers.deleteFragmentDefinitions)(ast, {
45
50
  include: definitionsToDelete
46
51
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/filterFragmentDefinitions.ts"],"names":["ast","fieldPathChecklist","fragmentSpreadChecklist","context","definitionsToFilter","reduce","namesAndPaths","key","deleted","total","name","path","paths","fragmentDefinitions","forEach","fragmentDefinition","definitionsToDelete","names","include"],"mappings":";;;;;;;;;;;AAAA;;AAKA;;eAEe,CACbA,GADa,EAEbC,kBAFa,EAGbC,uBAHa,EAIbC,OAJa,KAKV;AAAA;;AACH,QAAMC,mBAAmB,GAAG,oBAAKF,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,4BAAG,qCAAuBb,GAAvB,CAAH,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;AACA,8BAAYK,kBAAZ,EAAgCd,kBAAhC,EAAoDC,uBAApD,EAA6ES,IAA7E,EAAmFR,OAAnF;AACD,GAHD;AAKA,QAAMa,mBAAmB,GAAG,oBAAKd,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,SAAO,wCAA0BjB,GAA1B,EAA+B;AACpCkB,IAAAA,OAAO,EAAEF;AAD2B,GAA/B,CAAP;AAGD,C","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 return deleteFragmentDefinitions(ast, {\n include: definitionsToDelete,\n });\n};\n"],"file":"filterFragmentDefinitions.js"}
1
+ {"version":3,"sources":["../../../src/helpers/filterFragmentDefinitions.ts"],"names":["ast","fieldPathChecklist","fragmentSpreadChecklist","context","definitionsToFilter","reduce","namesAndPaths","key","deleted","total","name","path","paths","fragmentDefinitions","forEach","fragmentDefinition","definitionsToDelete","names","length","include"],"mappings":";;;;;;;;;;;AAAA;;AAKA;;eAEe,CACbA,GADa,EAEbC,kBAFa,EAGbC,uBAHa,EAIbC,OAJa,KAKV;AAAA;;AACH,QAAMC,mBAAmB,GAAG,oBAAKF,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,4BAAG,qCAAuBb,GAAvB,CAAH,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;AACA,8BAAYK,kBAAZ,EAAgCd,kBAAhC,EAAoDC,uBAApD,EAA6ES,IAA7E,EAAmFR,OAAnF;AACD,GAHD;AAKA,QAAMa,mBAAmB,GAAG,oBAAKd,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,SAAO,wCAA0BA,GAA1B,EAA+B;AACpCmB,IAAAA,OAAO,EAAEH;AAD2B,GAA/B,CAAP;AAGD,C","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"}
@@ -19,7 +19,6 @@ var _default = (field, fragmentSpreadFieldCounter, fragmentSpreadChecklist, ance
19
19
  }
20
20
 
21
21
  (0, _keys2.default)(fragmentSpreadFieldCounter).forEach(key => {
22
- fragmentSpreadChecklist[key].total += 1;
23
22
  fragmentSpreadChecklist[key].paths.push(ancestorRequestFieldPath);
24
23
  const {
25
24
  hasData,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/filterFragmentSpreads.ts"],"names":["field","fragmentSpreadFieldCounter","fragmentSpreadChecklist","ancestorRequestFieldPath","forEach","key","total","paths","push","hasData","deleted"],"mappings":";;;;;;;;;;;;;AAAA;;eAMe,CACbA,KADa,EAEbC,0BAFa,EAGbC,uBAHa,EAIbC,wBAJa,KAKV;AACH,MAAI,uBAAQF,0BAAR,CAAJ,EAAyC;AACvC;AACD;;AAED,sBAAKA,0BAAL,EAAiCG,OAAjC,CAAyCC,GAAG,IAAI;AAC9CH,IAAAA,uBAAuB,CAACG,GAAD,CAAvB,CAA6BC,KAA7B,IAAsC,CAAtC;AACAJ,IAAAA,uBAAuB,CAACG,GAAD,CAAvB,CAA6BE,KAA7B,CAAmCC,IAAnC,CAAwCL,wBAAxC;AAEA,UAAM;AAAEM,MAAAA,OAAF;AAAWH,MAAAA;AAAX,QAAqBL,0BAA0B,CAACI,GAAD,CAArD;;AAEA,QAAII,OAAO,KAAKH,KAAhB,EAAuB;AACrB,0CAAsBN,KAAtB,EAA6BK,GAA7B;AACAH,MAAAA,uBAAuB,CAACG,GAAD,CAAvB,CAA6BK,OAA7B,IAAwC,CAAxC;AACD;AACF,GAVD;AAWD,C","sourcesContent":["import { deleteFragmentSpreads } from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode } from \"graphql\";\nimport { isEmpty, keys } from \"lodash\";\nimport { FragmentSpreadFieldCounter } from \"../defs\";\nimport { FragmentSpreadCheckist } from \"./createFragmentSpreadChecklist\";\n\nexport default (\n field: FieldNode | FragmentDefinitionNode,\n fragmentSpreadFieldCounter: FragmentSpreadFieldCounter,\n fragmentSpreadChecklist: FragmentSpreadCheckist,\n ancestorRequestFieldPath: string,\n) => {\n if (isEmpty(fragmentSpreadFieldCounter)) {\n return;\n }\n\n keys(fragmentSpreadFieldCounter).forEach(key => {\n fragmentSpreadChecklist[key].total += 1;\n fragmentSpreadChecklist[key].paths.push(ancestorRequestFieldPath);\n\n const { hasData, total } = fragmentSpreadFieldCounter[key];\n\n if (hasData === total) {\n deleteFragmentSpreads(field, key);\n fragmentSpreadChecklist[key].deleted += 1;\n }\n });\n};\n"],"file":"filterFragmentSpreads.js"}
1
+ {"version":3,"sources":["../../../src/helpers/filterFragmentSpreads.ts"],"names":["field","fragmentSpreadFieldCounter","fragmentSpreadChecklist","ancestorRequestFieldPath","forEach","key","paths","push","hasData","total","deleted"],"mappings":";;;;;;;;;;;;;AAAA;;eAMe,CACbA,KADa,EAEbC,0BAFa,EAGbC,uBAHa,EAIbC,wBAJa,KAKV;AACH,MAAI,uBAAQF,0BAAR,CAAJ,EAAyC;AACvC;AACD;;AAED,sBAAKA,0BAAL,EAAiCG,OAAjC,CAAyCC,GAAG,IAAI;AAC9CH,IAAAA,uBAAuB,CAACG,GAAD,CAAvB,CAA6BC,KAA7B,CAAmCC,IAAnC,CAAwCJ,wBAAxC;AAEA,UAAM;AAAEK,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAAqBR,0BAA0B,CAACI,GAAD,CAArD;;AAEA,QAAIG,OAAO,KAAKC,KAAhB,EAAuB;AACrB,0CAAsBT,KAAtB,EAA6BK,GAA7B;AACAH,MAAAA,uBAAuB,CAACG,GAAD,CAAvB,CAA6BK,OAA7B,IAAwC,CAAxC;AACD;AACF,GATD;AAUD,C","sourcesContent":["import { deleteFragmentSpreads } from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode, OperationDefinitionNode } from \"graphql\";\nimport { isEmpty, keys } from \"lodash\";\nimport { FragmentSpreadFieldCounter } from \"../defs\";\nimport { FragmentSpreadCheckist } from \"./createFragmentSpreadChecklist\";\n\nexport default (\n field: FieldNode | FragmentDefinitionNode | OperationDefinitionNode,\n fragmentSpreadFieldCounter: FragmentSpreadFieldCounter,\n fragmentSpreadChecklist: FragmentSpreadCheckist,\n ancestorRequestFieldPath: string,\n) => {\n if (isEmpty(fragmentSpreadFieldCounter)) {\n return;\n }\n\n keys(fragmentSpreadFieldCounter).forEach(key => {\n fragmentSpreadChecklist[key].paths.push(ancestorRequestFieldPath);\n\n const { hasData, total } = fragmentSpreadFieldCounter[key];\n\n if (hasData === total) {\n deleteFragmentSpreads(field, key);\n fragmentSpreadChecklist[key].deleted += 1;\n }\n });\n};\n"],"file":"filterFragmentSpreads.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/filterIDsAndTypeNames.ts"],"names":["field","fragmentDefinitions","typeIDKey","fieldsAndTypeNames","length","fieldNames","map","fieldNode","every","name","TYPE_NAME_KEY"],"mappings":";;;;;;;AAAA;;AACA;;eAIe,CAACA,KAAD,EAA4C;AAAEC,EAAAA,mBAAF;AAAuBC,EAAAA;AAAvB,CAA5C,KAAwG;AACrH,QAAMC,kBAAkB,GAAG,6BAAeH,KAAf,EAAsB;AAAEC,IAAAA;AAAF,GAAtB,CAA3B;;AAEA,MAAI,CAACE,kBAAD,IAAuBA,kBAAkB,CAACC,MAAnB,GAA4B,CAAvD,EAA0D;AACxD,WAAO,KAAP;AACD;;AAED,QAAMC,UAAU,GAAGF,kBAAkB,CAACG,GAAnB,CAAuB,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAmB,sBAAQA,SAAR,CAA1C,CAAnB;;AAEA,MAAIF,UAAU,CAACD,MAAX,KAAsB,CAAtB,IAA2BC,UAAU,CAACG,KAAX,CAAiBC,IAAI,IAAIA,IAAI,KAAKP,SAAT,IAAsBO,IAAI,KAAKC,mBAAxD,CAA/B,EAAuG;AACrG,oCACEV,KADF,EAEEG,kBAAkB,CAACG,GAAnB,CAAuB,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAmBA,SAA1C,CAFF;AAKA,WAAO,IAAP;AACD;;AAED,MAAKF,UAAU,CAACD,MAAX,KAAsB,CAAtB,IAA2BC,UAAU,CAAC,CAAD,CAAV,KAAkBH,SAA9C,IAA4DG,UAAU,CAAC,CAAD,CAAV,KAAkBK,mBAAlF,EAAiG;AAC/F,UAAM;AAAEH,MAAAA;AAAF,QAAgBJ,kBAAkB,CAAC,CAAD,CAAxC;AACA,oCAAkBH,KAAlB,EAAyBO,SAAzB;AACA,WAAO,IAAP;AACD;;AAED,SAAO,KAAP;AACD,C","sourcesContent":["import { TYPE_NAME_KEY } from \"@graphql-box/core\";\nimport { deleteChildFields, getChildFields, getName } from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode } from \"graphql\";\nimport { CacheManagerContext } from \"../defs\";\n\nexport default (field: FieldNode | FragmentDefinitionNode, { fragmentDefinitions, typeIDKey }: CacheManagerContext) => {\n const fieldsAndTypeNames = getChildFields(field, { fragmentDefinitions });\n\n if (!fieldsAndTypeNames || fieldsAndTypeNames.length > 3) {\n return false;\n }\n\n const fieldNames = fieldsAndTypeNames.map(({ fieldNode }) => getName(fieldNode) as FieldNode[\"name\"][\"value\"]);\n\n if (fieldNames.length === 2 && fieldNames.every(name => name === typeIDKey || name === TYPE_NAME_KEY)) {\n deleteChildFields(\n field,\n fieldsAndTypeNames.map(({ fieldNode }) => fieldNode),\n );\n\n return true;\n }\n\n if ((fieldNames.length === 1 && fieldNames[0] === typeIDKey) || fieldNames[0] === TYPE_NAME_KEY) {\n const { fieldNode } = fieldsAndTypeNames[0];\n deleteChildFields(field, fieldNode);\n return true;\n }\n\n return false;\n};\n"],"file":"filterIDsAndTypeNames.js"}
1
+ {"version":3,"sources":["../../../src/helpers/filterIDsAndTypeNames.ts"],"names":["field","fragmentDefinitions","typeIDKey","fieldsAndTypeNames","length","fieldNames","map","fieldNode","every","name","TYPE_NAME_KEY"],"mappings":";;;;;;;AAAA;;AACA;;eAIe,CACbA,KADa,EAEb;AAAEC,EAAAA,mBAAF;AAAuBC,EAAAA;AAAvB,CAFa,KAGV;AACH,QAAMC,kBAAkB,GAAG,6BAAeH,KAAf,EAAsB;AAAEC,IAAAA;AAAF,GAAtB,CAA3B;;AAEA,MAAI,CAACE,kBAAD,IAAuBA,kBAAkB,CAACC,MAAnB,GAA4B,CAAvD,EAA0D;AACxD,WAAO,KAAP;AACD;;AAED,QAAMC,UAAU,GAAGF,kBAAkB,CAACG,GAAnB,CAAuB,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAmB,sBAAQA,SAAR,CAA1C,CAAnB;;AAEA,MAAIF,UAAU,CAACD,MAAX,KAAsB,CAAtB,IAA2BC,UAAU,CAACG,KAAX,CAAiBC,IAAI,IAAIA,IAAI,KAAKP,SAAT,IAAsBO,IAAI,KAAKC,mBAAxD,CAA/B,EAAuG;AACrG,oCACEV,KADF,EAEEG,kBAAkB,CAACG,GAAnB,CAAuB,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAmBA,SAA1C,CAFF;AAKA,WAAO,IAAP;AACD;;AAED,MAAKF,UAAU,CAACD,MAAX,KAAsB,CAAtB,IAA2BC,UAAU,CAAC,CAAD,CAAV,KAAkBH,SAA9C,IAA4DG,UAAU,CAAC,CAAD,CAAV,KAAkBK,mBAAlF,EAAiG;AAC/F,UAAM;AAAEH,MAAAA;AAAF,QAAgBJ,kBAAkB,CAAC,CAAD,CAAxC;AACA,oCAAkBH,KAAlB,EAAyBO,SAAzB;AACA,WAAO,IAAP;AACD;;AAED,SAAO,KAAP;AACD,C","sourcesContent":["import { TYPE_NAME_KEY } from \"@graphql-box/core\";\nimport { deleteChildFields, getChildFields, getName } from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode, OperationDefinitionNode } from \"graphql\";\nimport { CacheManagerContext } from \"../defs\";\n\nexport default (\n field: FieldNode | FragmentDefinitionNode | OperationDefinitionNode,\n { fragmentDefinitions, typeIDKey }: CacheManagerContext,\n) => {\n const fieldsAndTypeNames = getChildFields(field, { fragmentDefinitions });\n\n if (!fieldsAndTypeNames || fieldsAndTypeNames.length > 3) {\n return false;\n }\n\n const fieldNames = fieldsAndTypeNames.map(({ fieldNode }) => getName(fieldNode) as FieldNode[\"name\"][\"value\"]);\n\n if (fieldNames.length === 2 && fieldNames.every(name => name === typeIDKey || name === TYPE_NAME_KEY)) {\n deleteChildFields(\n field,\n fieldsAndTypeNames.map(({ fieldNode }) => fieldNode),\n );\n\n return true;\n }\n\n if ((fieldNames.length === 1 && fieldNames[0] === typeIDKey) || fieldNames[0] === TYPE_NAME_KEY) {\n const { fieldNode } = fieldsAndTypeNames[0];\n deleteChildFields(field, fieldNode);\n return true;\n }\n\n return false;\n};\n"],"file":"filterIDsAndTypeNames.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/filterInlineFragments.ts"],"names":["field","fragmentDefinitions","typeIDKey","inlineFragments","filtered","forEach","fragment","fieldsAndTypeNames","length","fieldNode"],"mappings":";;;;;;;AAAA;;eAIe,CAACA,KAAD,EAA4C;AAAEC,EAAAA,mBAAF;AAAuBC,EAAAA;AAAvB,CAA5C,KAAwG;AACrH,QAAMC,eAAe,GAAG,iCAAmBH,KAAnB,CAAxB;AACA,MAAII,QAAQ,GAAG,KAAf;AAEAD,EAAAA,eAAe,CAACE,OAAhB,CAAwBC,QAAQ,IAAI;AAClC,UAAMC,kBAAkB,GAAG,6BAAeD,QAAf,EAAyB;AAAEL,MAAAA;AAAF,KAAzB,CAA3B;;AAEA,QAAI,CAACM,kBAAD,IAAuB,CAACA,kBAAkB,CAACC,MAA/C,EAAuD;AACrD,0CAAsBR,KAAtB,EAA6BM,QAA7B;AACAF,MAAAA,QAAQ,GAAG,IAAX;AACA;AACD;;AAED,QAAIG,kBAAkB,CAACC,MAAnB,KAA8B,CAAlC,EAAqC;AACnC,YAAM;AAAEC,QAAAA;AAAF,UAAgBF,kBAAkB,CAAC,CAAD,CAAxC;;AAEA,UAAI,sBAAQE,SAAR,MAAuBP,SAA3B,EAAsC;AACpC,4CAAsBF,KAAtB,EAA6BM,QAA7B;AACAF,QAAAA,QAAQ,GAAG,IAAX;AACD;AACF;AACF,GAjBD;AAmBA,SAAOA,QAAP;AACD,C","sourcesContent":["import { deleteInlineFragments, getChildFields, getInlineFragments, getName } from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode } from \"graphql\";\nimport { CacheManagerContext } from \"..\";\n\nexport default (field: FieldNode | FragmentDefinitionNode, { fragmentDefinitions, typeIDKey }: CacheManagerContext) => {\n const inlineFragments = getInlineFragments(field);\n let filtered = false;\n\n inlineFragments.forEach(fragment => {\n const fieldsAndTypeNames = getChildFields(fragment, { fragmentDefinitions });\n\n if (!fieldsAndTypeNames || !fieldsAndTypeNames.length) {\n deleteInlineFragments(field, fragment);\n filtered = true;\n return;\n }\n\n if (fieldsAndTypeNames.length === 1) {\n const { fieldNode } = fieldsAndTypeNames[0];\n\n if (getName(fieldNode) === typeIDKey) {\n deleteInlineFragments(field, fragment);\n filtered = true;\n }\n }\n });\n\n return filtered;\n};\n"],"file":"filterInlineFragments.js"}
1
+ {"version":3,"sources":["../../../src/helpers/filterInlineFragments.ts"],"names":["field","fragmentDefinitions","typeIDKey","inlineFragments","filtered","forEach","fragment","fieldsAndTypeNames","length","fieldNode"],"mappings":";;;;;;;AAAA;;eAIe,CACbA,KADa,EAEb;AAAEC,EAAAA,mBAAF;AAAuBC,EAAAA;AAAvB,CAFa,KAGV;AACH,QAAMC,eAAe,GAAG,iCAAmBH,KAAnB,CAAxB;AACA,MAAII,QAAQ,GAAG,KAAf;AAEAD,EAAAA,eAAe,CAACE,OAAhB,CAAwBC,QAAQ,IAAI;AAClC,UAAMC,kBAAkB,GAAG,6BAAeD,QAAf,EAAyB;AAAEL,MAAAA;AAAF,KAAzB,CAA3B;;AAEA,QAAI,CAACM,kBAAD,IAAuB,CAACA,kBAAkB,CAACC,MAA/C,EAAuD;AACrD,0CAAsBR,KAAtB,EAA6BM,QAA7B;AACAF,MAAAA,QAAQ,GAAG,IAAX;AACA;AACD;;AAED,QAAIG,kBAAkB,CAACC,MAAnB,KAA8B,CAAlC,EAAqC;AACnC,YAAM;AAAEC,QAAAA;AAAF,UAAgBF,kBAAkB,CAAC,CAAD,CAAxC;;AAEA,UAAI,sBAAQE,SAAR,MAAuBP,SAA3B,EAAsC;AACpC,4CAAsBF,KAAtB,EAA6BM,QAA7B;AACAF,QAAAA,QAAQ,GAAG,IAAX;AACD;AACF;AACF,GAjBD;AAmBA,SAAOA,QAAP;AACD,C","sourcesContent":["import { deleteInlineFragments, getChildFields, getInlineFragments, getName } from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode, OperationDefinitionNode } from \"graphql\";\nimport { CacheManagerContext } from \"..\";\n\nexport default (\n field: FieldNode | FragmentDefinitionNode | OperationDefinitionNode,\n { fragmentDefinitions, typeIDKey }: CacheManagerContext,\n) => {\n const inlineFragments = getInlineFragments(field);\n let filtered = false;\n\n inlineFragments.forEach(fragment => {\n const fieldsAndTypeNames = getChildFields(fragment, { fragmentDefinitions });\n\n if (!fieldsAndTypeNames || !fieldsAndTypeNames.length) {\n deleteInlineFragments(field, fragment);\n filtered = true;\n return;\n }\n\n if (fieldsAndTypeNames.length === 1) {\n const { fieldNode } = fieldsAndTypeNames[0];\n\n if (getName(fieldNode) === typeIDKey) {\n deleteInlineFragments(field, fragment);\n filtered = true;\n }\n }\n });\n\n return filtered;\n};\n"],"file":"filterInlineFragments.js"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _helpers = require("@graphql-box/helpers");
9
+
10
+ var _default = ast => {
11
+ return ast.definitions.filter(definition => (0, _helpers.isKind)(definition, _helpers.OPERATION_DEFINITION) || (0, _helpers.isKind)(definition, _helpers.FRAGMENT_DEFINITION));
12
+ };
13
+
14
+ exports.default = _default;
15
+ //# sourceMappingURL=filterOperationAndFragmentDefinitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/helpers/filterOperationAndFragmentDefinitions.ts"],"names":["ast","definitions","filter","definition","OPERATION_DEFINITION","FRAGMENT_DEFINITION"],"mappings":";;;;;;;AAAA;;eAGgBA,GAAD,IAAuB;AACpC,SAAOA,GAAG,CAACC,WAAJ,CAAgBC,MAAhB,CACLC,UAAU,IACR,qBAAgCA,UAAhC,EAA4CC,6BAA5C,KACA,qBAA+BD,UAA/B,EAA2CE,4BAA3C,CAHG,CAAP;AAKD,C","sourcesContent":["import { FRAGMENT_DEFINITION, OPERATION_DEFINITION, isKind } from \"@graphql-box/helpers\";\nimport { DocumentNode, FragmentDefinitionNode, OperationDefinitionNode } from \"graphql\";\n\nexport default (ast: DocumentNode) => {\n return ast.definitions.filter(\n definition =>\n isKind<OperationDefinitionNode>(definition, OPERATION_DEFINITION) ||\n isKind<FragmentDefinitionNode>(definition, FRAGMENT_DEFINITION),\n ) as (OperationDefinitionNode | FragmentDefinitionNode)[];\n};\n"],"file":"filterOperationAndFragmentDefinitions.js"}
@@ -17,11 +17,12 @@ var _filterField = _interopRequireDefault(require("./filterField"));
17
17
 
18
18
  var _filterFragmentDefinitions = _interopRequireDefault(require("./filterFragmentDefinitions"));
19
19
 
20
- var _default = ({
21
- ast
22
- }, {
20
+ var _default = (requestData, {
23
21
  fieldPathChecklist
24
22
  }, context) => {
23
+ const {
24
+ ast
25
+ } = requestData;
25
26
  const queryNode = (0, _helpers.getOperationDefinitions)(ast, context.operation)[0];
26
27
  const {
27
28
  fragmentDefinitions
@@ -34,7 +35,7 @@ var _default = ({
34
35
  return ast;
35
36
  }
36
37
 
37
- const fragmentSpreadChecklist = (0, _createFragmentSpreadChecklist.default)(ast);
38
+ const fragmentSpreadChecklist = (0, _createFragmentSpreadChecklist.default)(requestData);
38
39
 
39
40
  for (let i = fieldsAndTypeNames.length - 1; i >= 0; i -= 1) {
40
41
  const {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/helpers/filterQuery.ts"],"names":["ast","fieldPathChecklist","context","queryNode","operation","fragmentDefinitions","fieldsAndTypeNames","fragmentSpreadChecklist","i","length","fieldNode","requestFieldPath","queryFiltered"],"mappings":";;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AACA;;eAEe,CAAC;AAAEA,EAAAA;AAAF,CAAD,EAAuB;AAAEC,EAAAA;AAAF,CAAvB,EAAmEC,OAAnE,KAAoG;AACjH,QAAMC,SAAS,GAAG,sCAAwBH,GAAxB,EAA6BE,OAAO,CAACE,SAArC,EAAgD,CAAhD,CAAlB;AACA,QAAM;AAAEC,IAAAA;AAAF,MAA0BH,OAAhC;AACA,QAAMI,kBAAkB,GAAG,6BAAeH,SAAf,EAA0B;AAAEE,IAAAA;AAAF,GAA1B,CAA3B;;AAEA,MAAI,CAACC,kBAAL,EAAyB;AACvB,WAAON,GAAP;AACD;;AAED,QAAMO,uBAAuB,GAAG,4CAA8BP,GAA9B,CAAhC;;AAEA,OAAK,IAAIQ,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,QAAuB,+CAC3BD,SAD2B,EAE3B;AACEC,MAAAA,gBAAgB,EAAET,OAAO,CAACE;AAD5B,KAF2B,EAK3BF,OAL2B,CAA7B;;AAQA,QAAI,0BAAYQ,SAAZ,EAAuBT,kBAAvB,EAA2CM,uBAA3C,EAAoEI,gBAApE,EAAsFT,OAAtF,CAAJ,EAAoG;AAClG,sCAAkBC,SAAlB,EAA6BO,SAA7B;AACD;AACF;;AAEDR,EAAAA,OAAO,CAACU,aAAR,GAAwB,IAAxB;AACA,SAAO,wCAA0BZ,GAA1B,EAA+BC,kBAA/B,EAAmDM,uBAAnD,EAA4EL,OAA5E,CAAP;AACD,C","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 ({ ast }: RequestData, { fieldPathChecklist }: CachedResponseData, context: CacheManagerContext) => {\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(ast);\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":["requestData","fieldPathChecklist","context","ast","queryNode","operation","fragmentDefinitions","fieldsAndTypeNames","fragmentSpreadChecklist","i","length","fieldNode","requestFieldPath","queryFiltered"],"mappings":";;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AACA;;eAEe,CAACA,WAAD,EAA2B;AAAEC,EAAAA;AAAF,CAA3B,EAAuEC,OAAvE,KAAwG;AACrH,QAAM;AAAEC,IAAAA;AAAF,MAAUH,WAAhB;AACA,QAAMI,SAAS,GAAG,sCAAwBD,GAAxB,EAA6BD,OAAO,CAACG,SAArC,EAAgD,CAAhD,CAAlB;AACA,QAAM;AAAEC,IAAAA;AAAF,MAA0BJ,OAAhC;AACA,QAAMK,kBAAkB,GAAG,6BAAeH,SAAf,EAA0B;AAAEE,IAAAA;AAAF,GAA1B,CAA3B;;AAEA,MAAI,CAACC,kBAAL,EAAyB;AACvB,WAAOJ,GAAP;AACD;;AAED,QAAMK,uBAAuB,GAAG,4CAA8BR,WAA9B,CAAhC;;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,QAAuB,+CAC3BD,SAD2B,EAE3B;AACEC,MAAAA,gBAAgB,EAAEV,OAAO,CAACG;AAD5B,KAF2B,EAK3BH,OAL2B,CAA7B;;AAQA,QAAI,0BAAYS,SAAZ,EAAuBV,kBAAvB,EAA2CO,uBAA3C,EAAoEI,gBAApE,EAAsFV,OAAtF,CAAJ,EAAoG;AAClG,sCAAkBE,SAAlB,EAA6BO,SAA7B;AACD;AACF;;AAEDT,EAAAA,OAAO,CAACW,aAAR,GAAwB,IAAxB;AACA,SAAO,wCAA0BV,GAA1B,EAA+BF,kBAA/B,EAAmDO,uBAAnD,EAA4EN,OAA5E,CAAP;AACD,C","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"}
@@ -67,25 +67,6 @@ var _validTypeIDValue = require("../helpers/validTypeIDValue");
67
67
  var _dec, _dec2, _dec3, _class;
68
68
 
69
69
  let CacheManager = (_dec = (0, _debug.logCacheQuery)(), _dec2 = (0, _debug.logCacheEntry)(), _dec3 = (0, _debug.logPartialCompiled)(), (_class = class CacheManager {
70
- static async init(options) {
71
- const errors = [];
72
-
73
- if (!options.cache) {
74
- errors.push(new TypeError("@graphql-box/cache-manager expected options.cache."));
75
- }
76
-
77
- if (!!options.typeCacheDirectives && !(0, _isPlainObject2.default)(options.typeCacheDirectives)) {
78
- const message = "@graphql-box/cache-manager expected options.typeCacheDirectives to be a plain object.";
79
- errors.push(new TypeError(message));
80
- }
81
-
82
- if (errors.length) {
83
- return Promise.reject(errors);
84
- }
85
-
86
- return new CacheManager(options);
87
- }
88
-
89
70
  static _countFieldPathChecklist(fieldPathChecklist) {
90
71
  const fieldCount = {
91
72
  missing: 0,
@@ -236,18 +217,26 @@ let CacheManager = (_dec = (0, _debug.logCacheQuery)(), _dec2 = (0, _debug.logCa
236
217
  (0, _defineProperty2.default)(this, "_responseChunksAwaitingCaching", new Map());
237
218
  (0, _defineProperty2.default)(this, "_typeCacheDirectives", void 0);
238
219
  (0, _defineProperty2.default)(this, "_typeIDKey", void 0);
239
- const {
240
- cache,
241
- cascadeCacheControl,
242
- fallbackOperationCacheability,
243
- typeCacheDirectives,
244
- typeIDKey
245
- } = options;
246
- this._cache = cache;
247
- this._cascadeCacheControl = cascadeCacheControl || false;
248
- this._fallbackOperationCacheability = fallbackOperationCacheability || _consts.NO_CACHE;
249
- this._typeCacheDirectives = typeCacheDirectives || {};
250
- this._typeIDKey = typeIDKey;
220
+ const errors = [];
221
+
222
+ if (!options.cache) {
223
+ errors.push(new TypeError("@graphql-box/cache-manager expected options.cache."));
224
+ }
225
+
226
+ if (!!options.typeCacheDirectives && !(0, _isPlainObject2.default)(options.typeCacheDirectives)) {
227
+ const message = "@graphql-box/cache-manager expected options.typeCacheDirectives to be a plain object.";
228
+ errors.push(new TypeError(message));
229
+ }
230
+
231
+ if (errors.length) {
232
+ throw errors;
233
+ }
234
+
235
+ this._cache = options.cache;
236
+ this._cascadeCacheControl = options.cascadeCacheControl || false;
237
+ this._fallbackOperationCacheability = options.fallbackOperationCacheability || _consts.NO_CACHE;
238
+ this._typeCacheDirectives = options.typeCacheDirectives || {};
239
+ this._typeIDKey = options.typeIDKey;
251
240
  }
252
241
 
253
242
  get cache() {
@@ -1087,7 +1076,7 @@ function init(userOptions) {
1087
1076
  throw new TypeError("@graphql-box/cache-manager expected userOptions to be a plain object.");
1088
1077
  }
1089
1078
 
1090
- return clientOptions => CacheManager.init({ ...clientOptions,
1079
+ return clientOptions => new CacheManager({ ...clientOptions,
1091
1080
  ...userOptions
1092
1081
  });
1093
1082
  }