@graphql-box/cache-manager 2.1.2 → 2.3.0

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 (116) 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 +139 -17
  4. package/lib/main/debug/log-cache-entry/index.js.map +1 -1
  5. package/lib/main/debug/log-partial-compiled/index.js.map +1 -1
  6. package/lib/main/helpers/buildKeysAndPaths.js +73 -0
  7. package/lib/main/helpers/buildKeysAndPaths.js.map +1 -0
  8. package/lib/main/helpers/checkFieldPathChecklist.js +40 -0
  9. package/lib/main/helpers/checkFieldPathChecklist.js.map +1 -0
  10. package/lib/main/helpers/createFragmentSpreadChecklist.js +28 -0
  11. package/lib/main/helpers/createFragmentSpreadChecklist.js.map +1 -0
  12. package/lib/main/helpers/deriveOpCacheability.js +46 -0
  13. package/lib/main/helpers/deriveOpCacheability.js.map +1 -0
  14. package/lib/main/helpers/filterField.js +97 -0
  15. package/lib/main/helpers/filterField.js.map +1 -0
  16. package/lib/main/helpers/filterFragmentDefinitions.js +50 -0
  17. package/lib/main/helpers/filterFragmentDefinitions.js.map +1 -0
  18. package/lib/main/helpers/filterFragmentSpreads.js +37 -0
  19. package/lib/main/helpers/filterFragmentSpreads.js.map +1 -0
  20. package/lib/main/helpers/filterIDsAndTypeNames.js +47 -0
  21. package/lib/main/helpers/filterIDsAndTypeNames.js.map +1 -0
  22. package/lib/main/helpers/filterInlineFragments.js +42 -0
  23. package/lib/main/helpers/filterInlineFragments.js.map +1 -0
  24. package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js +39 -0
  25. package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js.map +1 -0
  26. package/lib/main/helpers/filterQuery.js +59 -0
  27. package/lib/main/helpers/filterQuery.js.map +1 -0
  28. package/lib/main/helpers/normalizeResponseData.js +23 -0
  29. package/lib/main/helpers/normalizeResponseData.js.map +1 -0
  30. package/lib/main/helpers/validTypeIDValue.js +20 -0
  31. package/lib/main/helpers/validTypeIDValue.js.map +1 -0
  32. package/lib/main/main/index.js +477 -476
  33. package/lib/main/main/index.js.map +1 -1
  34. package/lib/module/debug/log-cache-entry/index.js.map +1 -1
  35. package/lib/module/debug/log-partial-compiled/index.js.map +1 -1
  36. package/lib/module/helpers/buildKeysAndPaths.js +54 -0
  37. package/lib/module/helpers/buildKeysAndPaths.js.map +1 -0
  38. package/lib/module/helpers/checkFieldPathChecklist.js +31 -0
  39. package/lib/module/helpers/checkFieldPathChecklist.js.map +1 -0
  40. package/lib/module/helpers/createFragmentSpreadChecklist.js +15 -0
  41. package/lib/module/helpers/createFragmentSpreadChecklist.js.map +1 -0
  42. package/lib/module/helpers/deriveOpCacheability.js +32 -0
  43. package/lib/module/helpers/deriveOpCacheability.js.map +1 -0
  44. package/lib/module/helpers/filterField.js +81 -0
  45. package/lib/module/helpers/filterField.js.map +1 -0
  46. package/lib/module/helpers/filterFragmentDefinitions.js +39 -0
  47. package/lib/module/helpers/filterFragmentDefinitions.js.map +1 -0
  48. package/lib/module/helpers/filterFragmentSpreads.js +23 -0
  49. package/lib/module/helpers/filterFragmentSpreads.js.map +1 -0
  50. package/lib/module/helpers/filterIDsAndTypeNames.js +36 -0
  51. package/lib/module/helpers/filterIDsAndTypeNames.js.map +1 -0
  52. package/lib/module/helpers/filterInlineFragments.js +32 -0
  53. package/lib/module/helpers/filterInlineFragments.js.map +1 -0
  54. package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js +25 -0
  55. package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js.map +1 -0
  56. package/lib/module/helpers/filterQuery.js +43 -0
  57. package/lib/module/helpers/filterQuery.js.map +1 -0
  58. package/lib/module/helpers/normalizeResponseData.js +11 -0
  59. package/lib/module/helpers/normalizeResponseData.js.map +1 -0
  60. package/lib/module/helpers/validTypeIDValue.js +8 -0
  61. package/lib/module/helpers/validTypeIDValue.js.map +1 -0
  62. package/lib/module/main/index.js +474 -475
  63. package/lib/module/main/index.js.map +1 -1
  64. package/lib/types/debug/log-cache-entry/index.d.ts.map +1 -1
  65. package/lib/types/debug/log-cache-query/index.d.ts.map +1 -1
  66. package/lib/types/debug/log-partial-compiled/index.d.ts.map +1 -1
  67. package/lib/types/defs/index.d.ts +19 -9
  68. package/lib/types/defs/index.d.ts.map +1 -1
  69. package/lib/types/helpers/buildKeysAndPaths.d.ts +10 -0
  70. package/lib/types/helpers/buildKeysAndPaths.d.ts.map +1 -0
  71. package/lib/types/helpers/checkFieldPathChecklist.d.ts +4 -0
  72. package/lib/types/helpers/checkFieldPathChecklist.d.ts.map +1 -0
  73. package/lib/types/helpers/createFragmentSpreadChecklist.d.ts +11 -0
  74. package/lib/types/helpers/createFragmentSpreadChecklist.d.ts.map +1 -0
  75. package/lib/types/helpers/deriveOpCacheability.d.ts +10 -0
  76. package/lib/types/helpers/deriveOpCacheability.d.ts.map +1 -0
  77. package/lib/types/helpers/filterField.d.ts +6 -0
  78. package/lib/types/helpers/filterField.d.ts.map +1 -0
  79. package/lib/types/helpers/filterFragmentDefinitions.d.ts +10 -0
  80. package/lib/types/helpers/filterFragmentDefinitions.d.ts.map +1 -0
  81. package/lib/types/helpers/filterFragmentSpreads.d.ts +6 -0
  82. package/lib/types/helpers/filterFragmentSpreads.d.ts.map +1 -0
  83. package/lib/types/helpers/filterIDsAndTypeNames.d.ts +5 -0
  84. package/lib/types/helpers/filterIDsAndTypeNames.d.ts.map +1 -0
  85. package/lib/types/helpers/filterInlineFragments.d.ts +5 -0
  86. package/lib/types/helpers/filterInlineFragments.d.ts.map +1 -0
  87. package/lib/types/helpers/filterOutPropsWithArgsOrDirectives.d.ts +6 -0
  88. package/lib/types/helpers/filterOutPropsWithArgsOrDirectives.d.ts.map +1 -0
  89. package/lib/types/helpers/filterQuery.d.ts +5 -0
  90. package/lib/types/helpers/filterQuery.d.ts.map +1 -0
  91. package/lib/types/helpers/normalizeResponseData.d.ts +10 -0
  92. package/lib/types/helpers/normalizeResponseData.d.ts.map +1 -0
  93. package/lib/types/helpers/validTypeIDValue.d.ts +3 -0
  94. package/lib/types/helpers/validTypeIDValue.d.ts.map +1 -0
  95. package/lib/types/main/index.d.ts +13 -20
  96. package/lib/types/main/index.d.ts.map +1 -1
  97. package/package.json +2 -2
  98. package/src/__snapshots__/index.test.ts.snap +17449 -7185
  99. package/src/debug/log-cache-entry/index.ts +1 -1
  100. package/src/debug/log-partial-compiled/index.ts +1 -1
  101. package/src/defs/index.ts +18 -10
  102. package/src/helpers/buildKeysAndPaths.ts +71 -0
  103. package/src/helpers/checkFieldPathChecklist.ts +21 -0
  104. package/src/helpers/createFragmentSpreadChecklist.ts +17 -0
  105. package/src/helpers/deriveOpCacheability.ts +32 -0
  106. package/src/helpers/filterField.ts +73 -0
  107. package/src/helpers/filterFragmentDefinitions.ts +40 -0
  108. package/src/helpers/filterFragmentSpreads.ts +28 -0
  109. package/src/helpers/filterIDsAndTypeNames.ts +31 -0
  110. package/src/helpers/filterInlineFragments.ts +29 -0
  111. package/src/helpers/filterOutPropsWithArgsOrDirectives.ts +30 -0
  112. package/src/helpers/filterQuery.ts +38 -0
  113. package/src/helpers/normalizeResponseData.ts +9 -0
  114. package/src/helpers/validTypeIDValue.ts +11 -0
  115. package/src/index.test.ts +179 -3
  116. package/src/main/index.ts +516 -499
@@ -1,65 +1,187 @@
1
1
  -----------------------------
2
2
  Rollup File Analysis
3
3
  -----------------------------
4
- bundle size: 75.478 KB
5
- original size: 46.825 KB
4
+ bundle size: 90.114 KB
5
+ original size: 60.587 KB
6
6
  code reduction: 0 %
7
- module count: 8
7
+ module count: 21
8
8
 
9
- ██████████████████████████████████████████░░░░░░░░
9
+ ███████████████████████████████████░░░░░░░░░░░░░░░
10
10
  file: /src/main/index.ts
11
- bundle space: 85.46 %
12
- rendered size: 64.503 KB
13
- original size: 37.354 KB
11
+ bundle space: 71.46 %
12
+ rendered size: 64.391 KB
13
+ original size: 35.716 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: 5.09 %
20
+ bundle space: 4.26 %
21
21
  rendered size: 3.839 KB
22
22
  original size: 1.282 KB
23
23
  code reduction: 0 %
24
24
  dependents: 1
25
25
  - /src/debug/index.ts
26
26
 
27
- ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
27
+ █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
28
28
  file: /src/debug/log-cache-entry/index.ts
29
- bundle space: 4.57 %
29
+ bundle space: 3.83 %
30
30
  rendered size: 3.451 KB
31
- original size: 1.191 KB
31
+ original size: 1.197 KB
32
32
  code reduction: 0 %
33
33
  dependents: 1
34
34
  - /src/debug/index.ts
35
35
 
36
- ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
36
+ █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
37
37
  file: /src/debug/log-partial-compiled/index.ts
38
- bundle space: 4.46 %
38
+ bundle space: 3.74 %
39
39
  rendered size: 3.37 KB
40
- original size: 1.155 KB
40
+ original size: 1.161 KB
41
41
  code reduction: 0 %
42
42
  dependents: 1
43
43
  - /src/debug/index.ts
44
44
 
45
+ █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
46
+ file: /src/helpers/filterField.ts
47
+ bundle space: 3.14 %
48
+ rendered size: 2.834 KB
49
+ original size: 2.914 KB
50
+ code reduction: 2.75 %
51
+ dependents: 2
52
+ - /src/helpers/filterFragmentDefinitions.ts
53
+ - /src/helpers/filterQuery.ts
54
+
55
+ █░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
56
+ file: /src/helpers/buildKeysAndPaths.ts
57
+ bundle space: 2.73 %
58
+ rendered size: 2.461 KB
59
+ original size: 2.196 KB
60
+ code reduction: 0 %
61
+ dependents: 4
62
+ - /src/helpers/filterOutPropsWithArgsOrDirectives.ts
63
+ - /src/helpers/filterField.ts
64
+ - /src/helpers/filterQuery.ts
65
+ - /src/main/index.ts
66
+
67
+ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
68
+ file: /src/helpers/filterFragmentDefinitions.ts
69
+ bundle space: 1.6 %
70
+ rendered size: 1.441 KB
71
+ original size: 1.5 KB
72
+ code reduction: 3.93 %
73
+ dependents: 1
74
+ - /src/helpers/filterQuery.ts
75
+
76
+ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
77
+ file: /src/helpers/normalizeResponseData.ts
78
+ bundle space: 1.26 %
79
+ rendered size: 1.136 KB
80
+ original size: 277 Bytes
81
+ code reduction: 0 %
82
+ dependents: 1
83
+ - /src/main/index.ts
84
+
85
+ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
86
+ file: /src/helpers/filterQuery.ts
87
+ bundle space: 1.21 %
88
+ rendered size: 1.088 KB
89
+ original size: 1.467 KB
90
+ code reduction: 25.84 %
91
+ dependents: 1
92
+ - /src/main/index.ts
93
+
94
+ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
95
+ file: /src/helpers/filterIDsAndTypeNames.ts
96
+ bundle space: 1.11 %
97
+ rendered size: 998 Bytes
98
+ original size: 1.107 KB
99
+ code reduction: 9.85 %
100
+ dependents: 1
101
+ - /src/helpers/filterField.ts
102
+
103
+ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
104
+ file: /src/helpers/checkFieldPathChecklist.ts
105
+ bundle space: 1.06 %
106
+ rendered size: 957 Bytes
107
+ original size: 828 Bytes
108
+ code reduction: 0 %
109
+ dependents: 1
110
+ - /src/helpers/filterField.ts
111
+
112
+ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
113
+ file: /src/helpers/filterOutPropsWithArgsOrDirectives.ts
114
+ bundle space: 1.03 %
115
+ rendered size: 927 Bytes
116
+ original size: 1.119 KB
117
+ code reduction: 17.16 %
118
+ dependents: 1
119
+ - /src/main/index.ts
120
+
121
+ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
122
+ file: /src/helpers/filterInlineFragments.ts
123
+ bundle space: 0.87 %
124
+ rendered size: 788 Bytes
125
+ original size: 941 Bytes
126
+ code reduction: 16.26 %
127
+ dependents: 1
128
+ - /src/helpers/filterField.ts
129
+
130
+ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
131
+ file: /src/helpers/deriveOpCacheability.ts
132
+ bundle space: 0.87 %
133
+ rendered size: 786 Bytes
134
+ original size: 858 Bytes
135
+ code reduction: 8.39 %
136
+ dependents: 1
137
+ - /src/main/index.ts
138
+
139
+ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
140
+ file: /src/helpers/filterFragmentSpreads.ts
141
+ bundle space: 0.73 %
142
+ rendered size: 661 Bytes
143
+ original size: 936 Bytes
144
+ code reduction: 29.38 %
145
+ dependents: 1
146
+ - /src/helpers/filterField.ts
147
+
148
+ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
149
+ file: /src/helpers/createFragmentSpreadChecklist.ts
150
+ bundle space: 0.4 %
151
+ rendered size: 362 Bytes
152
+ original size: 470 Bytes
153
+ code reduction: 22.98 %
154
+ dependents: 1
155
+ - /src/helpers/filterQuery.ts
156
+
45
157
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
46
158
  file: /src/consts/index.ts
47
- bundle space: 0.42 %
159
+ bundle space: 0.35 %
48
160
  rendered size: 315 Bytes
49
161
  original size: 390 Bytes
50
162
  code reduction: 19.23 %
51
- dependents: 5
163
+ dependents: 6
52
164
  - /src/debug/log-cache-entry/index.ts
53
165
  - /src/debug/log-cache-query/index.ts
54
166
  - /src/debug/log-partial-compiled/index.ts
167
+ - /src/helpers/deriveOpCacheability.ts
55
168
  - /src/main/index.ts
56
169
  - /src/index.ts
57
170
 
171
+ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
172
+ file: /src/helpers/validTypeIDValue.ts
173
+ bundle space: 0.34 %
174
+ rendered size: 309 Bytes
175
+ original size: 426 Bytes
176
+ code reduction: 27.46 %
177
+ dependents: 1
178
+ - /src/main/index.ts
179
+
58
180
  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
59
181
  file: /src/defs/index.ts
60
182
  bundle space: 0 %
61
183
  rendered size: 0 Byte
62
- original size: 5.073 KB
184
+ original size: 5.422 KB
63
185
  code reduction: 100 %
64
186
  dependents: 1
65
187
  - /src/index.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/debug/log-cache-entry/index.ts"],"names":["logCacheEntry","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","startTime","now","endTime","duration","emit","CACHE_ENTRY_ADDED","cachemapOptions","cacheType","context","hash","options","stats"],"mappings":";;;;;;;;;AACA;;AAEe,SAASA,aAAT,GAAyB;AACtC,SAAO,CACLC,OADK,EAELC,aAFK,EAGLC,UAHK,KAII;AACT,UAAMC,MAAM,GAAGD,UAAU,CAACE,KAA1B;AACA,QAAI,CAACD,MAAL,EAAa;;AAEbD,IAAAA,UAAU,CAACE,KAAX,GAAmB,eAAeC,eAAf,CAA+B,GAAGC,IAAlC,EAA6D;AAC9E,aAAO,IAAIC,OAAJ,CAAY,MAAMC,OAAN,IAAiB;AAClC,cAAM;AAAEC,UAAAA,YAAF;AAAgB,aAAGC;AAAnB,YAAoCJ,IAAI,CAAC,CAAD,CAA9C;;AAEA,YAAI,CAACG,YAAL,EAAmB;AACjB,gBAAMN,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAN;AACAE,UAAAA,OAAO;AACP;AACD;;AAED,cAAMI,SAAS,GAAGH,YAAY,CAACI,GAAb,EAAlB;AACA,cAAMV,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAN;AACA,cAAMQ,OAAO,GAAGL,YAAY,CAACI,GAAb,EAAhB;AACA,cAAME,QAAQ,GAAGD,OAAO,GAAGF,SAA3B;AACAJ,QAAAA,OAAO;AAEPC,QAAAA,YAAY,CAACO,IAAb,CAAkBC,yBAAlB,EAAqC;AACnCC,UAAAA,eAAe,EAAEZ,IAAI,CAAC,CAAD,CADc;AAEnCa,UAAAA,SAAS,EAAEb,IAAI,CAAC,CAAD,CAFoB;AAGnCc,UAAAA,OAAO,EAAEV,YAH0B;AAInCW,UAAAA,IAAI,EAAEf,IAAI,CAAC,CAAD,CAJyB;AAKnCgB,UAAAA,OAAO,EAAEhB,IAAI,CAAC,CAAD,CALsB;AAMnCiB,UAAAA,KAAK,EAAE;AAAER,YAAAA,QAAF;AAAYD,YAAAA,OAAZ;AAAqBF,YAAAA;AAArB,WAN4B;AAOnCR,UAAAA,KAAK,EAAEE,IAAI,CAAC,CAAD;AAPwB,SAArC;AASD,OAxBM,CAAP;AAyBD,KA1BD;AA2BD,GAnCD;AAoCD","sourcesContent":["import { RequestContext } from \"@graphql-box/core\";\nimport { CACHE_ENTRY_ADDED } from \"../../consts\";\n\nexport default function logCacheEntry() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n return new Promise(async resolve => {\n const { debugManager, ...otherContext } = args[5] as RequestContext;\n\n if (!debugManager) {\n await method.apply(this, args);\n resolve();\n return;\n }\n\n const startTime = debugManager.now();\n await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve();\n\n debugManager.emit(CACHE_ENTRY_ADDED, {\n cachemapOptions: args[3],\n cacheType: args[0],\n context: otherContext,\n hash: args[1],\n options: args[4],\n stats: { duration, endTime, startTime },\n value: args[2],\n });\n });\n };\n };\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/debug/log-cache-entry/index.ts"],"names":["logCacheEntry","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","startTime","now","endTime","duration","emit","CACHE_ENTRY_ADDED","cachemapOptions","cacheType","context","hash","options","stats"],"mappings":";;;;;;;;;AACA;;AAEe,SAASA,aAAT,GAAyB;AACtC,SAAO,CACLC,OADK,EAELC,aAFK,EAGLC,UAHK,KAII;AACT,UAAMC,MAAM,GAAGD,UAAU,CAACE,KAA1B;AACA,QAAI,CAACD,MAAL,EAAa;;AAEbD,IAAAA,UAAU,CAACE,KAAX,GAAmB,eAAeC,eAAf,CAA+B,GAAGC,IAAlC,EAA6D;AAC9E,aAAO,IAAIC,OAAJ,CAAkB,MAAMC,OAAN,IAAiB;AACxC,cAAM;AAAEC,UAAAA,YAAF;AAAgB,aAAGC;AAAnB,YAAoCJ,IAAI,CAAC,CAAD,CAA9C;;AAEA,YAAI,CAACG,YAAL,EAAmB;AACjB,gBAAMN,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAN;AACAE,UAAAA,OAAO;AACP;AACD;;AAED,cAAMI,SAAS,GAAGH,YAAY,CAACI,GAAb,EAAlB;AACA,cAAMV,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAN;AACA,cAAMQ,OAAO,GAAGL,YAAY,CAACI,GAAb,EAAhB;AACA,cAAME,QAAQ,GAAGD,OAAO,GAAGF,SAA3B;AACAJ,QAAAA,OAAO;AAEPC,QAAAA,YAAY,CAACO,IAAb,CAAkBC,yBAAlB,EAAqC;AACnCC,UAAAA,eAAe,EAAEZ,IAAI,CAAC,CAAD,CADc;AAEnCa,UAAAA,SAAS,EAAEb,IAAI,CAAC,CAAD,CAFoB;AAGnCc,UAAAA,OAAO,EAAEV,YAH0B;AAInCW,UAAAA,IAAI,EAAEf,IAAI,CAAC,CAAD,CAJyB;AAKnCgB,UAAAA,OAAO,EAAEhB,IAAI,CAAC,CAAD,CALsB;AAMnCiB,UAAAA,KAAK,EAAE;AAAER,YAAAA,QAAF;AAAYD,YAAAA,OAAZ;AAAqBF,YAAAA;AAArB,WAN4B;AAOnCR,UAAAA,KAAK,EAAEE,IAAI,CAAC,CAAD;AAPwB,SAArC;AASD,OAxBM,CAAP;AAyBD,KA1BD;AA2BD,GAnCD;AAoCD","sourcesContent":["import { RequestContext } from \"@graphql-box/core\";\nimport { CACHE_ENTRY_ADDED } from \"../../consts\";\n\nexport default function logCacheEntry() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n return new Promise<void>(async resolve => {\n const { debugManager, ...otherContext } = args[5] as RequestContext;\n\n if (!debugManager) {\n await method.apply(this, args);\n resolve();\n return;\n }\n\n const startTime = debugManager.now();\n await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve();\n\n debugManager.emit(CACHE_ENTRY_ADDED, {\n cachemapOptions: args[3],\n cacheType: args[0],\n context: otherContext,\n hash: args[1],\n options: args[4],\n stats: { duration, endTime, startTime },\n value: args[2],\n });\n });\n };\n };\n}\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/debug/log-partial-compiled/index.ts"],"names":["logPartialCompiled","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","startTime","now","endTime","duration","emit","PARTIAL_QUERY_COMPILED","context","hash","options","partialQueryResponse","stats"],"mappings":";;;;;;;;;AACA;;AAEe,SAASA,kBAAT,GAA8B;AAC3C,SAAO,CACLC,OADK,EAELC,aAFK,EAGLC,UAHK,KAII;AACT,UAAMC,MAAM,GAAGD,UAAU,CAACE,KAA1B;AACA,QAAI,CAACD,MAAL,EAAa;;AAEbD,IAAAA,UAAU,CAACE,KAAX,GAAmB,eAAeC,eAAf,CAA+B,GAAGC,IAAlC,EAA6D;AAC9E,aAAO,IAAIC,OAAJ,CAAY,MAAMC,OAAN,IAAiB;AAClC,cAAM;AAAEC,UAAAA,YAAF;AAAgB,aAAGC;AAAnB,YAAoCJ,IAAI,CAAC,CAAD,CAA9C;;AAEA,YAAI,CAACG,YAAL,EAAmB;AACjB,gBAAMN,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAN;AACAE,UAAAA,OAAO;AACP;AACD;;AAED,cAAMI,SAAS,GAAGH,YAAY,CAACI,GAAb,EAAlB;AACA,cAAMV,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAN;AACA,cAAMQ,OAAO,GAAGL,YAAY,CAACI,GAAb,EAAhB;AACA,cAAME,QAAQ,GAAGD,OAAO,GAAGF,SAA3B;AACAJ,QAAAA,OAAO;AAEPC,QAAAA,YAAY,CAACO,IAAb,CAAkBC,8BAAlB,EAA0C;AACxCC,UAAAA,OAAO,EAAER,YAD+B;AAExCS,UAAAA,IAAI,EAAEb,IAAI,CAAC,CAAD,CAF8B;AAGxCc,UAAAA,OAAO,EAAEd,IAAI,CAAC,CAAD,CAH2B;AAIxCe,UAAAA,oBAAoB,EAAEf,IAAI,CAAC,CAAD,CAJc;AAKxCgB,UAAAA,KAAK,EAAE;AAAEP,YAAAA,QAAF;AAAYD,YAAAA,OAAZ;AAAqBF,YAAAA;AAArB;AALiC,SAA1C;AAOD,OAtBM,CAAP;AAuBD,KAxBD;AAyBD,GAjCD;AAkCD","sourcesContent":["import { RequestContext } from \"@graphql-box/core\";\nimport { PARTIAL_QUERY_COMPILED } from \"../../consts\";\n\nexport default function logPartialCompiled() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n return new Promise(async resolve => {\n const { debugManager, ...otherContext } = args[3] as RequestContext;\n\n if (!debugManager) {\n await method.apply(this, args);\n resolve();\n return;\n }\n\n const startTime = debugManager.now();\n await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve();\n\n debugManager.emit(PARTIAL_QUERY_COMPILED, {\n context: otherContext,\n hash: args[0],\n options: args[2],\n partialQueryResponse: args[1],\n stats: { duration, endTime, startTime },\n });\n });\n };\n };\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/debug/log-partial-compiled/index.ts"],"names":["logPartialCompiled","_target","_propertyName","descriptor","method","value","descriptorValue","args","Promise","resolve","debugManager","otherContext","apply","startTime","now","endTime","duration","emit","PARTIAL_QUERY_COMPILED","context","hash","options","partialQueryResponse","stats"],"mappings":";;;;;;;;;AACA;;AAEe,SAASA,kBAAT,GAA8B;AAC3C,SAAO,CACLC,OADK,EAELC,aAFK,EAGLC,UAHK,KAII;AACT,UAAMC,MAAM,GAAGD,UAAU,CAACE,KAA1B;AACA,QAAI,CAACD,MAAL,EAAa;;AAEbD,IAAAA,UAAU,CAACE,KAAX,GAAmB,eAAeC,eAAf,CAA+B,GAAGC,IAAlC,EAA6D;AAC9E,aAAO,IAAIC,OAAJ,CAAkB,MAAMC,OAAN,IAAiB;AACxC,cAAM;AAAEC,UAAAA,YAAF;AAAgB,aAAGC;AAAnB,YAAoCJ,IAAI,CAAC,CAAD,CAA9C;;AAEA,YAAI,CAACG,YAAL,EAAmB;AACjB,gBAAMN,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAN;AACAE,UAAAA,OAAO;AACP;AACD;;AAED,cAAMI,SAAS,GAAGH,YAAY,CAACI,GAAb,EAAlB;AACA,cAAMV,MAAM,CAACQ,KAAP,CAAa,IAAb,EAAmBL,IAAnB,CAAN;AACA,cAAMQ,OAAO,GAAGL,YAAY,CAACI,GAAb,EAAhB;AACA,cAAME,QAAQ,GAAGD,OAAO,GAAGF,SAA3B;AACAJ,QAAAA,OAAO;AAEPC,QAAAA,YAAY,CAACO,IAAb,CAAkBC,8BAAlB,EAA0C;AACxCC,UAAAA,OAAO,EAAER,YAD+B;AAExCS,UAAAA,IAAI,EAAEb,IAAI,CAAC,CAAD,CAF8B;AAGxCc,UAAAA,OAAO,EAAEd,IAAI,CAAC,CAAD,CAH2B;AAIxCe,UAAAA,oBAAoB,EAAEf,IAAI,CAAC,CAAD,CAJc;AAKxCgB,UAAAA,KAAK,EAAE;AAAEP,YAAAA,QAAF;AAAYD,YAAAA,OAAZ;AAAqBF,YAAAA;AAArB;AALiC,SAA1C;AAOD,OAtBM,CAAP;AAuBD,KAxBD;AAyBD,GAjCD;AAkCD","sourcesContent":["import { RequestContext } from \"@graphql-box/core\";\nimport { PARTIAL_QUERY_COMPILED } from \"../../consts\";\n\nexport default function logPartialCompiled() {\n return (\n _target: any,\n _propertyName: string,\n descriptor: TypedPropertyDescriptor<(...args: any[]) => Promise<any>>,\n ): void => {\n const method = descriptor.value;\n if (!method) return;\n\n descriptor.value = async function descriptorValue(...args: any[]): Promise<any> {\n return new Promise<void>(async resolve => {\n const { debugManager, ...otherContext } = args[3] as RequestContext;\n\n if (!debugManager) {\n await method.apply(this, args);\n resolve();\n return;\n }\n\n const startTime = debugManager.now();\n await method.apply(this, args);\n const endTime = debugManager.now();\n const duration = endTime - startTime;\n resolve();\n\n debugManager.emit(PARTIAL_QUERY_COMPILED, {\n context: otherContext,\n hash: args[0],\n options: args[2],\n partialQueryResponse: args[1],\n stats: { duration, endTime, startTime },\n });\n });\n };\n };\n}\n"],"file":"index.js"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.buildFieldKeysAndPaths = exports.buildRequestFieldCacheKey = exports.buildKey = void 0;
9
+
10
+ var _isNumber2 = _interopRequireDefault(require("lodash/isNumber"));
11
+
12
+ var _helpers = require("@graphql-box/helpers");
13
+
14
+ const buildKey = (path, key) => {
15
+ const paths = [];
16
+
17
+ if (path.length) {
18
+ paths.push(path);
19
+ }
20
+
21
+ paths.push(key);
22
+ return paths.join(".");
23
+ };
24
+
25
+ exports.buildKey = buildKey;
26
+
27
+ const buildRequestFieldCacheKey = (name, requestFieldCacheKey, args, directives, index) => {
28
+ var _directives$inherited, _directives$own;
29
+
30
+ let key = `${(0, _isNumber2.default)(index) ? index : name}`;
31
+
32
+ if (args) {
33
+ key = `${key}(${JSON.stringify(args)})`;
34
+ }
35
+
36
+ if (directives !== null && directives !== void 0 && (_directives$inherited = directives.inherited) !== null && _directives$inherited !== void 0 && _directives$inherited.length) {
37
+ key = `${directives.inherited.join(" ")} ${key}`;
38
+ }
39
+
40
+ if (directives !== null && directives !== void 0 && (_directives$own = directives.own) !== null && _directives$own !== void 0 && _directives$own.length) {
41
+ key = `${key} ${directives.own.join(" ")}`;
42
+ }
43
+
44
+ return buildKey(requestFieldCacheKey, key);
45
+ };
46
+
47
+ exports.buildRequestFieldCacheKey = buildRequestFieldCacheKey;
48
+
49
+ const buildFieldKeysAndPaths = (field, options, context) => {
50
+ const name = (0, _helpers.getName)(field);
51
+ const {
52
+ index,
53
+ requestFieldCacheKey = "",
54
+ requestFieldPath = "",
55
+ responseDataPath = ""
56
+ } = options;
57
+ const fieldAliasOrName = (0, _helpers.getAlias)(field) || name;
58
+ const updatedRequestFieldPath = (0, _isNumber2.default)(index) ? requestFieldPath : buildKey(requestFieldPath, fieldAliasOrName);
59
+ const fieldTypeInfo = context.fieldTypeMap.get(updatedRequestFieldPath);
60
+ const updatedRequestFieldCacheKey = buildRequestFieldCacheKey(name, requestFieldCacheKey, (0, _helpers.getArguments)(field), fieldTypeInfo === null || fieldTypeInfo === void 0 ? void 0 : fieldTypeInfo.directives, index);
61
+ const propNameOrIndex = (0, _isNumber2.default)(index) ? index : fieldAliasOrName;
62
+ const updatedResponseDataPath = buildKey(responseDataPath, propNameOrIndex);
63
+ return {
64
+ hashedRequestFieldCacheKey: (0, _helpers.hashRequest)(updatedRequestFieldCacheKey),
65
+ propNameOrIndex,
66
+ requestFieldCacheKey: updatedRequestFieldCacheKey,
67
+ requestFieldPath: updatedRequestFieldPath,
68
+ responseDataPath: updatedResponseDataPath
69
+ };
70
+ };
71
+
72
+ exports.buildFieldKeysAndPaths = buildFieldKeysAndPaths;
73
+ //# sourceMappingURL=buildKeysAndPaths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/helpers/buildKeysAndPaths.ts"],"names":["buildKey","path","key","paths","length","push","join","buildRequestFieldCacheKey","name","requestFieldCacheKey","args","directives","index","JSON","stringify","inherited","own","buildFieldKeysAndPaths","field","options","context","requestFieldPath","responseDataPath","fieldAliasOrName","updatedRequestFieldPath","fieldTypeInfo","fieldTypeMap","get","updatedRequestFieldCacheKey","propNameOrIndex","updatedResponseDataPath","hashedRequestFieldCacheKey"],"mappings":";;;;;;;;;;;AACA;;AAKO,MAAMA,QAAQ,GAAG,CAACC,IAAD,EAAeC,GAAf,KAAwC;AAC9D,QAAMC,KAA0B,GAAG,EAAnC;;AAEA,MAAIF,IAAI,CAACG,MAAT,EAAiB;AACfD,IAAAA,KAAK,CAACE,IAAN,CAAWJ,IAAX;AACD;;AAEDE,EAAAA,KAAK,CAACE,IAAN,CAAWH,GAAX;AACA,SAAOC,KAAK,CAACG,IAAN,CAAW,GAAX,CAAP;AACD,CATM;;;;AAWA,MAAMC,yBAAyB,GAAG,CACvCC,IADuC,EAEvCC,oBAFuC,EAGvCC,IAHuC,EAIvCC,UAJuC,EAKvCC,KALuC,KAMpC;AAAA;;AACH,MAAIV,GAAG,GAAI,GAAE,wBAASU,KAAT,IAAkBA,KAAlB,GAA0BJ,IAAK,EAA5C;;AAEA,MAAIE,IAAJ,EAAU;AACRR,IAAAA,GAAG,GAAI,GAAEA,GAAI,IAAGW,IAAI,CAACC,SAAL,CAAeJ,IAAf,CAAqB,GAArC;AACD;;AAED,MAAIC,UAAJ,aAAIA,UAAJ,wCAAIA,UAAU,CAAEI,SAAhB,kDAAI,sBAAuBX,MAA3B,EAAmC;AACjCF,IAAAA,GAAG,GAAI,GAAES,UAAU,CAACI,SAAX,CAAqBT,IAArB,CAA0B,GAA1B,CAA+B,IAAGJ,GAAI,EAA/C;AACD;;AAED,MAAIS,UAAJ,aAAIA,UAAJ,kCAAIA,UAAU,CAAEK,GAAhB,4CAAI,gBAAiBZ,MAArB,EAA6B;AAC3BF,IAAAA,GAAG,GAAI,GAAEA,GAAI,IAAGS,UAAU,CAACK,GAAX,CAAeV,IAAf,CAAoB,GAApB,CAAyB,EAAzC;AACD;;AAED,SAAON,QAAQ,CAACS,oBAAD,EAAuBP,GAAvB,CAAf;AACD,CAtBM;;;;AAwBA,MAAMe,sBAAsB,GAAG,CACpCC,KADoC,EAEpCC,OAFoC,EAGpCC,OAHoC,KAInB;AACjB,QAAMZ,IAAI,GAAG,sBAAQU,KAAR,CAAb;AACA,QAAM;AAAEN,IAAAA,KAAF;AAASH,IAAAA,oBAAoB,GAAG,EAAhC;AAAoCY,IAAAA,gBAAgB,GAAG,EAAvD;AAA2DC,IAAAA,gBAAgB,GAAG;AAA9E,MAAqFH,OAA3F;AACA,QAAMI,gBAAgB,GAAG,uBAASL,KAAT,KAAmBV,IAA5C;AACA,QAAMgB,uBAAuB,GAAG,wBAASZ,KAAT,IAAkBS,gBAAlB,GAAqCrB,QAAQ,CAACqB,gBAAD,EAAmBE,gBAAnB,CAA7E;AACA,QAAME,aAAa,GAAGL,OAAO,CAACM,YAAR,CAAqBC,GAArB,CAAyBH,uBAAzB,CAAtB;AAEA,QAAMI,2BAA2B,GAAGrB,yBAAyB,CAC3DC,IAD2D,EAE3DC,oBAF2D,EAG3D,2BAAaS,KAAb,CAH2D,EAI3DO,aAJ2D,aAI3DA,aAJ2D,uBAI3DA,aAAa,CAAEd,UAJ4C,EAK3DC,KAL2D,CAA7D;AAQA,QAAMiB,eAAe,GAAG,wBAASjB,KAAT,IAAkBA,KAAlB,GAA0BW,gBAAlD;AACA,QAAMO,uBAAuB,GAAG9B,QAAQ,CAACsB,gBAAD,EAAmBO,eAAnB,CAAxC;AAEA,SAAO;AACLE,IAAAA,0BAA0B,EAAE,0BAAYH,2BAAZ,CADvB;AAELC,IAAAA,eAFK;AAGLpB,IAAAA,oBAAoB,EAAEmB,2BAHjB;AAILP,IAAAA,gBAAgB,EAAEG,uBAJb;AAKLF,IAAAA,gBAAgB,EAAEQ;AALb,GAAP;AAOD,CA7BM","sourcesContent":["import { FieldTypeInfo, PlainObjectMap } from \"@graphql-box/core\";\nimport { getAlias, getArguments, getName, hashRequest } from \"@graphql-box/helpers\";\nimport { FieldNode } from \"graphql\";\nimport { isNumber } from \"lodash\";\nimport { CacheManagerContext, KeysAndPaths, KeysAndPathsOptions } from \"../defs\";\n\nexport const buildKey = (path: string, key: string | number) => {\n const paths: (string | number)[] = [];\n\n if (path.length) {\n paths.push(path);\n }\n\n paths.push(key);\n return paths.join(\".\");\n};\n\nexport const buildRequestFieldCacheKey = (\n name: string,\n requestFieldCacheKey: string,\n args: PlainObjectMap | undefined,\n directives?: FieldTypeInfo[\"directives\"],\n index?: number,\n) => {\n let key = `${isNumber(index) ? index : name}`;\n\n if (args) {\n key = `${key}(${JSON.stringify(args)})`;\n }\n\n if (directives?.inherited?.length) {\n key = `${directives.inherited.join(\" \")} ${key}`;\n }\n\n if (directives?.own?.length) {\n key = `${key} ${directives.own.join(\" \")}`;\n }\n\n return buildKey(requestFieldCacheKey, key);\n};\n\nexport const buildFieldKeysAndPaths = (\n field: FieldNode,\n options: KeysAndPathsOptions,\n context: CacheManagerContext,\n): KeysAndPaths => {\n const name = getName(field) as FieldNode[\"name\"][\"value\"];\n const { index, requestFieldCacheKey = \"\", requestFieldPath = \"\", responseDataPath = \"\" } = options;\n const fieldAliasOrName = getAlias(field) || name;\n const updatedRequestFieldPath = isNumber(index) ? requestFieldPath : buildKey(requestFieldPath, fieldAliasOrName);\n const fieldTypeInfo = context.fieldTypeMap.get(updatedRequestFieldPath);\n\n const updatedRequestFieldCacheKey = buildRequestFieldCacheKey(\n name,\n requestFieldCacheKey,\n getArguments(field),\n fieldTypeInfo?.directives,\n index,\n );\n\n const propNameOrIndex = isNumber(index) ? index : fieldAliasOrName;\n const updatedResponseDataPath = buildKey(responseDataPath, propNameOrIndex);\n\n return {\n hashedRequestFieldCacheKey: hashRequest(updatedRequestFieldCacheKey),\n propNameOrIndex,\n requestFieldCacheKey: updatedRequestFieldCacheKey,\n requestFieldPath: updatedRequestFieldPath,\n responseDataPath: updatedResponseDataPath,\n };\n};\n"],"file":"buildKeysAndPaths.js"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _default = (fieldPathChecklistValues, fieldTypeName) => {
9
+ if (!fieldPathChecklistValues || !fieldPathChecklistValues.length) {
10
+ return {
11
+ hasData: false,
12
+ typeUnused: !!fieldTypeName
13
+ };
14
+ }
15
+
16
+ if (fieldPathChecklistValues.length === 1) {
17
+ const {
18
+ hasData,
19
+ typeName
20
+ } = fieldPathChecklistValues[0];
21
+ const typeUnused = !typeName ? undefined : typeName !== fieldTypeName;
22
+ return {
23
+ hasData,
24
+ typeUnused
25
+ };
26
+ }
27
+
28
+ return {
29
+ hasData: fieldPathChecklistValues.some(({
30
+ hasData,
31
+ typeName
32
+ }) => typeName === fieldTypeName && hasData),
33
+ typeUnused: !fieldPathChecklistValues.every(({
34
+ typeName
35
+ }) => typeName === fieldTypeName)
36
+ };
37
+ };
38
+
39
+ exports.default = _default;
40
+ //# sourceMappingURL=checkFieldPathChecklist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/helpers/checkFieldPathChecklist.ts"],"names":["fieldPathChecklistValues","fieldTypeName","length","hasData","typeUnused","typeName","undefined","some","every"],"mappings":";;;;;;;eAEe,CACbA,wBADa,EAEbC,aAFa,KAGqB;AAClC,MAAI,CAACD,wBAAD,IAA6B,CAACA,wBAAwB,CAACE,MAA3D,EAAmE;AACjE,WAAO;AAAEC,MAAAA,OAAO,EAAE,KAAX;AAAkBC,MAAAA,UAAU,EAAE,CAAC,CAACH;AAAhC,KAAP;AACD;;AAED,MAAID,wBAAwB,CAACE,MAAzB,KAAoC,CAAxC,EAA2C;AACzC,UAAM;AAAEC,MAAAA,OAAF;AAAWE,MAAAA;AAAX,QAAwBL,wBAAwB,CAAC,CAAD,CAAtD;AACA,UAAMI,UAAU,GAAG,CAACC,QAAD,GAAYC,SAAZ,GAAwBD,QAAQ,KAAKJ,aAAxD;AACA,WAAO;AAAEE,MAAAA,OAAF;AAAWC,MAAAA;AAAX,KAAP;AACD;;AAED,SAAO;AACLD,IAAAA,OAAO,EAAEH,wBAAwB,CAACO,IAAzB,CAA8B,CAAC;AAAEJ,MAAAA,OAAF;AAAWE,MAAAA;AAAX,KAAD,KAA2BA,QAAQ,KAAKJ,aAAb,IAA8BE,OAAvF,CADJ;AAELC,IAAAA,UAAU,EAAE,CAACJ,wBAAwB,CAACQ,KAAzB,CAA+B,CAAC;AAAEH,MAAAA;AAAF,KAAD,KAAkBA,QAAQ,KAAKJ,aAA9D;AAFR,GAAP;AAID,C","sourcesContent":["import { CheckFieldPathChecklistResult, FieldPathChecklistValue } from \"../defs\";\n\nexport default (\n fieldPathChecklistValues: FieldPathChecklistValue[] | undefined,\n fieldTypeName: string | undefined,\n): CheckFieldPathChecklistResult => {\n if (!fieldPathChecklistValues || !fieldPathChecklistValues.length) {\n return { hasData: false, typeUnused: !!fieldTypeName };\n }\n\n if (fieldPathChecklistValues.length === 1) {\n const { hasData, typeName } = fieldPathChecklistValues[0];\n const typeUnused = !typeName ? undefined : typeName !== fieldTypeName;\n return { hasData, typeUnused };\n }\n\n return {\n hasData: fieldPathChecklistValues.some(({ hasData, typeName }) => typeName === fieldTypeName && hasData),\n typeUnused: !fieldPathChecklistValues.every(({ typeName }) => typeName === fieldTypeName),\n };\n};\n"],"file":"checkFieldPathChecklist.js"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _keys2 = _interopRequireDefault(require("lodash/keys"));
11
+
12
+ var _helpers = require("@graphql-box/helpers");
13
+
14
+ var _default = ast => {
15
+ var _getFragmentDefinitio;
16
+
17
+ return (0, _keys2.default)((_getFragmentDefinitio = (0, _helpers.getFragmentDefinitions)(ast)) !== null && _getFragmentDefinitio !== void 0 ? _getFragmentDefinitio : {}).reduce((acc, name) => {
18
+ acc[name] = {
19
+ deleted: 0,
20
+ paths: [],
21
+ total: 0
22
+ };
23
+ return acc;
24
+ }, {});
25
+ };
26
+
27
+ exports.default = _default;
28
+ //# sourceMappingURL=createFragmentSpreadChecklist.js.map
@@ -0,0 +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"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
11
+
12
+ var _cacheability = _interopRequireDefault(require("cacheability"));
13
+
14
+ var _consts = require("../consts");
15
+
16
+ var _default = ({
17
+ _cacheMetadata,
18
+ fallback,
19
+ headers
20
+ }) => {
21
+ if (_cacheMetadata && !(0, _isEmpty2.default)(_cacheMetadata)) {
22
+ const [first, ...rest] = Object.values(_cacheMetadata);
23
+ return new _cacheability.default({
24
+ metadata: rest.reduce((acc, metadata) => {
25
+ if (metadata.ttl < acc.ttl) {
26
+ return metadata;
27
+ }
28
+
29
+ return acc;
30
+ }, first)
31
+ });
32
+ }
33
+
34
+ if (headers && headers.has(_consts.HEADER_CACHE_CONTROL)) {
35
+ return new _cacheability.default({
36
+ headers
37
+ });
38
+ }
39
+
40
+ return new _cacheability.default({
41
+ cacheControl: fallback
42
+ });
43
+ };
44
+
45
+ exports.default = _default;
46
+ //# sourceMappingURL=deriveOpCacheability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/helpers/deriveOpCacheability.ts"],"names":["_cacheMetadata","fallback","headers","first","rest","Object","values","Cacheability","metadata","reduce","acc","ttl","has","HEADER_CACHE_CONTROL","cacheControl"],"mappings":";;;;;;;;;;;AACA;;AAEA;;eAQe,CAAC;AAAEA,EAAAA,cAAF;AAAkBC,EAAAA,QAAlB;AAA4BC,EAAAA;AAA5B,CAAD,KAAiE;AAC9E,MAAIF,cAAc,IAAI,CAAC,uBAAQA,cAAR,CAAvB,EAAgD;AAC9C,UAAM,CAACG,KAAD,EAAQ,GAAGC,IAAX,IAAmBC,MAAM,CAACC,MAAP,CAAcN,cAAd,CAAzB;AAEA,WAAO,IAAIO,qBAAJ,CAAiB;AACtBC,MAAAA,QAAQ,EAAEJ,IAAI,CAACK,MAAL,CAAY,CAACC,GAAD,EAAMF,QAAN,KAAmB;AACvC,YAAIA,QAAQ,CAACG,GAAT,GAAeD,GAAG,CAACC,GAAvB,EAA4B;AAC1B,iBAAOH,QAAP;AACD;;AAED,eAAOE,GAAP;AACD,OANS,EAMPP,KANO;AADY,KAAjB,CAAP;AASD;;AAED,MAAID,OAAO,IAAIA,OAAO,CAACU,GAAR,CAAYC,4BAAZ,CAAf,EAAkD;AAChD,WAAO,IAAIN,qBAAJ,CAAiB;AAAEL,MAAAA;AAAF,KAAjB,CAAP;AACD;;AAED,SAAO,IAAIK,qBAAJ,CAAiB;AAAEO,IAAAA,YAAY,EAAEb;AAAhB,GAAjB,CAAP;AACD,C","sourcesContent":["import { DehydratedCacheMetadata } from \"@graphql-box/core\";\nimport Cacheability from \"cacheability\";\nimport { isEmpty } from \"lodash\";\nimport { HEADER_CACHE_CONTROL } from \"../consts\";\n\nexport type Params = {\n _cacheMetadata?: DehydratedCacheMetadata;\n fallback: string;\n headers?: Headers;\n};\n\nexport default ({ _cacheMetadata, fallback, headers }: Params): Cacheability => {\n if (_cacheMetadata && !isEmpty(_cacheMetadata)) {\n const [first, ...rest] = Object.values(_cacheMetadata);\n\n return new Cacheability({\n metadata: rest.reduce((acc, metadata) => {\n if (metadata.ttl < acc.ttl) {\n return metadata;\n }\n\n return acc;\n }, first),\n });\n }\n\n if (headers && headers.has(HEADER_CACHE_CONTROL)) {\n return new Cacheability({ headers });\n }\n\n return new Cacheability({ cacheControl: fallback });\n};\n"],"file":"deriveOpCacheability.js"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _core = require("@graphql-box/core");
11
+
12
+ var _helpers = require("@graphql-box/helpers");
13
+
14
+ var _buildKeysAndPaths = require("./buildKeysAndPaths");
15
+
16
+ var _checkFieldPathChecklist = _interopRequireDefault(require("./checkFieldPathChecklist"));
17
+
18
+ var _filterFragmentSpreads = _interopRequireDefault(require("./filterFragmentSpreads"));
19
+
20
+ var _filterIDsAndTypeNames = _interopRequireDefault(require("./filterIDsAndTypeNames"));
21
+
22
+ var _filterInlineFragments = _interopRequireDefault(require("./filterInlineFragments"));
23
+
24
+ const filterField = (field, fieldPathChecklist, fragmentSpreadChecklist, ancestorRequestFieldPath, context) => {
25
+ const {
26
+ fragmentDefinitions,
27
+ typeIDKey
28
+ } = context;
29
+ const fieldsAndTypeNames = (0, _helpers.getChildFields)(field, {
30
+ fragmentDefinitions
31
+ });
32
+
33
+ if (!fieldsAndTypeNames) {
34
+ return false;
35
+ }
36
+
37
+ const fragmentSpreadFieldCounter = {};
38
+
39
+ for (let i = fieldsAndTypeNames.length - 1; i >= 0; i -= 1) {
40
+ const {
41
+ fieldNode: childField,
42
+ fragmentKind,
43
+ fragmentName,
44
+ typeName: childTypeName
45
+ } = fieldsAndTypeNames[i];
46
+
47
+ if (fragmentKind === _helpers.FRAGMENT_SPREAD && fragmentName && !fragmentSpreadFieldCounter[fragmentName]) {
48
+ var _getChildFields$lengt, _getChildFields;
49
+
50
+ fragmentSpreadFieldCounter[fragmentName] = {
51
+ hasData: 0,
52
+ total: fragmentDefinitions !== null && fragmentDefinitions !== void 0 && fragmentDefinitions[fragmentName] ? (_getChildFields$lengt = (_getChildFields = (0, _helpers.getChildFields)(fragmentDefinitions === null || fragmentDefinitions === void 0 ? void 0 : fragmentDefinitions[fragmentName], {
53
+ fragmentDefinitions
54
+ })) === null || _getChildFields === void 0 ? void 0 : _getChildFields.length) !== null && _getChildFields$lengt !== void 0 ? _getChildFields$lengt : 0 : 0
55
+ };
56
+ }
57
+
58
+ const childFieldName = (0, _helpers.getName)(childField);
59
+
60
+ if (childFieldName === typeIDKey || childFieldName === _core.TYPE_NAME_KEY) {
61
+ continue;
62
+ }
63
+
64
+ const {
65
+ requestFieldPath
66
+ } = (0, _buildKeysAndPaths.buildFieldKeysAndPaths)(childField, {
67
+ requestFieldPath: ancestorRequestFieldPath
68
+ }, context);
69
+ const {
70
+ hasData,
71
+ typeUnused
72
+ } = (0, _checkFieldPathChecklist.default)(fieldPathChecklist.get(requestFieldPath), childTypeName);
73
+
74
+ if (hasData || typeUnused) {
75
+ if (fragmentKind === _helpers.FRAGMENT_SPREAD) {
76
+ fragmentSpreadFieldCounter[fragmentName].hasData += 1;
77
+ } else if (!(0, _helpers.hasChildFields)(childField, {
78
+ fragmentDefinitions
79
+ })) {
80
+ (0, _helpers.deleteChildFields)(field, childField);
81
+ } else if (filterField(childField, fieldPathChecklist, fragmentSpreadChecklist, requestFieldPath, context)) {
82
+ (0, _helpers.deleteChildFields)(field, childField);
83
+ }
84
+ }
85
+ }
86
+
87
+ (0, _filterFragmentSpreads.default)(field, fragmentSpreadFieldCounter, fragmentSpreadChecklist, ancestorRequestFieldPath);
88
+ (0, _filterInlineFragments.default)(field, context);
89
+ (0, _filterIDsAndTypeNames.default)(field, context);
90
+ return !(0, _helpers.hasChildFields)(field, {
91
+ fragmentDefinitions
92
+ });
93
+ };
94
+
95
+ var _default = filterField;
96
+ exports.default = _default;
97
+ //# sourceMappingURL=filterField.js.map
@@ -0,0 +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"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _keys2 = _interopRequireDefault(require("lodash/keys"));
11
+
12
+ var _helpers = require("@graphql-box/helpers");
13
+
14
+ var _filterField = _interopRequireDefault(require("./filterField"));
15
+
16
+ var _default = (ast, fieldPathChecklist, fragmentSpreadChecklist, context) => {
17
+ var _getFragmentDefinitio;
18
+
19
+ const definitionsToFilter = (0, _keys2.default)(fragmentSpreadChecklist).reduce((namesAndPaths, key) => {
20
+ const {
21
+ deleted,
22
+ total
23
+ } = fragmentSpreadChecklist[key];
24
+ return deleted === 0 && total === 1 ? [...namesAndPaths, {
25
+ name: key,
26
+ path: fragmentSpreadChecklist[key].paths[0]
27
+ }] : namesAndPaths;
28
+ }, []);
29
+ const fragmentDefinitions = (_getFragmentDefinitio = (0, _helpers.getFragmentDefinitions)(ast)) !== null && _getFragmentDefinitio !== void 0 ? _getFragmentDefinitio : {};
30
+ definitionsToFilter.forEach(({
31
+ name,
32
+ path
33
+ }) => {
34
+ const fragmentDefinition = fragmentDefinitions[name];
35
+ (0, _filterField.default)(fragmentDefinition, fieldPathChecklist, fragmentSpreadChecklist, path, context);
36
+ });
37
+ const definitionsToDelete = (0, _keys2.default)(fragmentSpreadChecklist).reduce((names, key) => {
38
+ const {
39
+ deleted,
40
+ total
41
+ } = fragmentSpreadChecklist[key];
42
+ return deleted > 0 && deleted === total ? [...names, key] : names;
43
+ }, []);
44
+ return (0, _helpers.deleteFragmentDefinitions)(ast, {
45
+ include: definitionsToDelete
46
+ });
47
+ };
48
+
49
+ exports.default = _default;
50
+ //# sourceMappingURL=filterFragmentDefinitions.js.map
@@ -0,0 +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"}